@expcat/tigercat-core 2.0.19 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{data-export-CJTP3rIi.d.ts → data-export-CJUETRjV.d.ts} +1 -1
- package/dist/index.d.ts +2921 -173
- package/dist/index.js +2417 -243
- package/dist/{locale-CaxkEHEG.d.ts → locale-CEDXoKX7.d.ts} +23 -1
- package/dist/locales/ar-SA.d.ts +1 -1
- package/dist/locales/ar-SA.js +16 -0
- package/dist/locales/de-DE.d.ts +1 -1
- package/dist/locales/de-DE.js +16 -0
- package/dist/locales/en-US.d.ts +1 -1
- package/dist/locales/en-US.js +8 -0
- package/dist/locales/es-ES.d.ts +1 -1
- package/dist/locales/es-ES.js +16 -0
- package/dist/locales/fr-FR.d.ts +1 -1
- package/dist/locales/fr-FR.js +16 -0
- package/dist/locales/id-ID.d.ts +1 -1
- package/dist/locales/id-ID.js +16 -0
- package/dist/locales/ja-JP.d.ts +1 -1
- package/dist/locales/ja-JP.js +16 -0
- package/dist/locales/ko-KR.d.ts +1 -1
- package/dist/locales/ko-KR.js +16 -0
- package/dist/locales/pt-BR.d.ts +1 -1
- package/dist/locales/pt-BR.js +16 -0
- package/dist/locales/th-TH.d.ts +1 -1
- package/dist/locales/th-TH.js +16 -0
- package/dist/locales/vi-VN.d.ts +1 -1
- package/dist/locales/vi-VN.js +16 -0
- package/dist/locales/zh-CN.d.ts +1 -1
- package/dist/locales/zh-CN.js +8 -0
- package/dist/locales/zh-TW.d.ts +1 -1
- package/dist/locales/zh-TW.js +16 -0
- package/dist/{table-DtmPxL6W.d.ts → table-CbPOY5bp.d.ts} +1 -1
- package/dist/utils/data-export.d.ts +3 -3
- package/dist/utils/table-export.d.ts +2 -2
- package/package.json +1 -1
- package/tokens/tailwind-tokens.js +3 -6
- package/tokens/tokens.css +4 -8
package/dist/index.js
CHANGED
|
@@ -109,8 +109,9 @@ var copyTextToClipboard = async (text) => {
|
|
|
109
109
|
}
|
|
110
110
|
}
|
|
111
111
|
if (!isBrowser()) return false;
|
|
112
|
+
let textarea = null;
|
|
112
113
|
try {
|
|
113
|
-
|
|
114
|
+
textarea = document.createElement("textarea");
|
|
114
115
|
textarea.value = text;
|
|
115
116
|
textarea.setAttribute("readonly", "");
|
|
116
117
|
textarea.style.position = "fixed";
|
|
@@ -119,11 +120,11 @@ var copyTextToClipboard = async (text) => {
|
|
|
119
120
|
document.body.appendChild(textarea);
|
|
120
121
|
textarea.select();
|
|
121
122
|
textarea.setSelectionRange(0, textarea.value.length);
|
|
122
|
-
|
|
123
|
-
document.body.removeChild(textarea);
|
|
124
|
-
return ok;
|
|
123
|
+
return document.execCommand("copy");
|
|
125
124
|
} catch {
|
|
126
125
|
return false;
|
|
126
|
+
} finally {
|
|
127
|
+
textarea?.remove();
|
|
127
128
|
}
|
|
128
129
|
};
|
|
129
130
|
|
|
@@ -1504,7 +1505,9 @@ var TIGER_LOCALE_KEYS = [
|
|
|
1504
1505
|
"markdownEditor",
|
|
1505
1506
|
"richTextEditor",
|
|
1506
1507
|
"cronEditor",
|
|
1507
|
-
"formValidation"
|
|
1508
|
+
"formValidation",
|
|
1509
|
+
"inputOtp",
|
|
1510
|
+
"tagsInput"
|
|
1508
1511
|
];
|
|
1509
1512
|
function isRecord3(value) {
|
|
1510
1513
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
@@ -1572,7 +1575,9 @@ function mergeTigerLocale(base, override) {
|
|
|
1572
1575
|
markdownEditor: { ...base?.markdownEditor, ...override?.markdownEditor },
|
|
1573
1576
|
richTextEditor: { ...base?.richTextEditor, ...override?.richTextEditor },
|
|
1574
1577
|
cronEditor: { ...base?.cronEditor, ...override?.cronEditor },
|
|
1575
|
-
formValidation: { ...base?.formValidation, ...override?.formValidation }
|
|
1578
|
+
formValidation: { ...base?.formValidation, ...override?.formValidation },
|
|
1579
|
+
inputOtp: { ...base?.inputOtp, ...override?.inputOtp },
|
|
1580
|
+
tagsInput: { ...base?.tagsInput, ...override?.tagsInput }
|
|
1576
1581
|
};
|
|
1577
1582
|
}
|
|
1578
1583
|
var RTL_LANGUAGE_CODES = /* @__PURE__ */ new Set(["ar", "fa", "he", "iw", "ps", "ur"]);
|
|
@@ -2393,6 +2398,36 @@ var ZH_CN_UPLOAD_LABELS = {
|
|
|
2393
2398
|
removeFileAriaLabel: "\u79FB\u9664 {fileName}",
|
|
2394
2399
|
previewFileAriaLabel: "\u9884\u89C8 {fileName}"
|
|
2395
2400
|
};
|
|
2401
|
+
var DEFAULT_INPUT_OTP_LABELS = {
|
|
2402
|
+
groupLabel: "One-time password",
|
|
2403
|
+
slotLabel: "Character {index} of {total}"
|
|
2404
|
+
};
|
|
2405
|
+
var ZH_CN_INPUT_OTP_LABELS = {
|
|
2406
|
+
groupLabel: "\u4E00\u6B21\u6027\u9A8C\u8BC1\u7801",
|
|
2407
|
+
slotLabel: "\u7B2C {index} \u4F4D\uFF0C\u5171 {total} \u4F4D"
|
|
2408
|
+
};
|
|
2409
|
+
function getInputOTPLabels(locale, overrides) {
|
|
2410
|
+
const defaultLabels = locale?.locale?.toLowerCase().startsWith("zh") ? ZH_CN_INPUT_OTP_LABELS : DEFAULT_INPUT_OTP_LABELS;
|
|
2411
|
+
return {
|
|
2412
|
+
groupLabel: overrides?.groupLabel ?? locale?.inputOtp?.groupLabel ?? defaultLabels.groupLabel,
|
|
2413
|
+
slotLabel: overrides?.slotLabel ?? locale?.inputOtp?.slotLabel ?? defaultLabels.slotLabel
|
|
2414
|
+
};
|
|
2415
|
+
}
|
|
2416
|
+
var DEFAULT_TAGS_INPUT_LABELS = {
|
|
2417
|
+
removeTagLabel: "Remove {tag}",
|
|
2418
|
+
clearAllLabel: "Clear all tags"
|
|
2419
|
+
};
|
|
2420
|
+
var ZH_CN_TAGS_INPUT_LABELS = {
|
|
2421
|
+
removeTagLabel: "\u79FB\u9664 {tag}",
|
|
2422
|
+
clearAllLabel: "\u6E05\u7A7A\u5168\u90E8\u6807\u7B7E"
|
|
2423
|
+
};
|
|
2424
|
+
function getTagsInputLabels(locale, overrides) {
|
|
2425
|
+
const defaultLabels = locale?.locale?.toLowerCase().startsWith("zh") ? ZH_CN_TAGS_INPUT_LABELS : DEFAULT_TAGS_INPUT_LABELS;
|
|
2426
|
+
return {
|
|
2427
|
+
removeTagLabel: overrides?.removeTagLabel ?? locale?.tagsInput?.removeTagLabel ?? defaultLabels.removeTagLabel,
|
|
2428
|
+
clearAllLabel: overrides?.clearAllLabel ?? locale?.tagsInput?.clearAllLabel ?? defaultLabels.clearAllLabel
|
|
2429
|
+
};
|
|
2430
|
+
}
|
|
2396
2431
|
|
|
2397
2432
|
// src/utils/i18n/datepicker-locales/en-US.ts
|
|
2398
2433
|
var EN_US_DATEPICKER_LOCALE = {
|
|
@@ -3134,6 +3169,14 @@ var enUS = {
|
|
|
3134
3169
|
patternMismatch: "Value does not match the required pattern",
|
|
3135
3170
|
validatorFailed: "Validation failed",
|
|
3136
3171
|
validatorError: "Validation error occurred"
|
|
3172
|
+
},
|
|
3173
|
+
inputOtp: {
|
|
3174
|
+
groupLabel: "One-time password",
|
|
3175
|
+
slotLabel: "Character {index} of {total}"
|
|
3176
|
+
},
|
|
3177
|
+
tagsInput: {
|
|
3178
|
+
removeTagLabel: "Remove {tag}",
|
|
3179
|
+
clearAllLabel: "Clear all tags"
|
|
3137
3180
|
}
|
|
3138
3181
|
};
|
|
3139
3182
|
|
|
@@ -7781,6 +7824,235 @@ function injectDropdownStyles() {
|
|
|
7781
7824
|
}
|
|
7782
7825
|
var DROPDOWN_ENTER_CLASS = "tiger-dropdown-enter";
|
|
7783
7826
|
|
|
7827
|
+
// src/utils/context-menu-utils.ts
|
|
7828
|
+
var CONTEXT_MENU_POINT_SIZE = 1;
|
|
7829
|
+
var CONTEXT_MENU_ENTER_CLASS = DROPDOWN_ENTER_CLASS;
|
|
7830
|
+
var CONTEXT_MENU_SUB_CHEVRON_PATH = "M9 5l7 7-7 7";
|
|
7831
|
+
function injectContextMenuStyles() {
|
|
7832
|
+
injectDropdownStyles();
|
|
7833
|
+
}
|
|
7834
|
+
function getContextMenuContainerClasses() {
|
|
7835
|
+
return classNames("tiger-context-menu", "relative");
|
|
7836
|
+
}
|
|
7837
|
+
function getContextMenuTriggerClasses(disabled) {
|
|
7838
|
+
return classNames(
|
|
7839
|
+
"tiger-context-menu-trigger",
|
|
7840
|
+
disabled ? "cursor-not-allowed opacity-50 pointer-events-none" : void 0
|
|
7841
|
+
);
|
|
7842
|
+
}
|
|
7843
|
+
function getContextMenuMenuClasses() {
|
|
7844
|
+
return classNames("tiger-context-menu-menu", getDropdownMenuClasses());
|
|
7845
|
+
}
|
|
7846
|
+
function getContextMenuItemClasses(disabled, divided) {
|
|
7847
|
+
return classNames("tiger-context-menu-item", getDropdownItemClasses(disabled, divided));
|
|
7848
|
+
}
|
|
7849
|
+
function getContextMenuSubTriggerClasses(disabled) {
|
|
7850
|
+
return classNames(getContextMenuItemClasses(disabled, false), "justify-between");
|
|
7851
|
+
}
|
|
7852
|
+
function getContextMenuSubChevronClasses() {
|
|
7853
|
+
return classNames(
|
|
7854
|
+
"tiger-context-menu-sub-chevron",
|
|
7855
|
+
"w-3.5 h-3.5 shrink-0",
|
|
7856
|
+
"text-[var(--tiger-text-muted,#9ca3af)]"
|
|
7857
|
+
);
|
|
7858
|
+
}
|
|
7859
|
+
function getContextMenuPointStyle(point) {
|
|
7860
|
+
return {
|
|
7861
|
+
position: "fixed",
|
|
7862
|
+
left: `${point.x}px`,
|
|
7863
|
+
top: `${point.y}px`,
|
|
7864
|
+
width: `${CONTEXT_MENU_POINT_SIZE}px`,
|
|
7865
|
+
height: `${CONTEXT_MENU_POINT_SIZE}px`,
|
|
7866
|
+
margin: "0px",
|
|
7867
|
+
padding: "0px",
|
|
7868
|
+
border: "0px",
|
|
7869
|
+
pointerEvents: "none"
|
|
7870
|
+
};
|
|
7871
|
+
}
|
|
7872
|
+
function getContextMenuPointFromEvent(event) {
|
|
7873
|
+
return { x: event.clientX, y: event.clientY };
|
|
7874
|
+
}
|
|
7875
|
+
function getContextMenuPointFromElement(element) {
|
|
7876
|
+
const rect = element.getBoundingClientRect();
|
|
7877
|
+
return { x: rect.left, y: rect.top };
|
|
7878
|
+
}
|
|
7879
|
+
function getContextMenuOpenPoint(event, fallbackElement) {
|
|
7880
|
+
if (event) return getContextMenuPointFromEvent(event);
|
|
7881
|
+
if (fallbackElement) return getContextMenuPointFromElement(fallbackElement);
|
|
7882
|
+
return { x: 0, y: 0 };
|
|
7883
|
+
}
|
|
7884
|
+
function isContextMenuKeyboardEvent(event) {
|
|
7885
|
+
return event.key === "ContextMenu" || event.key === "F10" && event.shiftKey;
|
|
7886
|
+
}
|
|
7887
|
+
|
|
7888
|
+
// src/utils/navigation-menu-utils.ts
|
|
7889
|
+
var NAVIGATION_MENU_DEFAULT_DELAY_DURATION = 100;
|
|
7890
|
+
var NAVIGATION_MENU_DEFAULT_SKIP_DELAY_DURATION = 150;
|
|
7891
|
+
var NAVIGATION_MENU_DEFAULT_OFFSET = 4;
|
|
7892
|
+
var NAVIGATION_MENU_ENTER_CLASS = DROPDOWN_ENTER_CLASS;
|
|
7893
|
+
var NAVIGATION_MENU_CHEVRON_PATH = DROPDOWN_CHEVRON_PATH;
|
|
7894
|
+
var NAVIGATION_MENU_BAR_ITEM_ATTR = "data-tiger-navigation-menu-bar-item";
|
|
7895
|
+
function injectNavigationMenuStyles() {
|
|
7896
|
+
injectDropdownStyles();
|
|
7897
|
+
}
|
|
7898
|
+
function isNavigationMenuValueOpen(itemValue, openValue) {
|
|
7899
|
+
return openValue !== null && openValue !== void 0 && openValue !== "" && openValue === itemValue;
|
|
7900
|
+
}
|
|
7901
|
+
function isNavigationMenuOpen(openValue) {
|
|
7902
|
+
return openValue !== null && openValue !== void 0 && openValue !== "";
|
|
7903
|
+
}
|
|
7904
|
+
function resolveNavigationMenuOpenValue(options) {
|
|
7905
|
+
const next = options.value !== void 0 ? options.value : options.internalValue;
|
|
7906
|
+
if (options.open === false) return null;
|
|
7907
|
+
if (!isNavigationMenuOpen(next)) return null;
|
|
7908
|
+
return next;
|
|
7909
|
+
}
|
|
7910
|
+
function shouldSkipNavigationMenuOpenDelay(lastOpenAt, now, skipDelayDuration) {
|
|
7911
|
+
if (lastOpenAt <= 0) return false;
|
|
7912
|
+
return now - lastOpenAt < skipDelayDuration;
|
|
7913
|
+
}
|
|
7914
|
+
function isNavigationMenuTriggerOpenKey(key) {
|
|
7915
|
+
return key === "Enter" || key === " " || key === "ArrowDown";
|
|
7916
|
+
}
|
|
7917
|
+
function getNavigationMenuBarItems(container) {
|
|
7918
|
+
return Array.from(
|
|
7919
|
+
container.querySelectorAll(`[${NAVIGATION_MENU_BAR_ITEM_ATTR}]`)
|
|
7920
|
+
).filter((el) => {
|
|
7921
|
+
if (el.disabled) return false;
|
|
7922
|
+
if (el.getAttribute("aria-disabled") === "true") return false;
|
|
7923
|
+
return true;
|
|
7924
|
+
});
|
|
7925
|
+
}
|
|
7926
|
+
function handleMenubarNavigation(container, event) {
|
|
7927
|
+
const items = getNavigationMenuBarItems(container);
|
|
7928
|
+
if (items.length === 0) return false;
|
|
7929
|
+
const activeElement = container.ownerDocument?.activeElement ?? null;
|
|
7930
|
+
const currentIndex = items.indexOf(activeElement);
|
|
7931
|
+
let nextIndex = -1;
|
|
7932
|
+
switch (event.key) {
|
|
7933
|
+
case "ArrowRight":
|
|
7934
|
+
nextIndex = currentIndex < items.length - 1 ? currentIndex + 1 : 0;
|
|
7935
|
+
break;
|
|
7936
|
+
case "ArrowLeft":
|
|
7937
|
+
nextIndex = currentIndex > 0 ? currentIndex - 1 : items.length - 1;
|
|
7938
|
+
break;
|
|
7939
|
+
case "Home":
|
|
7940
|
+
nextIndex = 0;
|
|
7941
|
+
break;
|
|
7942
|
+
case "End":
|
|
7943
|
+
nextIndex = items.length - 1;
|
|
7944
|
+
break;
|
|
7945
|
+
default:
|
|
7946
|
+
return false;
|
|
7947
|
+
}
|
|
7948
|
+
event.preventDefault();
|
|
7949
|
+
const next = items[nextIndex];
|
|
7950
|
+
items.forEach((el) => {
|
|
7951
|
+
el.tabIndex = el === next ? 0 : -1;
|
|
7952
|
+
});
|
|
7953
|
+
next.focus();
|
|
7954
|
+
return true;
|
|
7955
|
+
}
|
|
7956
|
+
function initNavigationMenuRovingTabIndex(root) {
|
|
7957
|
+
const items = getNavigationMenuBarItems(root);
|
|
7958
|
+
if (items.length === 0) return;
|
|
7959
|
+
const hasActive = items.some((el) => el.tabIndex === 0);
|
|
7960
|
+
if (hasActive) return;
|
|
7961
|
+
items.forEach((el, index) => {
|
|
7962
|
+
el.tabIndex = index === 0 ? 0 : -1;
|
|
7963
|
+
});
|
|
7964
|
+
}
|
|
7965
|
+
function getNavigationMenuClasses() {
|
|
7966
|
+
return classNames("tiger-navigation-menu", "relative");
|
|
7967
|
+
}
|
|
7968
|
+
function getNavigationMenuListClasses() {
|
|
7969
|
+
return classNames(
|
|
7970
|
+
"tiger-navigation-menu-list",
|
|
7971
|
+
"flex flex-row flex-wrap items-center gap-1",
|
|
7972
|
+
"m-0 p-1",
|
|
7973
|
+
"list-none"
|
|
7974
|
+
);
|
|
7975
|
+
}
|
|
7976
|
+
function getNavigationMenuItemClasses() {
|
|
7977
|
+
return classNames("tiger-navigation-menu-item", "relative");
|
|
7978
|
+
}
|
|
7979
|
+
function getNavigationMenuTriggerClasses(disabled, open) {
|
|
7980
|
+
return classNames(
|
|
7981
|
+
"tiger-navigation-menu-trigger",
|
|
7982
|
+
"inline-flex items-center gap-1.5",
|
|
7983
|
+
"px-3 py-2",
|
|
7984
|
+
"rounded-[var(--tiger-radius-md,0.5rem)]",
|
|
7985
|
+
"text-sm font-medium text-[var(--tiger-text,#374151)]",
|
|
7986
|
+
"bg-transparent border-0",
|
|
7987
|
+
"select-none appearance-none",
|
|
7988
|
+
"transition-colors duration-150",
|
|
7989
|
+
"focus:outline-none",
|
|
7990
|
+
"focus-visible:ring-2 focus-visible:ring-[var(--tiger-focus-ring,var(--tiger-primary,#2563eb))]/40",
|
|
7991
|
+
disabled ? "cursor-not-allowed opacity-50 pointer-events-none" : "cursor-pointer hover:bg-[var(--tiger-surface-muted,#f3f4f6)]",
|
|
7992
|
+
open && "bg-[var(--tiger-surface-muted,#f3f4f6)]"
|
|
7993
|
+
);
|
|
7994
|
+
}
|
|
7995
|
+
function getNavigationMenuChevronClasses(open) {
|
|
7996
|
+
return classNames("tiger-navigation-menu-chevron", getDropdownChevronClasses(open));
|
|
7997
|
+
}
|
|
7998
|
+
function getNavigationMenuContentClasses(mega) {
|
|
7999
|
+
return classNames(
|
|
8000
|
+
"tiger-navigation-menu-content",
|
|
8001
|
+
getDropdownMenuClasses(),
|
|
8002
|
+
mega && "min-w-[28rem]! p-4"
|
|
8003
|
+
);
|
|
8004
|
+
}
|
|
8005
|
+
function getNavigationMenuLinkClasses(disabled, inPanel, active = false) {
|
|
8006
|
+
if (inPanel) {
|
|
8007
|
+
return classNames(
|
|
8008
|
+
"tiger-navigation-menu-link",
|
|
8009
|
+
getDropdownItemClasses(disabled, false),
|
|
8010
|
+
active && "bg-[var(--tiger-surface-muted,#f3f4f6)] font-medium"
|
|
8011
|
+
);
|
|
8012
|
+
}
|
|
8013
|
+
return classNames("tiger-navigation-menu-link", getNavigationMenuTriggerClasses(disabled, active));
|
|
8014
|
+
}
|
|
8015
|
+
|
|
8016
|
+
// src/types/page-header.ts
|
|
8017
|
+
var PAGE_HEADER_DEFAULT_BACK_ARIA_LABEL = "Back";
|
|
8018
|
+
|
|
8019
|
+
// src/utils/page-header-utils.ts
|
|
8020
|
+
var pageHeaderRootClasses = "tiger-page-header flex w-full flex-col gap-3 border-b border-[var(--tiger-border,#e5e7eb)] pb-4";
|
|
8021
|
+
var pageHeaderHeadingRowClasses = "tiger-page-header-heading flex w-full items-start justify-between gap-4";
|
|
8022
|
+
var pageHeaderStartClasses = "tiger-page-header-start flex min-w-0 items-start gap-2";
|
|
8023
|
+
var pageHeaderMainClasses = "tiger-page-header-main flex min-w-0 flex-1 flex-col gap-1";
|
|
8024
|
+
var pageHeaderTitleRowClasses = "tiger-page-header-title-row flex min-w-0 flex-wrap items-baseline gap-x-3 gap-y-1";
|
|
8025
|
+
var pageHeaderTitleClasses = "tiger-page-header-title text-xl font-semibold leading-7 text-[var(--tiger-text,#111827)]";
|
|
8026
|
+
var pageHeaderSubtitleClasses = "tiger-page-header-subtitle text-sm leading-6 text-[var(--tiger-text-muted,#6b7280)]";
|
|
8027
|
+
var pageHeaderActionsClasses = "tiger-page-header-actions ml-auto flex shrink-0 flex-wrap items-center justify-end gap-2";
|
|
8028
|
+
var pageHeaderBackWrapClasses = "tiger-page-header-back flex shrink-0 items-center pt-0.5";
|
|
8029
|
+
var pageHeaderBackButtonClasses = "h-8 w-8 shrink-0 !px-0";
|
|
8030
|
+
var pageHeaderBackIconClasses = "h-5 w-5 rtl:-scale-x-100";
|
|
8031
|
+
var pageHeaderContentClasses = "tiger-page-header-content min-w-0";
|
|
8032
|
+
function resolvePageHeaderBackVisibility(input) {
|
|
8033
|
+
if (input.showBack === false) return false;
|
|
8034
|
+
if (input.showBack === true) return true;
|
|
8035
|
+
return Boolean(input.hasHandler) || Boolean(input.hasBackHref) || Boolean(input.hasBackOverride);
|
|
8036
|
+
}
|
|
8037
|
+
function resolvePageHeaderBackAriaLabel(label) {
|
|
8038
|
+
if (typeof label === "string") {
|
|
8039
|
+
const trimmed = label.trim();
|
|
8040
|
+
if (trimmed) return trimmed;
|
|
8041
|
+
}
|
|
8042
|
+
return PAGE_HEADER_DEFAULT_BACK_ARIA_LABEL;
|
|
8043
|
+
}
|
|
8044
|
+
function hasPageHeaderHeadingContent(flags) {
|
|
8045
|
+
return Boolean(
|
|
8046
|
+
flags.showBack || flags.hasBreadcrumb || flags.hasTitle || flags.hasSubtitle || flags.hasActions
|
|
8047
|
+
);
|
|
8048
|
+
}
|
|
8049
|
+
function getPageHeaderRootClasses(className) {
|
|
8050
|
+
return classNames(pageHeaderRootClasses, className);
|
|
8051
|
+
}
|
|
8052
|
+
function getPageHeaderBackButtonClasses(className) {
|
|
8053
|
+
return classNames(pageHeaderBackButtonClasses, className);
|
|
8054
|
+
}
|
|
8055
|
+
|
|
7784
8056
|
// src/utils/drawer-utils.ts
|
|
7785
8057
|
function getDrawerMaskClasses(visible) {
|
|
7786
8058
|
return classNames(
|
|
@@ -8357,6 +8629,239 @@ function injectLoadingAnimationStyles() {
|
|
|
8357
8629
|
}
|
|
8358
8630
|
}
|
|
8359
8631
|
|
|
8632
|
+
// src/utils/loading-bar-utils.ts
|
|
8633
|
+
var DEFAULT_LOADING_BAR_HEIGHT = 2;
|
|
8634
|
+
var DEFAULT_LOADING_BAR_COLOR = "primary";
|
|
8635
|
+
var DEFAULT_LOADING_BAR_ARIA_LABEL = "Loading";
|
|
8636
|
+
var LOADING_BAR_START_PERCENTAGE = 8;
|
|
8637
|
+
var LOADING_BAR_MAX_TRICKLE_PERCENTAGE = 94;
|
|
8638
|
+
var LOADING_BAR_TRICKLE_INTERVAL_MS = 200;
|
|
8639
|
+
var LOADING_BAR_FINISH_HIDE_DELAY_MS = 300;
|
|
8640
|
+
var LOADING_BAR_CONTAINER_ID = "tiger-loading-bar-container";
|
|
8641
|
+
var LOADING_BAR_CONTAINER_ROOT_ID = `${LOADING_BAR_CONTAINER_ID}-root`;
|
|
8642
|
+
var loadingBarContainerBaseClasses = "fixed top-0 left-0 right-0 z-[10000] pointer-events-none overflow-hidden";
|
|
8643
|
+
var loadingBarFillBaseClasses = "block w-full origin-left transition-transform duration-200 ease-out motion-reduce:transition-none";
|
|
8644
|
+
var loadingBarColorClasses = {
|
|
8645
|
+
primary: "bg-[color:var(--tiger-primary,#2563eb)]",
|
|
8646
|
+
success: "bg-[color:var(--tiger-success,#16a34a)]",
|
|
8647
|
+
warning: "bg-[color:var(--tiger-warning,#f59e0b)]",
|
|
8648
|
+
danger: "bg-[color:var(--tiger-error,#dc2626)]",
|
|
8649
|
+
info: "bg-[color:var(--tiger-info,#0ea5e9)]"
|
|
8650
|
+
};
|
|
8651
|
+
function createInitialLoadingBarState() {
|
|
8652
|
+
return {
|
|
8653
|
+
visible: false,
|
|
8654
|
+
percentage: 0,
|
|
8655
|
+
status: "idle",
|
|
8656
|
+
color: DEFAULT_LOADING_BAR_COLOR,
|
|
8657
|
+
height: DEFAULT_LOADING_BAR_HEIGHT,
|
|
8658
|
+
startedCount: 0
|
|
8659
|
+
};
|
|
8660
|
+
}
|
|
8661
|
+
function clampLoadingBarPercentage(percentage) {
|
|
8662
|
+
if (!Number.isFinite(percentage)) return 0;
|
|
8663
|
+
return Math.max(0, Math.min(100, percentage));
|
|
8664
|
+
}
|
|
8665
|
+
function resolveLoadingBarColor(color) {
|
|
8666
|
+
if (color && color in loadingBarColorClasses) return color;
|
|
8667
|
+
return DEFAULT_LOADING_BAR_COLOR;
|
|
8668
|
+
}
|
|
8669
|
+
function resolveLoadingBarHeight(height) {
|
|
8670
|
+
if (typeof height !== "number" || !Number.isFinite(height) || height <= 0) {
|
|
8671
|
+
return DEFAULT_LOADING_BAR_HEIGHT;
|
|
8672
|
+
}
|
|
8673
|
+
return height;
|
|
8674
|
+
}
|
|
8675
|
+
function resolveLoadingBarFillColor(status, color) {
|
|
8676
|
+
if (status === "error") return "danger";
|
|
8677
|
+
return resolveLoadingBarColor(color);
|
|
8678
|
+
}
|
|
8679
|
+
function resolveLoadingBarAriaLabel(ariaLabel) {
|
|
8680
|
+
const trimmed = ariaLabel?.trim();
|
|
8681
|
+
return trimmed ? trimmed : DEFAULT_LOADING_BAR_ARIA_LABEL;
|
|
8682
|
+
}
|
|
8683
|
+
function getLoadingBarColorClasses(color) {
|
|
8684
|
+
return loadingBarColorClasses[resolveLoadingBarColor(color)];
|
|
8685
|
+
}
|
|
8686
|
+
function getLoadingBarContainerClasses(className) {
|
|
8687
|
+
return classNames(loadingBarContainerBaseClasses, className);
|
|
8688
|
+
}
|
|
8689
|
+
function getLoadingBarFillClasses(status, color) {
|
|
8690
|
+
return classNames(
|
|
8691
|
+
loadingBarFillBaseClasses,
|
|
8692
|
+
getLoadingBarColorClasses(resolveLoadingBarFillColor(status, color))
|
|
8693
|
+
);
|
|
8694
|
+
}
|
|
8695
|
+
function getLoadingBarFillStyle(percentage, height) {
|
|
8696
|
+
return {
|
|
8697
|
+
transform: `scaleX(${clampLoadingBarPercentage(percentage) / 100})`,
|
|
8698
|
+
height: `${resolveLoadingBarHeight(height)}px`
|
|
8699
|
+
};
|
|
8700
|
+
}
|
|
8701
|
+
function nextLoadingBarTricklePercentage(current, random = Math.random) {
|
|
8702
|
+
const clamped = clampLoadingBarPercentage(current);
|
|
8703
|
+
if (clamped >= LOADING_BAR_MAX_TRICKLE_PERCENTAGE) {
|
|
8704
|
+
return LOADING_BAR_MAX_TRICKLE_PERCENTAGE;
|
|
8705
|
+
}
|
|
8706
|
+
const remaining = LOADING_BAR_MAX_TRICKLE_PERCENTAGE - clamped;
|
|
8707
|
+
const rawSample = random();
|
|
8708
|
+
const sample = Number.isFinite(rawSample) ? Math.min(1, Math.max(0, rawSample)) : 0.5;
|
|
8709
|
+
const step = Math.max(0.5, remaining * 0.08 * (0.4 + sample));
|
|
8710
|
+
return Math.min(LOADING_BAR_MAX_TRICKLE_PERCENTAGE, clamped + step);
|
|
8711
|
+
}
|
|
8712
|
+
function resolveLoadingBarMountTarget(container) {
|
|
8713
|
+
if (!isBrowser()) return null;
|
|
8714
|
+
if (!container) return document.body;
|
|
8715
|
+
if (typeof container === "string") {
|
|
8716
|
+
const found = document.querySelector(container);
|
|
8717
|
+
return found instanceof HTMLElement ? found : document.body;
|
|
8718
|
+
}
|
|
8719
|
+
return container;
|
|
8720
|
+
}
|
|
8721
|
+
function mergeStartOptions(state, options) {
|
|
8722
|
+
return {
|
|
8723
|
+
...state,
|
|
8724
|
+
color: resolveLoadingBarColor(options?.color ?? state.color),
|
|
8725
|
+
height: resolveLoadingBarHeight(options?.height ?? state.height),
|
|
8726
|
+
className: options?.className ?? state.className,
|
|
8727
|
+
style: options?.style ?? state.style,
|
|
8728
|
+
ariaLabel: options?.ariaLabel ?? state.ariaLabel,
|
|
8729
|
+
container: options?.container ?? state.container
|
|
8730
|
+
};
|
|
8731
|
+
}
|
|
8732
|
+
function createLoadingBarController(hooks = {}) {
|
|
8733
|
+
let state = createInitialLoadingBarState();
|
|
8734
|
+
const listeners = /* @__PURE__ */ new Set();
|
|
8735
|
+
let trickleTimer;
|
|
8736
|
+
let hideTimer;
|
|
8737
|
+
const schedule = hooks.setTimeout ?? ((handler, timeout) => globalThis.setTimeout(handler, timeout));
|
|
8738
|
+
const cancel = hooks.clearTimeout ?? ((id) => globalThis.clearTimeout(id));
|
|
8739
|
+
function emit() {
|
|
8740
|
+
listeners.forEach((listener) => listener());
|
|
8741
|
+
}
|
|
8742
|
+
function stopTrickle() {
|
|
8743
|
+
if (trickleTimer === void 0) return;
|
|
8744
|
+
cancel(trickleTimer);
|
|
8745
|
+
trickleTimer = void 0;
|
|
8746
|
+
}
|
|
8747
|
+
function stopHide() {
|
|
8748
|
+
if (hideTimer === void 0) return;
|
|
8749
|
+
cancel(hideTimer);
|
|
8750
|
+
hideTimer = void 0;
|
|
8751
|
+
}
|
|
8752
|
+
function hideNow() {
|
|
8753
|
+
stopTrickle();
|
|
8754
|
+
stopHide();
|
|
8755
|
+
state = {
|
|
8756
|
+
...createInitialLoadingBarState(),
|
|
8757
|
+
color: state.color,
|
|
8758
|
+
height: state.height,
|
|
8759
|
+
className: state.className,
|
|
8760
|
+
style: state.style,
|
|
8761
|
+
ariaLabel: state.ariaLabel,
|
|
8762
|
+
container: state.container
|
|
8763
|
+
};
|
|
8764
|
+
emit();
|
|
8765
|
+
}
|
|
8766
|
+
function scheduleHide() {
|
|
8767
|
+
stopHide();
|
|
8768
|
+
if (!isBrowser() && !hooks.setTimeout) {
|
|
8769
|
+
hideNow();
|
|
8770
|
+
return;
|
|
8771
|
+
}
|
|
8772
|
+
hideTimer = schedule(() => {
|
|
8773
|
+
hideTimer = void 0;
|
|
8774
|
+
hideNow();
|
|
8775
|
+
}, LOADING_BAR_FINISH_HIDE_DELAY_MS);
|
|
8776
|
+
}
|
|
8777
|
+
function tickTrickle() {
|
|
8778
|
+
if (state.status !== "loading" || state.startedCount <= 0) {
|
|
8779
|
+
stopTrickle();
|
|
8780
|
+
return;
|
|
8781
|
+
}
|
|
8782
|
+
state = {
|
|
8783
|
+
...state,
|
|
8784
|
+
percentage: nextLoadingBarTricklePercentage(state.percentage)
|
|
8785
|
+
};
|
|
8786
|
+
emit();
|
|
8787
|
+
trickleTimer = schedule(tickTrickle, LOADING_BAR_TRICKLE_INTERVAL_MS);
|
|
8788
|
+
}
|
|
8789
|
+
function startTrickle() {
|
|
8790
|
+
stopTrickle();
|
|
8791
|
+
if (!isBrowser() && !hooks.setTimeout) return;
|
|
8792
|
+
trickleTimer = schedule(tickTrickle, LOADING_BAR_TRICKLE_INTERVAL_MS);
|
|
8793
|
+
}
|
|
8794
|
+
function start(options) {
|
|
8795
|
+
stopHide();
|
|
8796
|
+
const nextCount = state.startedCount + 1;
|
|
8797
|
+
const isFresh = state.status !== "loading" || !state.visible;
|
|
8798
|
+
state = mergeStartOptions(state, options);
|
|
8799
|
+
state = {
|
|
8800
|
+
...state,
|
|
8801
|
+
visible: true,
|
|
8802
|
+
status: "loading",
|
|
8803
|
+
startedCount: nextCount,
|
|
8804
|
+
percentage: isFresh ? LOADING_BAR_START_PERCENTAGE : state.percentage
|
|
8805
|
+
};
|
|
8806
|
+
emit();
|
|
8807
|
+
if (isFresh) {
|
|
8808
|
+
startTrickle();
|
|
8809
|
+
}
|
|
8810
|
+
}
|
|
8811
|
+
function finish() {
|
|
8812
|
+
if (state.startedCount <= 0 && state.status !== "loading") {
|
|
8813
|
+
return;
|
|
8814
|
+
}
|
|
8815
|
+
const nextCount = Math.max(0, state.startedCount - 1);
|
|
8816
|
+
if (nextCount > 0) {
|
|
8817
|
+
state = { ...state, startedCount: nextCount };
|
|
8818
|
+
emit();
|
|
8819
|
+
return;
|
|
8820
|
+
}
|
|
8821
|
+
stopTrickle();
|
|
8822
|
+
state = {
|
|
8823
|
+
...state,
|
|
8824
|
+
visible: true,
|
|
8825
|
+
startedCount: 0,
|
|
8826
|
+
percentage: 100,
|
|
8827
|
+
status: "success"
|
|
8828
|
+
};
|
|
8829
|
+
emit();
|
|
8830
|
+
scheduleHide();
|
|
8831
|
+
}
|
|
8832
|
+
function error() {
|
|
8833
|
+
stopTrickle();
|
|
8834
|
+
state = {
|
|
8835
|
+
...state,
|
|
8836
|
+
visible: true,
|
|
8837
|
+
startedCount: 0,
|
|
8838
|
+
percentage: 100,
|
|
8839
|
+
status: "error"
|
|
8840
|
+
};
|
|
8841
|
+
emit();
|
|
8842
|
+
scheduleHide();
|
|
8843
|
+
}
|
|
8844
|
+
function clear() {
|
|
8845
|
+
stopTrickle();
|
|
8846
|
+
stopHide();
|
|
8847
|
+
state = createInitialLoadingBarState();
|
|
8848
|
+
emit();
|
|
8849
|
+
}
|
|
8850
|
+
return {
|
|
8851
|
+
getState: () => ({ ...state }),
|
|
8852
|
+
start,
|
|
8853
|
+
finish,
|
|
8854
|
+
error,
|
|
8855
|
+
clear,
|
|
8856
|
+
subscribe: (listener) => {
|
|
8857
|
+
listeners.add(listener);
|
|
8858
|
+
return () => {
|
|
8859
|
+
listeners.delete(listener);
|
|
8860
|
+
};
|
|
8861
|
+
}
|
|
8862
|
+
};
|
|
8863
|
+
}
|
|
8864
|
+
|
|
8360
8865
|
// src/utils/floating-popup-utils.ts
|
|
8361
8866
|
function createFloatingIdFactory(prefix) {
|
|
8362
8867
|
let counter = 0;
|
|
@@ -8949,93 +9454,590 @@ function getTextClasses(props) {
|
|
|
8949
9454
|
);
|
|
8950
9455
|
}
|
|
8951
9456
|
|
|
8952
|
-
// src/
|
|
8953
|
-
var
|
|
8954
|
-
|
|
8955
|
-
|
|
8956
|
-
|
|
8957
|
-
|
|
8958
|
-
|
|
8959
|
-
|
|
8960
|
-
|
|
8961
|
-
|
|
8962
|
-
|
|
9457
|
+
// src/types/kbd.ts
|
|
9458
|
+
var DEFAULT_KBD_SEPARATOR = "+";
|
|
9459
|
+
var DEFAULT_KBD_SIZE = "md";
|
|
9460
|
+
var DEFAULT_KBD_VARIANT = "default";
|
|
9461
|
+
|
|
9462
|
+
// src/utils/kbd-utils.ts
|
|
9463
|
+
var kbdBaseClasses = "tiger-kbd inline-flex items-center rounded-[var(--tiger-radius-sm,0.375rem)] border font-medium font-mono align-middle whitespace-nowrap transition-colors";
|
|
9464
|
+
var kbdKeyClasses = "tiger-kbd-key border-0 bg-transparent p-0 shadow-none rounded-none";
|
|
9465
|
+
var kbdSeparatorClasses = "tiger-kbd-separator";
|
|
9466
|
+
var kbdSubtleVariantClasses = "border-transparent bg-[var(--tiger-surface-muted,#f9fafb)] text-[var(--tiger-text-muted,#6b7280)]";
|
|
9467
|
+
function normalizeKbdKeys(keys) {
|
|
9468
|
+
if (keys == null) return [];
|
|
9469
|
+
if (typeof keys === "string") {
|
|
9470
|
+
const trimmed = keys.trim();
|
|
9471
|
+
return trimmed ? [trimmed] : [];
|
|
9472
|
+
}
|
|
9473
|
+
if (!Array.isArray(keys)) return [];
|
|
9474
|
+
const result = [];
|
|
9475
|
+
for (const key of keys) {
|
|
9476
|
+
if (typeof key !== "string") continue;
|
|
9477
|
+
const trimmed = key.trim();
|
|
9478
|
+
if (trimmed) result.push(trimmed);
|
|
9479
|
+
}
|
|
9480
|
+
return result;
|
|
8963
9481
|
}
|
|
8964
|
-
|
|
8965
|
-
|
|
8966
|
-
|
|
8967
|
-
|
|
8968
|
-
|
|
8969
|
-
|
|
8970
|
-
var resetIconPath = "M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15";
|
|
8971
|
-
var prevIconPath = "M15 19l-7-7 7-7";
|
|
8972
|
-
var nextIconPath = "M9 5l7 7-7 7";
|
|
8973
|
-
var previewCloseIconPath = "M6 18L18 6M6 6l12 12";
|
|
8974
|
-
var imagePreviewMaskClasses = "fixed inset-0 bg-[var(--tiger-image-mask,rgba(0,0,0,0.85))] transition-opacity";
|
|
8975
|
-
var imagePreviewWrapperClasses = "fixed inset-0 flex items-center justify-center select-none";
|
|
8976
|
-
var imagePreviewImgClasses = "max-w-none transition-transform duration-150 ease-out cursor-grab active:cursor-grabbing touch-none";
|
|
8977
|
-
var imagePreviewToolbarClasses = "absolute bottom-6 left-1/2 -translate-x-1/2 flex items-center gap-2 px-4 py-2 rounded-full bg-[var(--tiger-image-toolbar-bg,rgba(0,0,0,0.6))] text-white";
|
|
8978
|
-
var imagePreviewToolbarBtnClasses = "flex items-center justify-center w-8 h-8 rounded-full hover:bg-white/20 transition-colors focus:outline-none focus:ring-2 focus:ring-white/50 disabled:opacity-40 disabled:cursor-not-allowed";
|
|
8979
|
-
var imagePreviewNavBtnClasses = "absolute top-1/2 -translate-y-1/2 flex items-center justify-center w-10 h-10 rounded-full bg-[var(--tiger-image-toolbar-bg,rgba(0,0,0,0.6))] text-white hover:bg-white/20 transition-colors focus:outline-none focus:ring-2 focus:ring-white/50 disabled:opacity-40 disabled:cursor-not-allowed";
|
|
8980
|
-
var imagePreviewCloseBtnClasses = "absolute top-4 right-4 flex items-center justify-center w-10 h-10 rounded-full bg-[var(--tiger-image-toolbar-bg,rgba(0,0,0,0.6))] text-white hover:bg-white/20 transition-colors focus:outline-none focus:ring-2 focus:ring-white/50";
|
|
8981
|
-
var imagePreviewCounterClasses = "text-sm text-white/80 mx-2 tabular-nums";
|
|
8982
|
-
var imageCropperContainerClasses = "relative overflow-hidden bg-[var(--tiger-image-cropper-bg,#0f172a)] rounded-[var(--tiger-radius-lg,0.75rem)] select-none touch-none shadow-inner border border-white/10 tiger-image-cropper-checkerboard";
|
|
8983
|
-
var imageCropperImgClasses = "absolute top-0 left-0 max-w-none pointer-events-none";
|
|
8984
|
-
var imageCropperMaskClasses = "absolute inset-0 pointer-events-none";
|
|
8985
|
-
var imageCropperSelectionClasses = "absolute border-2 border-[var(--tiger-image-cropper-border,#ffffff)] pointer-events-none shadow-[0_0_0_9999px_rgba(0,0,0,0.65),0_0_15px_rgba(255,255,255,0.4)] transition-shadow duration-300";
|
|
8986
|
-
var imageCropperGuideClasses = "absolute border-[var(--tiger-image-cropper-border,rgba(255,255,255,0.25))] pointer-events-none opacity-40 transition-opacity duration-300";
|
|
8987
|
-
var imageCropperDragAreaClasses = "absolute cursor-move";
|
|
8988
|
-
function getCropperHandleClasses(handle) {
|
|
8989
|
-
const base = "absolute w-3.5 h-3.5 rounded-full bg-white border-2 border-[var(--tiger-primary,#2563eb)] shadow-md hover:scale-125 hover:bg-[var(--tiger-primary,#2563eb)] hover:border-white transition-all duration-200 cursor-pointer focus:outline-none focus:ring-2 focus:ring-[var(--tiger-primary,#2563eb)]";
|
|
8990
|
-
const positionMap = {
|
|
8991
|
-
nw: "-top-1.75 -left-1.75 cursor-nw-resize",
|
|
8992
|
-
n: "-top-1.75 left-1/2 -translate-x-1/2 cursor-n-resize",
|
|
8993
|
-
ne: "-top-1.75 -right-1.75 cursor-ne-resize",
|
|
8994
|
-
e: "top-1/2 -right-1.75 -translate-y-1/2 cursor-e-resize",
|
|
8995
|
-
se: "-bottom-1.75 -right-1.75 cursor-se-resize",
|
|
8996
|
-
s: "-bottom-1.75 left-1/2 -translate-x-1/2 cursor-s-resize",
|
|
8997
|
-
sw: "-bottom-1.75 -left-1.75 cursor-sw-resize",
|
|
8998
|
-
w: "top-1/2 -left-1.75 -translate-y-1/2 cursor-w-resize"
|
|
8999
|
-
};
|
|
9000
|
-
return classNames(base, positionMap[handle]);
|
|
9482
|
+
function resolveKbdSeparator(separator) {
|
|
9483
|
+
if (typeof separator === "string") {
|
|
9484
|
+
const trimmed = separator.trim();
|
|
9485
|
+
if (trimmed) return trimmed;
|
|
9486
|
+
}
|
|
9487
|
+
return DEFAULT_KBD_SEPARATOR;
|
|
9001
9488
|
}
|
|
9002
|
-
|
|
9003
|
-
|
|
9004
|
-
|
|
9005
|
-
var uploadPlusIconPath = "M12 4v16m8-8H4";
|
|
9006
|
-
function clampScale(scale, min, max) {
|
|
9007
|
-
return Math.min(Math.max(scale, min), max);
|
|
9489
|
+
function resolveKbdSize(size2) {
|
|
9490
|
+
if (size2 === "sm" || size2 === "md" || size2 === "lg") return size2;
|
|
9491
|
+
return DEFAULT_KBD_SIZE;
|
|
9008
9492
|
}
|
|
9009
|
-
function
|
|
9010
|
-
|
|
9493
|
+
function resolveKbdVariant(variant) {
|
|
9494
|
+
if (variant === "default" || variant === "subtle") return variant;
|
|
9495
|
+
return DEFAULT_KBD_VARIANT;
|
|
9011
9496
|
}
|
|
9012
|
-
function
|
|
9013
|
-
|
|
9014
|
-
|
|
9015
|
-
|
|
9016
|
-
|
|
9017
|
-
|
|
9497
|
+
function getKbdParts(keys, separator) {
|
|
9498
|
+
const normalized = normalizeKbdKeys(keys);
|
|
9499
|
+
const resolvedSeparator = resolveKbdSeparator(separator);
|
|
9500
|
+
const parts = [];
|
|
9501
|
+
for (let index = 0; index < normalized.length; index++) {
|
|
9502
|
+
if (index > 0) {
|
|
9503
|
+
parts.push({ type: "separator", value: resolvedSeparator });
|
|
9504
|
+
}
|
|
9505
|
+
parts.push({ type: "key", value: normalized[index] });
|
|
9506
|
+
}
|
|
9507
|
+
return parts;
|
|
9018
9508
|
}
|
|
9019
|
-
function
|
|
9020
|
-
|
|
9021
|
-
if (
|
|
9022
|
-
|
|
9023
|
-
|
|
9024
|
-
|
|
9025
|
-
|
|
9026
|
-
|
|
9509
|
+
function formatKbdCombo(keys, separator) {
|
|
9510
|
+
const normalized = normalizeKbdKeys(keys);
|
|
9511
|
+
if (normalized.length === 0) return "";
|
|
9512
|
+
return normalized.join(` ${resolveKbdSeparator(separator)} `);
|
|
9513
|
+
}
|
|
9514
|
+
function getKbdVariantClasses(variant) {
|
|
9515
|
+
if (resolveKbdVariant(variant) === "subtle") return kbdSubtleVariantClasses;
|
|
9516
|
+
return getTagVariantClasses("default");
|
|
9517
|
+
}
|
|
9518
|
+
function getKbdRootClasses(input = {}) {
|
|
9519
|
+
const size2 = resolveKbdSize(input.size);
|
|
9520
|
+
return classNames(
|
|
9521
|
+
kbdBaseClasses,
|
|
9522
|
+
tagSizeClasses[size2],
|
|
9523
|
+
getKbdVariantClasses(input.variant),
|
|
9524
|
+
input.className
|
|
9525
|
+
);
|
|
9526
|
+
}
|
|
9527
|
+
function formatKbdSeparatorText(separator) {
|
|
9528
|
+
return ` ${resolveKbdSeparator(separator)} `;
|
|
9529
|
+
}
|
|
9530
|
+
|
|
9531
|
+
// src/types/highlight.ts
|
|
9532
|
+
var DEFAULT_HIGHLIGHT_CASE_SENSITIVE = false;
|
|
9533
|
+
var DEFAULT_HIGHLIGHT_GLOBAL = true;
|
|
9534
|
+
|
|
9535
|
+
// src/utils/highlight-utils.ts
|
|
9536
|
+
var highlightRootClasses = "tiger-highlight";
|
|
9537
|
+
var highlightMarkClasses = "tiger-highlight-mark rounded-[var(--tiger-radius-sm,0.375rem)] bg-[color-mix(in_srgb,var(--tiger-warning,#d97706)_20%,transparent)] px-0.5 text-inherit box-decoration-clone";
|
|
9538
|
+
var REGEXP_SPECIAL_CHARS = /[.*+?^${}()|[\]\\]/g;
|
|
9539
|
+
function escapeHighlightKeyword(keyword) {
|
|
9540
|
+
return keyword.replace(REGEXP_SPECIAL_CHARS, "\\$&");
|
|
9541
|
+
}
|
|
9542
|
+
function normalizeHighlightKeywords(keywords) {
|
|
9543
|
+
if (keywords == null) return [];
|
|
9544
|
+
if (typeof keywords === "string" || keywords instanceof RegExp) {
|
|
9545
|
+
return [keywords];
|
|
9546
|
+
}
|
|
9547
|
+
if (!Array.isArray(keywords)) return [];
|
|
9548
|
+
const result = [];
|
|
9549
|
+
for (const item of keywords) {
|
|
9550
|
+
if (typeof item === "string" || item instanceof RegExp) {
|
|
9551
|
+
result.push(item);
|
|
9027
9552
|
}
|
|
9028
9553
|
}
|
|
9029
|
-
|
|
9030
|
-
height = Math.min(height, imageHeight);
|
|
9031
|
-
x = Math.max(0, Math.min(x, imageWidth - width));
|
|
9032
|
-
y = Math.max(0, Math.min(y, imageHeight - height));
|
|
9033
|
-
return { x, y, width, height };
|
|
9554
|
+
return result;
|
|
9034
9555
|
}
|
|
9035
|
-
function
|
|
9036
|
-
|
|
9037
|
-
|
|
9038
|
-
|
|
9556
|
+
function resolveHighlightCaseSensitive(value) {
|
|
9557
|
+
if (typeof value === "boolean") return value;
|
|
9558
|
+
return DEFAULT_HIGHLIGHT_CASE_SENSITIVE;
|
|
9559
|
+
}
|
|
9560
|
+
function resolveHighlightGlobal(value) {
|
|
9561
|
+
if (typeof value === "boolean") return value;
|
|
9562
|
+
return DEFAULT_HIGHLIGHT_GLOBAL;
|
|
9563
|
+
}
|
|
9564
|
+
function resolveHighlightText(text, fallback) {
|
|
9565
|
+
if (text != null) return text;
|
|
9566
|
+
if (fallback != null) return fallback;
|
|
9567
|
+
return "";
|
|
9568
|
+
}
|
|
9569
|
+
function cloneRegExp(source, global) {
|
|
9570
|
+
const withoutG = source.flags.replace(/g/g, "");
|
|
9571
|
+
const flags = global ? `${withoutG}g` : withoutG;
|
|
9572
|
+
try {
|
|
9573
|
+
return new RegExp(source.source, flags);
|
|
9574
|
+
} catch {
|
|
9575
|
+
return null;
|
|
9576
|
+
}
|
|
9577
|
+
}
|
|
9578
|
+
function collectRegExpRanges(text, pattern, global) {
|
|
9579
|
+
const ranges = [];
|
|
9580
|
+
if (!text) return ranges;
|
|
9581
|
+
try {
|
|
9582
|
+
if (!global) {
|
|
9583
|
+
const match2 = pattern.exec(text);
|
|
9584
|
+
if (match2 && match2[0].length > 0) {
|
|
9585
|
+
ranges.push({ start: match2.index, end: match2.index + match2[0].length });
|
|
9586
|
+
}
|
|
9587
|
+
return ranges;
|
|
9588
|
+
}
|
|
9589
|
+
pattern.lastIndex = 0;
|
|
9590
|
+
let match;
|
|
9591
|
+
let steps = 0;
|
|
9592
|
+
const limit = text.length + 2;
|
|
9593
|
+
while ((match = pattern.exec(text)) !== null) {
|
|
9594
|
+
if (++steps > limit) break;
|
|
9595
|
+
if (match[0].length === 0) {
|
|
9596
|
+
pattern.lastIndex += 1;
|
|
9597
|
+
if (pattern.lastIndex > text.length) break;
|
|
9598
|
+
continue;
|
|
9599
|
+
}
|
|
9600
|
+
ranges.push({ start: match.index, end: match.index + match[0].length });
|
|
9601
|
+
}
|
|
9602
|
+
} catch {
|
|
9603
|
+
return [];
|
|
9604
|
+
}
|
|
9605
|
+
return ranges;
|
|
9606
|
+
}
|
|
9607
|
+
function collectStringRanges(text, keyword, caseSensitive, global) {
|
|
9608
|
+
if (!keyword) return [];
|
|
9609
|
+
const flags = `${global ? "g" : ""}${caseSensitive ? "" : "i"}`;
|
|
9610
|
+
let pattern;
|
|
9611
|
+
try {
|
|
9612
|
+
pattern = new RegExp(escapeHighlightKeyword(keyword), flags);
|
|
9613
|
+
} catch {
|
|
9614
|
+
return [];
|
|
9615
|
+
}
|
|
9616
|
+
return collectRegExpRanges(text, pattern, global);
|
|
9617
|
+
}
|
|
9618
|
+
function sanitizeRange(range, length) {
|
|
9619
|
+
const start = Math.max(0, Math.min(range.start, length));
|
|
9620
|
+
const end = Math.max(0, Math.min(range.end, length));
|
|
9621
|
+
if (end <= start) return null;
|
|
9622
|
+
return { start, end };
|
|
9623
|
+
}
|
|
9624
|
+
function mergeHighlightRanges(ranges) {
|
|
9625
|
+
if (ranges.length === 0) return [];
|
|
9626
|
+
const sorted = ranges.map((range) => ({ start: range.start, end: range.end })).sort((left, right) => left.start - right.start || left.end - right.end);
|
|
9627
|
+
const merged = [{ ...sorted[0] }];
|
|
9628
|
+
for (let index = 1; index < sorted.length; index++) {
|
|
9629
|
+
const current = sorted[index];
|
|
9630
|
+
const last = merged[merged.length - 1];
|
|
9631
|
+
if (current.start <= last.end) {
|
|
9632
|
+
if (current.end > last.end) last.end = current.end;
|
|
9633
|
+
} else {
|
|
9634
|
+
merged.push({ ...current });
|
|
9635
|
+
}
|
|
9636
|
+
}
|
|
9637
|
+
return merged;
|
|
9638
|
+
}
|
|
9639
|
+
function findHighlightRanges(text, keywords, options = {}) {
|
|
9640
|
+
if (!text) return [];
|
|
9641
|
+
const caseSensitive = resolveHighlightCaseSensitive(options.caseSensitive);
|
|
9642
|
+
const global = resolveHighlightGlobal(options.global);
|
|
9643
|
+
const queries = normalizeHighlightKeywords(keywords);
|
|
9644
|
+
const collected = [];
|
|
9645
|
+
for (const query of queries) {
|
|
9646
|
+
if (typeof query === "string") {
|
|
9647
|
+
collected.push(...collectStringRanges(text, query, caseSensitive, global));
|
|
9648
|
+
continue;
|
|
9649
|
+
}
|
|
9650
|
+
const pattern = cloneRegExp(query, global);
|
|
9651
|
+
if (!pattern) continue;
|
|
9652
|
+
collected.push(...collectRegExpRanges(text, pattern, global));
|
|
9653
|
+
}
|
|
9654
|
+
const sanitized = [];
|
|
9655
|
+
for (const range of collected) {
|
|
9656
|
+
const next = sanitizeRange(range, text.length);
|
|
9657
|
+
if (next) sanitized.push(next);
|
|
9658
|
+
}
|
|
9659
|
+
return mergeHighlightRanges(sanitized);
|
|
9660
|
+
}
|
|
9661
|
+
function getHighlightSegments(text, keywords, options = {}) {
|
|
9662
|
+
if (!text) return [];
|
|
9663
|
+
const ranges = findHighlightRanges(text, keywords, options);
|
|
9664
|
+
const segments = [];
|
|
9665
|
+
let cursor = 0;
|
|
9666
|
+
for (const range of ranges) {
|
|
9667
|
+
if (range.start > cursor) {
|
|
9668
|
+
segments.push({
|
|
9669
|
+
text: text.slice(cursor, range.start),
|
|
9670
|
+
highlighted: false,
|
|
9671
|
+
start: cursor,
|
|
9672
|
+
end: range.start
|
|
9673
|
+
});
|
|
9674
|
+
}
|
|
9675
|
+
segments.push({
|
|
9676
|
+
text: text.slice(range.start, range.end),
|
|
9677
|
+
highlighted: true,
|
|
9678
|
+
start: range.start,
|
|
9679
|
+
end: range.end
|
|
9680
|
+
});
|
|
9681
|
+
cursor = range.end;
|
|
9682
|
+
}
|
|
9683
|
+
if (cursor < text.length) {
|
|
9684
|
+
segments.push({
|
|
9685
|
+
text: text.slice(cursor),
|
|
9686
|
+
highlighted: false,
|
|
9687
|
+
start: cursor,
|
|
9688
|
+
end: text.length
|
|
9689
|
+
});
|
|
9690
|
+
}
|
|
9691
|
+
if (segments.length === 0) {
|
|
9692
|
+
segments.push({ text, highlighted: false, start: 0, end: text.length });
|
|
9693
|
+
}
|
|
9694
|
+
return segments;
|
|
9695
|
+
}
|
|
9696
|
+
function getHighlightRootClasses(className) {
|
|
9697
|
+
return classNames(highlightRootClasses, className);
|
|
9698
|
+
}
|
|
9699
|
+
function getHighlightMarkClasses(className) {
|
|
9700
|
+
return classNames(highlightMarkClasses, className);
|
|
9701
|
+
}
|
|
9702
|
+
|
|
9703
|
+
// src/types/marquee.ts
|
|
9704
|
+
var DEFAULT_MARQUEE_DIRECTION = "left";
|
|
9705
|
+
var DEFAULT_MARQUEE_DURATION_MS = 2e4;
|
|
9706
|
+
var DEFAULT_MARQUEE_GAP_PX = 16;
|
|
9707
|
+
var DEFAULT_MARQUEE_REPEAT = 2;
|
|
9708
|
+
var MAX_MARQUEE_REPEAT = 16;
|
|
9709
|
+
var DEFAULT_MARQUEE_PAUSE_ON_HOVER = true;
|
|
9710
|
+
var DEFAULT_MARQUEE_ARIA_LABEL = "Scrolling content";
|
|
9711
|
+
|
|
9712
|
+
// src/utils/marquee-utils.ts
|
|
9713
|
+
var MARQUEE_STYLE_ID = "tiger-ui-marquee-styles";
|
|
9714
|
+
var MARQUEE_DURATION_VAR = "--tiger-marquee-duration";
|
|
9715
|
+
var MARQUEE_COPIES_VAR = "--tiger-marquee-copies";
|
|
9716
|
+
var MARQUEE_GAP_VAR = "--tiger-marquee-gap";
|
|
9717
|
+
var MARQUEE_CSS = `
|
|
9718
|
+
@keyframes tiger-marquee-x {
|
|
9719
|
+
from { transform: translate3d(0, 0, 0); }
|
|
9720
|
+
to { transform: translate3d(calc(-100% / var(${MARQUEE_COPIES_VAR}, 2)), 0, 0); }
|
|
9721
|
+
}
|
|
9722
|
+
|
|
9723
|
+
@keyframes tiger-marquee-y {
|
|
9724
|
+
from { transform: translate3d(0, 0, 0); }
|
|
9725
|
+
to { transform: translate3d(0, calc(-100% / var(${MARQUEE_COPIES_VAR}, 2)), 0); }
|
|
9726
|
+
}
|
|
9727
|
+
|
|
9728
|
+
.tiger-marquee-track {
|
|
9729
|
+
animation: tiger-marquee-x var(${MARQUEE_DURATION_VAR}, 20000ms) linear infinite;
|
|
9730
|
+
}
|
|
9731
|
+
|
|
9732
|
+
.tiger-marquee-vertical > .tiger-marquee-track {
|
|
9733
|
+
animation-name: tiger-marquee-y;
|
|
9734
|
+
}
|
|
9735
|
+
|
|
9736
|
+
.tiger-marquee-reverse > .tiger-marquee-track {
|
|
9737
|
+
animation-direction: reverse;
|
|
9738
|
+
}
|
|
9739
|
+
|
|
9740
|
+
.tiger-marquee-content {
|
|
9741
|
+
gap: var(${MARQUEE_GAP_VAR}, 16px);
|
|
9742
|
+
}
|
|
9743
|
+
|
|
9744
|
+
.tiger-marquee-horizontal > .tiger-marquee-track > .tiger-marquee-content {
|
|
9745
|
+
padding-inline-end: var(${MARQUEE_GAP_VAR}, 16px);
|
|
9746
|
+
}
|
|
9747
|
+
|
|
9748
|
+
.tiger-marquee-vertical > .tiger-marquee-track > .tiger-marquee-content {
|
|
9749
|
+
padding-block-end: var(${MARQUEE_GAP_VAR}, 16px);
|
|
9750
|
+
}
|
|
9751
|
+
|
|
9752
|
+
.tiger-marquee-static > .tiger-marquee-track {
|
|
9753
|
+
animation: none;
|
|
9754
|
+
}
|
|
9755
|
+
|
|
9756
|
+
.tiger-marquee[data-marquee-paused='true'] > .tiger-marquee-track,
|
|
9757
|
+
.tiger-marquee-pause-hover:hover > .tiger-marquee-track,
|
|
9758
|
+
.tiger-marquee-pause-hover:focus-within > .tiger-marquee-track {
|
|
9759
|
+
animation-play-state: paused;
|
|
9760
|
+
}
|
|
9761
|
+
|
|
9762
|
+
@media (prefers-reduced-motion: reduce) {
|
|
9763
|
+
.tiger-marquee {
|
|
9764
|
+
overflow: auto;
|
|
9765
|
+
}
|
|
9766
|
+
|
|
9767
|
+
.tiger-marquee > .tiger-marquee-track {
|
|
9768
|
+
animation: none !important;
|
|
9769
|
+
will-change: auto;
|
|
9770
|
+
}
|
|
9771
|
+
|
|
9772
|
+
.tiger-marquee .tiger-marquee-clone {
|
|
9773
|
+
display: none !important;
|
|
9774
|
+
}
|
|
9775
|
+
|
|
9776
|
+
.tiger-marquee-horizontal > .tiger-marquee-track > .tiger-marquee-content {
|
|
9777
|
+
padding-inline-end: 0;
|
|
9778
|
+
}
|
|
9779
|
+
|
|
9780
|
+
.tiger-marquee-vertical > .tiger-marquee-track > .tiger-marquee-content {
|
|
9781
|
+
padding-block-end: 0;
|
|
9782
|
+
}
|
|
9783
|
+
}
|
|
9784
|
+
`;
|
|
9785
|
+
var marqueeRootClasses = "tiger-marquee overflow-hidden max-w-full";
|
|
9786
|
+
var marqueePauseHoverClasses = "tiger-marquee-pause-hover";
|
|
9787
|
+
var marqueeHorizontalClasses = "tiger-marquee-horizontal";
|
|
9788
|
+
var marqueeVerticalClasses = "tiger-marquee-vertical";
|
|
9789
|
+
var marqueeReverseClasses = "tiger-marquee-reverse";
|
|
9790
|
+
var marqueeStaticClasses = "tiger-marquee-static";
|
|
9791
|
+
var marqueeTrackClasses = "tiger-marquee-track flex w-max";
|
|
9792
|
+
var marqueeTrackVerticalClasses = "flex-col w-full h-max";
|
|
9793
|
+
var marqueeContentClasses = "tiger-marquee-content flex shrink-0 items-center";
|
|
9794
|
+
var marqueeContentVerticalClasses = "flex-col items-stretch";
|
|
9795
|
+
var marqueeCloneClasses = "tiger-marquee-clone";
|
|
9796
|
+
var MARQUEE_DIRECTIONS = /* @__PURE__ */ new Set(["left", "right", "up", "down"]);
|
|
9797
|
+
var isStyleInjected2 = false;
|
|
9798
|
+
function injectMarqueeStyles() {
|
|
9799
|
+
if (!isBrowser() || isStyleInjected2) return;
|
|
9800
|
+
if (document.getElementById(MARQUEE_STYLE_ID)) {
|
|
9801
|
+
isStyleInjected2 = true;
|
|
9802
|
+
return;
|
|
9803
|
+
}
|
|
9804
|
+
const style = document.createElement("style");
|
|
9805
|
+
style.id = MARQUEE_STYLE_ID;
|
|
9806
|
+
style.textContent = MARQUEE_CSS;
|
|
9807
|
+
document.head.appendChild(style);
|
|
9808
|
+
isStyleInjected2 = true;
|
|
9809
|
+
}
|
|
9810
|
+
function resolveMarqueeDirection(direction) {
|
|
9811
|
+
if (direction && MARQUEE_DIRECTIONS.has(direction)) return direction;
|
|
9812
|
+
return DEFAULT_MARQUEE_DIRECTION;
|
|
9813
|
+
}
|
|
9814
|
+
function isMarqueeVertical(direction) {
|
|
9815
|
+
const resolved = resolveMarqueeDirection(direction);
|
|
9816
|
+
return resolved === "up" || resolved === "down";
|
|
9817
|
+
}
|
|
9818
|
+
function isMarqueeReverse(direction) {
|
|
9819
|
+
const resolved = resolveMarqueeDirection(direction);
|
|
9820
|
+
return resolved === "right" || resolved === "down";
|
|
9821
|
+
}
|
|
9822
|
+
function resolveMarqueeDuration(duration) {
|
|
9823
|
+
if (typeof duration === "number" && Number.isFinite(duration) && duration > 0) {
|
|
9824
|
+
return `${duration}ms`;
|
|
9825
|
+
}
|
|
9826
|
+
return `${DEFAULT_MARQUEE_DURATION_MS}ms`;
|
|
9827
|
+
}
|
|
9828
|
+
function resolveMarqueeGap(gap) {
|
|
9829
|
+
if (typeof gap === "number" && Number.isFinite(gap) && gap >= 0) {
|
|
9830
|
+
return `${gap}px`;
|
|
9831
|
+
}
|
|
9832
|
+
if (typeof gap === "string") {
|
|
9833
|
+
const trimmed = gap.trim();
|
|
9834
|
+
if (trimmed) return trimmed;
|
|
9835
|
+
}
|
|
9836
|
+
return `${DEFAULT_MARQUEE_GAP_PX}px`;
|
|
9837
|
+
}
|
|
9838
|
+
function resolveMarqueeRepeat(repeat) {
|
|
9839
|
+
if (typeof repeat === "number" && Number.isFinite(repeat)) {
|
|
9840
|
+
const copies = Math.floor(repeat);
|
|
9841
|
+
if (copies >= 1) return Math.min(copies, MAX_MARQUEE_REPEAT);
|
|
9842
|
+
}
|
|
9843
|
+
return DEFAULT_MARQUEE_REPEAT;
|
|
9844
|
+
}
|
|
9845
|
+
function shouldLoopMarquee(repeat) {
|
|
9846
|
+
return resolveMarqueeRepeat(repeat) >= 2;
|
|
9847
|
+
}
|
|
9848
|
+
function resolveMarqueePauseOnHover(value) {
|
|
9849
|
+
if (typeof value === "boolean") return value;
|
|
9850
|
+
return DEFAULT_MARQUEE_PAUSE_ON_HOVER;
|
|
9851
|
+
}
|
|
9852
|
+
function resolveMarqueeAriaLabel(label) {
|
|
9853
|
+
if (typeof label === "string") {
|
|
9854
|
+
const trimmed = label.trim();
|
|
9855
|
+
if (trimmed) return trimmed;
|
|
9856
|
+
}
|
|
9857
|
+
return DEFAULT_MARQUEE_ARIA_LABEL;
|
|
9858
|
+
}
|
|
9859
|
+
function isMarqueePaused(input) {
|
|
9860
|
+
if (!resolveMarqueePauseOnHover(input.pauseOnHover)) return false;
|
|
9861
|
+
return Boolean(input.hovered || input.focused);
|
|
9862
|
+
}
|
|
9863
|
+
function isMarqueeFocusInside(root, related) {
|
|
9864
|
+
return root instanceof Node && related instanceof Node && root.contains(related);
|
|
9865
|
+
}
|
|
9866
|
+
function getMarqueeTrackStyle(input = {}) {
|
|
9867
|
+
return {
|
|
9868
|
+
[MARQUEE_DURATION_VAR]: resolveMarqueeDuration(input.duration),
|
|
9869
|
+
[MARQUEE_COPIES_VAR]: String(resolveMarqueeRepeat(input.repeat)),
|
|
9870
|
+
[MARQUEE_GAP_VAR]: resolveMarqueeGap(input.gap)
|
|
9871
|
+
};
|
|
9872
|
+
}
|
|
9873
|
+
function getMarqueeRootClasses(input = {}) {
|
|
9874
|
+
const direction = resolveMarqueeDirection(input.direction);
|
|
9875
|
+
const looping = shouldLoopMarquee(input.repeat);
|
|
9876
|
+
return classNames(
|
|
9877
|
+
marqueeRootClasses,
|
|
9878
|
+
isMarqueeVertical(direction) ? marqueeVerticalClasses : marqueeHorizontalClasses,
|
|
9879
|
+
isMarqueeReverse(direction) && marqueeReverseClasses,
|
|
9880
|
+
resolveMarqueePauseOnHover(input.pauseOnHover) && marqueePauseHoverClasses,
|
|
9881
|
+
!looping && marqueeStaticClasses,
|
|
9882
|
+
input.className
|
|
9883
|
+
);
|
|
9884
|
+
}
|
|
9885
|
+
function getMarqueeTrackClasses(direction) {
|
|
9886
|
+
return classNames(
|
|
9887
|
+
marqueeTrackClasses,
|
|
9888
|
+
isMarqueeVertical(direction) && marqueeTrackVerticalClasses
|
|
9889
|
+
);
|
|
9890
|
+
}
|
|
9891
|
+
function getMarqueeContentClasses(input = {}) {
|
|
9892
|
+
return classNames(
|
|
9893
|
+
marqueeContentClasses,
|
|
9894
|
+
isMarqueeVertical(input.direction) && marqueeContentVerticalClasses,
|
|
9895
|
+
input.clone && marqueeCloneClasses,
|
|
9896
|
+
input.className
|
|
9897
|
+
);
|
|
9898
|
+
}
|
|
9899
|
+
|
|
9900
|
+
// src/types/split-button.ts
|
|
9901
|
+
var DEFAULT_SPLIT_BUTTON_TRIGGER_ARIA_LABEL = "More options";
|
|
9902
|
+
var DEFAULT_SPLIT_BUTTON_VARIANT = "primary";
|
|
9903
|
+
var DEFAULT_SPLIT_BUTTON_SIZE = "md";
|
|
9904
|
+
|
|
9905
|
+
// src/utils/split-button-utils.ts
|
|
9906
|
+
var splitButtonRootClasses = "tiger-split-button inline-flex";
|
|
9907
|
+
var splitButtonRootBlockClasses = "w-full";
|
|
9908
|
+
var splitButtonPrimaryClasses = "!rounded-r-none";
|
|
9909
|
+
var splitButtonPrimaryBlockClasses = "min-w-0 flex-1";
|
|
9910
|
+
var splitButtonTriggerClasses = "tiger-split-button-trigger shrink-0 !rounded-l-none -ml-px";
|
|
9911
|
+
var splitButtonTriggerSizeClasses = {
|
|
9912
|
+
xs: "!px-1.5",
|
|
9913
|
+
sm: "!px-2",
|
|
9914
|
+
md: "!px-2.5",
|
|
9915
|
+
lg: "!px-3",
|
|
9916
|
+
xl: "!px-4"
|
|
9917
|
+
};
|
|
9918
|
+
var BUTTON_SIZES = /* @__PURE__ */ new Set(["xs", "sm", "md", "lg", "xl"]);
|
|
9919
|
+
var BUTTON_VARIANTS = /* @__PURE__ */ new Set(["primary", "secondary", "outline", "ghost", "link"]);
|
|
9920
|
+
function resolveSplitButtonSize(size2) {
|
|
9921
|
+
if (size2 && BUTTON_SIZES.has(size2)) return size2;
|
|
9922
|
+
return DEFAULT_SPLIT_BUTTON_SIZE;
|
|
9923
|
+
}
|
|
9924
|
+
function resolveSplitButtonVariant(variant) {
|
|
9925
|
+
if (variant && BUTTON_VARIANTS.has(variant)) return variant;
|
|
9926
|
+
return DEFAULT_SPLIT_BUTTON_VARIANT;
|
|
9927
|
+
}
|
|
9928
|
+
function resolveSplitButtonTriggerAriaLabel(label) {
|
|
9929
|
+
if (typeof label === "string") {
|
|
9930
|
+
const trimmed = label.trim();
|
|
9931
|
+
if (trimmed) return trimmed;
|
|
9932
|
+
}
|
|
9933
|
+
return DEFAULT_SPLIT_BUTTON_TRIGGER_ARIA_LABEL;
|
|
9934
|
+
}
|
|
9935
|
+
function getSplitButtonRootClasses(input = {}) {
|
|
9936
|
+
return classNames(
|
|
9937
|
+
splitButtonRootClasses,
|
|
9938
|
+
input.block && splitButtonRootBlockClasses,
|
|
9939
|
+
input.className
|
|
9940
|
+
);
|
|
9941
|
+
}
|
|
9942
|
+
function getSplitButtonPrimaryClasses(input = {}) {
|
|
9943
|
+
return classNames(
|
|
9944
|
+
splitButtonPrimaryClasses,
|
|
9945
|
+
input.block && splitButtonPrimaryBlockClasses,
|
|
9946
|
+
input.className
|
|
9947
|
+
);
|
|
9948
|
+
}
|
|
9949
|
+
function getSplitButtonTriggerClasses(input = {}) {
|
|
9950
|
+
const size2 = resolveSplitButtonSize(input.size);
|
|
9951
|
+
return classNames(splitButtonTriggerClasses, splitButtonTriggerSizeClasses[size2], input.className);
|
|
9952
|
+
}
|
|
9953
|
+
|
|
9954
|
+
// src/utils/image-utils.ts
|
|
9955
|
+
var imageBaseClasses = "relative inline-block overflow-hidden";
|
|
9956
|
+
function getImageImgClasses(fit) {
|
|
9957
|
+
const fitMap = {
|
|
9958
|
+
contain: "object-contain",
|
|
9959
|
+
cover: "object-cover",
|
|
9960
|
+
fill: "object-fill",
|
|
9961
|
+
none: "object-none",
|
|
9962
|
+
"scale-down": "object-scale-down"
|
|
9963
|
+
};
|
|
9964
|
+
return classNames("block w-full h-full", fitMap[fit]);
|
|
9965
|
+
}
|
|
9966
|
+
var imageErrorClasses = "flex items-center justify-center w-full h-full bg-[var(--tiger-image-error-bg,#f3f4f6)] text-[var(--tiger-image-error-text,#9ca3af)]";
|
|
9967
|
+
var imageLoadingClasses = "flex items-center justify-center w-full h-full bg-[var(--tiger-image-error-bg,#f3f4f6)] text-[var(--tiger-image-error-text,#9ca3af)] animate-pulse";
|
|
9968
|
+
var imagePreviewCursorClass = "cursor-pointer";
|
|
9969
|
+
var imageErrorIconPath = "M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z";
|
|
9970
|
+
var zoomInIconPath = "M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0zM10 7v6m3-3H7";
|
|
9971
|
+
var zoomOutIconPath = "M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0zM13 10H7";
|
|
9972
|
+
var resetIconPath = "M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15";
|
|
9973
|
+
var prevIconPath = "M15 19l-7-7 7-7";
|
|
9974
|
+
var nextIconPath = "M9 5l7 7-7 7";
|
|
9975
|
+
var previewCloseIconPath = "M6 18L18 6M6 6l12 12";
|
|
9976
|
+
var imagePreviewMaskClasses = "fixed inset-0 bg-[var(--tiger-image-mask,rgba(0,0,0,0.85))] transition-opacity";
|
|
9977
|
+
var imagePreviewWrapperClasses = "fixed inset-0 flex items-center justify-center select-none";
|
|
9978
|
+
var imagePreviewImgClasses = "max-w-none transition-transform duration-150 ease-out cursor-grab active:cursor-grabbing touch-none";
|
|
9979
|
+
var imagePreviewToolbarClasses = "absolute bottom-6 left-1/2 -translate-x-1/2 flex items-center gap-2 px-4 py-2 rounded-full bg-[var(--tiger-image-toolbar-bg,rgba(0,0,0,0.6))] text-white";
|
|
9980
|
+
var imagePreviewToolbarBtnClasses = "flex items-center justify-center w-8 h-8 rounded-full hover:bg-white/20 transition-colors focus:outline-none focus:ring-2 focus:ring-white/50 disabled:opacity-40 disabled:cursor-not-allowed";
|
|
9981
|
+
var imagePreviewNavBtnClasses = "absolute top-1/2 -translate-y-1/2 flex items-center justify-center w-10 h-10 rounded-full bg-[var(--tiger-image-toolbar-bg,rgba(0,0,0,0.6))] text-white hover:bg-white/20 transition-colors focus:outline-none focus:ring-2 focus:ring-white/50 disabled:opacity-40 disabled:cursor-not-allowed";
|
|
9982
|
+
var imagePreviewCloseBtnClasses = "absolute top-4 right-4 flex items-center justify-center w-10 h-10 rounded-full bg-[var(--tiger-image-toolbar-bg,rgba(0,0,0,0.6))] text-white hover:bg-white/20 transition-colors focus:outline-none focus:ring-2 focus:ring-white/50";
|
|
9983
|
+
var imagePreviewCounterClasses = "text-sm text-white/80 mx-2 tabular-nums";
|
|
9984
|
+
var imageCropperContainerClasses = "relative overflow-hidden bg-[var(--tiger-image-cropper-bg,#0f172a)] rounded-[var(--tiger-radius-lg,0.75rem)] select-none touch-none shadow-inner border border-white/10 tiger-image-cropper-checkerboard";
|
|
9985
|
+
var imageCropperImgClasses = "absolute top-0 left-0 max-w-none pointer-events-none";
|
|
9986
|
+
var imageCropperMaskClasses = "absolute inset-0 pointer-events-none";
|
|
9987
|
+
var imageCropperSelectionClasses = "absolute border-2 border-[var(--tiger-image-cropper-border,#ffffff)] pointer-events-none shadow-[0_0_0_9999px_rgba(0,0,0,0.65),0_0_15px_rgba(255,255,255,0.4)] transition-shadow duration-300";
|
|
9988
|
+
var imageCropperGuideClasses = "absolute border-[var(--tiger-image-cropper-border,rgba(255,255,255,0.25))] pointer-events-none opacity-40 transition-opacity duration-300";
|
|
9989
|
+
var imageCropperDragAreaClasses = "absolute cursor-move";
|
|
9990
|
+
function getCropperHandleClasses(handle) {
|
|
9991
|
+
const base = "absolute w-3.5 h-3.5 rounded-full bg-white border-2 border-[var(--tiger-primary,#2563eb)] shadow-md hover:scale-125 hover:bg-[var(--tiger-primary,#2563eb)] hover:border-white transition-all duration-200 cursor-pointer focus:outline-none focus:ring-2 focus:ring-[var(--tiger-primary,#2563eb)]";
|
|
9992
|
+
const positionMap = {
|
|
9993
|
+
nw: "-top-1.75 -left-1.75 cursor-nw-resize",
|
|
9994
|
+
n: "-top-1.75 left-1/2 -translate-x-1/2 cursor-n-resize",
|
|
9995
|
+
ne: "-top-1.75 -right-1.75 cursor-ne-resize",
|
|
9996
|
+
e: "top-1/2 -right-1.75 -translate-y-1/2 cursor-e-resize",
|
|
9997
|
+
se: "-bottom-1.75 -right-1.75 cursor-se-resize",
|
|
9998
|
+
s: "-bottom-1.75 left-1/2 -translate-x-1/2 cursor-s-resize",
|
|
9999
|
+
sw: "-bottom-1.75 -left-1.75 cursor-sw-resize",
|
|
10000
|
+
w: "top-1/2 -left-1.75 -translate-y-1/2 cursor-w-resize"
|
|
10001
|
+
};
|
|
10002
|
+
return classNames(base, positionMap[handle]);
|
|
10003
|
+
}
|
|
10004
|
+
var CROP_HANDLES = ["nw", "n", "ne", "e", "se", "s", "sw", "w"];
|
|
10005
|
+
var cropUploadTriggerClasses = "inline-flex items-center justify-center gap-2.5 px-5 py-2.5 border-2 border-dashed border-[var(--tiger-border,#d1d5db)] rounded-[var(--tiger-radius-lg,0.75rem)] text-[var(--tiger-text-secondary,#4b5563)] bg-[var(--tiger-surface-muted,#f9fafb)] hover:bg-[var(--tiger-surface,#ffffff)] hover:border-[var(--tiger-primary,#2563eb)] hover:text-[var(--tiger-primary,#2563eb)] hover:scale-[1.02] active:scale-[0.98] hover:shadow-md transition-all duration-300 ease-out cursor-pointer focus:outline-none focus:ring-2 focus:ring-[var(--tiger-primary,#2563eb)] focus:ring-offset-2 dark:bg-neutral-900 dark:hover:bg-neutral-800";
|
|
10006
|
+
var cropUploadTriggerDisabledClasses = "inline-flex items-center justify-center gap-2.5 px-5 py-2.5 border-2 border-dashed border-[var(--tiger-border,#d1d5db)] rounded-[var(--tiger-radius-lg,0.75rem)] text-[var(--tiger-text-disabled,#9ca3af)] bg-[var(--tiger-surface-muted,#f9fafb)] cursor-not-allowed opacity-60 dark:bg-neutral-900/50";
|
|
10007
|
+
var uploadPlusIconPath = "M12 4v16m8-8H4";
|
|
10008
|
+
function clampScale(scale, min, max) {
|
|
10009
|
+
return Math.min(Math.max(scale, min), max);
|
|
10010
|
+
}
|
|
10011
|
+
function calculateTransform(scale, offsetX, offsetY) {
|
|
10012
|
+
return `translate(${offsetX}px, ${offsetY}px) scale(${scale})`;
|
|
10013
|
+
}
|
|
10014
|
+
function getPreviewNavState(currentIndex, total) {
|
|
10015
|
+
return {
|
|
10016
|
+
hasPrev: currentIndex > 0,
|
|
10017
|
+
hasNext: currentIndex < total - 1,
|
|
10018
|
+
counter: total > 1 ? `${currentIndex + 1} / ${total}` : ""
|
|
10019
|
+
};
|
|
10020
|
+
}
|
|
10021
|
+
function constrainCropRect(rect, imageWidth, imageHeight, aspectRatio) {
|
|
10022
|
+
let { x, y, width, height } = rect;
|
|
10023
|
+
if (aspectRatio && aspectRatio > 0) {
|
|
10024
|
+
const currentRatio = width / height;
|
|
10025
|
+
if (currentRatio > aspectRatio) {
|
|
10026
|
+
width = height * aspectRatio;
|
|
10027
|
+
} else {
|
|
10028
|
+
height = width / aspectRatio;
|
|
10029
|
+
}
|
|
10030
|
+
}
|
|
10031
|
+
width = Math.min(width, imageWidth);
|
|
10032
|
+
height = Math.min(height, imageHeight);
|
|
10033
|
+
x = Math.max(0, Math.min(x, imageWidth - width));
|
|
10034
|
+
y = Math.max(0, Math.min(y, imageHeight - height));
|
|
10035
|
+
return { x, y, width, height };
|
|
10036
|
+
}
|
|
10037
|
+
function resizeCropRect(rect, handle, dx, dy, imageWidth, imageHeight, aspectRatio, minW = 20, minH = 20) {
|
|
10038
|
+
let { x, y, width, height } = rect;
|
|
10039
|
+
switch (handle) {
|
|
10040
|
+
case "nw":
|
|
9039
10041
|
x += dx;
|
|
9040
10042
|
y += dy;
|
|
9041
10043
|
width -= dx;
|
|
@@ -9149,6 +10151,153 @@ function toCSSSize(value) {
|
|
|
9149
10151
|
return typeof value === "number" ? `${value}px` : value;
|
|
9150
10152
|
}
|
|
9151
10153
|
|
|
10154
|
+
// src/types/image-compare.ts
|
|
10155
|
+
var DEFAULT_IMAGE_COMPARE_POSITION = 50;
|
|
10156
|
+
var DEFAULT_IMAGE_COMPARE_STEP = 1;
|
|
10157
|
+
var DEFAULT_IMAGE_COMPARE_ORIENTATION = "horizontal";
|
|
10158
|
+
var DEFAULT_IMAGE_COMPARE_FIT = "cover";
|
|
10159
|
+
var DEFAULT_IMAGE_COMPARE_ARIA_LABEL = "Image comparison";
|
|
10160
|
+
|
|
10161
|
+
// src/utils/image-compare-utils.ts
|
|
10162
|
+
var IMAGE_COMPARE_POSITION_VAR = "--tiger-image-compare-position";
|
|
10163
|
+
var imageCompareRootClasses = "tiger-image-compare relative overflow-hidden select-none touch-none max-w-full";
|
|
10164
|
+
var imageCompareHorizontalClasses = "tiger-image-compare-horizontal";
|
|
10165
|
+
var imageCompareVerticalClasses = "tiger-image-compare-vertical";
|
|
10166
|
+
var imageCompareDisabledClasses = "tiger-image-compare-disabled cursor-not-allowed";
|
|
10167
|
+
var imageCompareAfterClasses = "tiger-image-compare-after relative block w-full h-full [&>img]:pointer-events-none [&>img]:select-none [&>img]:max-w-none";
|
|
10168
|
+
var imageCompareBeforeClasses = "tiger-image-compare-before absolute inset-0 overflow-hidden [&>img]:pointer-events-none [&>img]:select-none [&>img]:max-w-none";
|
|
10169
|
+
var imageCompareHandleClasses = "tiger-image-compare-handle absolute z-10 flex items-center justify-center outline-none focus-visible:ring-2 focus-visible:ring-[var(--tiger-primary,#2563eb)] focus-visible:ring-offset-2";
|
|
10170
|
+
var imageCompareHandleHorizontalClasses = "inset-y-0 w-6 -translate-x-1/2 cursor-ew-resize";
|
|
10171
|
+
var imageCompareHandleVerticalClasses = "inset-x-0 h-6 -translate-y-1/2 cursor-ns-resize";
|
|
10172
|
+
var imageCompareHandleDisabledClasses = "cursor-not-allowed";
|
|
10173
|
+
var imageCompareLineClasses = "tiger-image-compare-line absolute bg-white shadow pointer-events-none";
|
|
10174
|
+
var imageCompareLineHorizontalClasses = "inset-y-0 left-1/2 w-0.5 -translate-x-1/2";
|
|
10175
|
+
var imageCompareLineVerticalClasses = "inset-x-0 top-1/2 h-0.5 -translate-y-1/2";
|
|
10176
|
+
var imageCompareKnobClasses = "tiger-image-compare-knob relative z-10 flex h-8 w-8 items-center justify-center rounded-full border-2 border-white bg-[var(--tiger-primary,#2563eb)] text-white shadow pointer-events-none";
|
|
10177
|
+
var IMAGE_COMPARE_ORIENTATIONS = /* @__PURE__ */ new Set(["horizontal", "vertical"]);
|
|
10178
|
+
var IMAGE_FITS = /* @__PURE__ */ new Set(["contain", "cover", "fill", "none", "scale-down"]);
|
|
10179
|
+
function resolveImageCompareOrientation(orientation) {
|
|
10180
|
+
if (orientation && IMAGE_COMPARE_ORIENTATIONS.has(orientation)) return orientation;
|
|
10181
|
+
return DEFAULT_IMAGE_COMPARE_ORIENTATION;
|
|
10182
|
+
}
|
|
10183
|
+
function isImageCompareVertical(orientation) {
|
|
10184
|
+
return resolveImageCompareOrientation(orientation) === "vertical";
|
|
10185
|
+
}
|
|
10186
|
+
function resolveImageCompareFit(fit) {
|
|
10187
|
+
if (fit && IMAGE_FITS.has(fit)) return fit;
|
|
10188
|
+
return DEFAULT_IMAGE_COMPARE_FIT;
|
|
10189
|
+
}
|
|
10190
|
+
function resolveImageCompareStep(step) {
|
|
10191
|
+
if (typeof step === "number" && Number.isFinite(step) && step > 0) return step;
|
|
10192
|
+
return DEFAULT_IMAGE_COMPARE_STEP;
|
|
10193
|
+
}
|
|
10194
|
+
function resolveImageComparePosition(position, step) {
|
|
10195
|
+
const safeStep = resolveImageCompareStep(step);
|
|
10196
|
+
const raw = typeof position === "number" && Number.isFinite(position) ? position : DEFAULT_IMAGE_COMPARE_POSITION;
|
|
10197
|
+
return sliderNormalizeValue(raw, 0, 100, safeStep);
|
|
10198
|
+
}
|
|
10199
|
+
function resolveImageCompareAriaLabel(label) {
|
|
10200
|
+
if (typeof label === "string") {
|
|
10201
|
+
const trimmed = label.trim();
|
|
10202
|
+
if (trimmed) return trimmed;
|
|
10203
|
+
}
|
|
10204
|
+
return DEFAULT_IMAGE_COMPARE_ARIA_LABEL;
|
|
10205
|
+
}
|
|
10206
|
+
var IMAGE_COMPARE_INTERACTIVE_SELECTOR = 'a, button, input, textarea, select, [role="button"]';
|
|
10207
|
+
function isImageCompareInteractiveTarget(target, handle) {
|
|
10208
|
+
if (!(target instanceof Element)) return false;
|
|
10209
|
+
if (handle instanceof Node && handle.contains(target)) return false;
|
|
10210
|
+
return target.closest(IMAGE_COMPARE_INTERACTIVE_SELECTOR) !== null;
|
|
10211
|
+
}
|
|
10212
|
+
function getImageComparePointerClientPoint(event) {
|
|
10213
|
+
if (event.touches && event.touches.length > 0) {
|
|
10214
|
+
const touch = event.touches[0];
|
|
10215
|
+
return { clientX: touch.clientX, clientY: touch.clientY };
|
|
10216
|
+
}
|
|
10217
|
+
if (typeof event.clientX === "number" && typeof event.clientY === "number") {
|
|
10218
|
+
return { clientX: event.clientX, clientY: event.clientY };
|
|
10219
|
+
}
|
|
10220
|
+
return null;
|
|
10221
|
+
}
|
|
10222
|
+
function getImageComparePositionFromPointer(input) {
|
|
10223
|
+
const orientation = resolveImageCompareOrientation(input.orientation);
|
|
10224
|
+
const step = resolveImageCompareStep(input.step);
|
|
10225
|
+
const { rect } = input;
|
|
10226
|
+
if (orientation === "vertical") {
|
|
10227
|
+
return sliderGetValueFromPosition(input.clientY - rect.top, rect.height, 0, 100, step);
|
|
10228
|
+
}
|
|
10229
|
+
return sliderGetValueFromPosition(input.clientX - rect.left, rect.width, 0, 100, step);
|
|
10230
|
+
}
|
|
10231
|
+
function getImageCompareKeyboardPosition(key, current, step) {
|
|
10232
|
+
return sliderGetKeyboardValue(
|
|
10233
|
+
key,
|
|
10234
|
+
resolveImageComparePosition(current, step),
|
|
10235
|
+
0,
|
|
10236
|
+
100,
|
|
10237
|
+
resolveImageCompareStep(step)
|
|
10238
|
+
);
|
|
10239
|
+
}
|
|
10240
|
+
function getImageCompareClipStyle(position, orientation, step) {
|
|
10241
|
+
const resolved = resolveImageComparePosition(position, step);
|
|
10242
|
+
const clipped = `${100 - resolved}%`;
|
|
10243
|
+
if (isImageCompareVertical(orientation)) {
|
|
10244
|
+
return { clipPath: `inset(0 0 ${clipped} 0)` };
|
|
10245
|
+
}
|
|
10246
|
+
return { clipPath: `inset(0 ${clipped} 0 0)` };
|
|
10247
|
+
}
|
|
10248
|
+
function getImageCompareHandleStyle(position, orientation, step) {
|
|
10249
|
+
const resolved = resolveImageComparePosition(position, step);
|
|
10250
|
+
if (isImageCompareVertical(orientation)) {
|
|
10251
|
+
return { top: `${resolved}%` };
|
|
10252
|
+
}
|
|
10253
|
+
return { left: `${resolved}%` };
|
|
10254
|
+
}
|
|
10255
|
+
function getImageCompareRootStyle(input = {}) {
|
|
10256
|
+
const position = resolveImageComparePosition(input.position, input.step);
|
|
10257
|
+
const style = {
|
|
10258
|
+
[IMAGE_COMPARE_POSITION_VAR]: `${position}%`
|
|
10259
|
+
};
|
|
10260
|
+
const width = toCSSSize(input.width);
|
|
10261
|
+
const height = toCSSSize(input.height);
|
|
10262
|
+
if (width) style.width = width;
|
|
10263
|
+
if (height) style.height = height;
|
|
10264
|
+
return style;
|
|
10265
|
+
}
|
|
10266
|
+
function getImageCompareRootClasses(input = {}) {
|
|
10267
|
+
return classNames(
|
|
10268
|
+
imageCompareRootClasses,
|
|
10269
|
+
isImageCompareVertical(input.orientation) ? imageCompareVerticalClasses : imageCompareHorizontalClasses,
|
|
10270
|
+
input.disabled && imageCompareDisabledClasses,
|
|
10271
|
+
input.className
|
|
10272
|
+
);
|
|
10273
|
+
}
|
|
10274
|
+
function getImageCompareAfterClasses(className) {
|
|
10275
|
+
return classNames(imageCompareAfterClasses, className);
|
|
10276
|
+
}
|
|
10277
|
+
function getImageCompareBeforeClasses(className) {
|
|
10278
|
+
return classNames(imageCompareBeforeClasses, className);
|
|
10279
|
+
}
|
|
10280
|
+
function getImageCompareHandleClasses(input = {}) {
|
|
10281
|
+
return classNames(
|
|
10282
|
+
imageCompareHandleClasses,
|
|
10283
|
+
isImageCompareVertical(input.orientation) ? imageCompareHandleVerticalClasses : imageCompareHandleHorizontalClasses,
|
|
10284
|
+
input.disabled && imageCompareHandleDisabledClasses,
|
|
10285
|
+
input.className
|
|
10286
|
+
);
|
|
10287
|
+
}
|
|
10288
|
+
function getImageCompareLineClasses(orientation) {
|
|
10289
|
+
return classNames(
|
|
10290
|
+
imageCompareLineClasses,
|
|
10291
|
+
isImageCompareVertical(orientation) ? imageCompareLineVerticalClasses : imageCompareLineHorizontalClasses
|
|
10292
|
+
);
|
|
10293
|
+
}
|
|
10294
|
+
function getImageCompareKnobClasses(className) {
|
|
10295
|
+
return classNames(imageCompareKnobClasses, className);
|
|
10296
|
+
}
|
|
10297
|
+
function getImageCompareImgClasses(fit) {
|
|
10298
|
+
return getImageImgClasses(resolveImageCompareFit(fit));
|
|
10299
|
+
}
|
|
10300
|
+
|
|
9152
10301
|
// src/utils/gesture-utils.ts
|
|
9153
10302
|
var DEFAULT_SWIPE_DISTANCE = 24;
|
|
9154
10303
|
var DEFAULT_LONG_PRESS_THRESHOLD = 500;
|
|
@@ -10758,7 +11907,10 @@ function valueToGaugeAngle(value, min, max, startAngle, endAngle) {
|
|
|
10758
11907
|
const safeMin = safeNumber(min);
|
|
10759
11908
|
const safeMax = safeNumber(max, safeMin);
|
|
10760
11909
|
if (safeMax <= safeMin) return safeStart;
|
|
10761
|
-
const ratio = Math.max(
|
|
11910
|
+
const ratio = Math.max(
|
|
11911
|
+
0,
|
|
11912
|
+
Math.min(1, (safeNumber(value, safeMin) - safeMin) / (safeMax - safeMin))
|
|
11913
|
+
);
|
|
10762
11914
|
return safeStart + ratio * (safeEnd - safeStart);
|
|
10763
11915
|
}
|
|
10764
11916
|
function computeGaugeTicks(cx, cy, radius, min, max, startAngle, endAngle, tickCount) {
|
|
@@ -10820,11 +11972,7 @@ function interpolateColor(minColor, maxColor, t) {
|
|
|
10820
11972
|
const clamped = Number.isFinite(t) ? Math.max(0, Math.min(1, t)) : 0;
|
|
10821
11973
|
const [r1, g1, b1] = hexToRgb(minColor);
|
|
10822
11974
|
const [r2, g2, b2] = hexToRgb(maxColor);
|
|
10823
|
-
return rgbToHex(
|
|
10824
|
-
r1 + (r2 - r1) * clamped,
|
|
10825
|
-
g1 + (g2 - g1) * clamped,
|
|
10826
|
-
b1 + (b2 - b1) * clamped
|
|
10827
|
-
);
|
|
11975
|
+
return rgbToHex(r1 + (r2 - r1) * clamped, g1 + (g2 - g1) * clamped, b1 + (b2 - b1) * clamped);
|
|
10828
11976
|
}
|
|
10829
11977
|
function interpolateColorOklch(minColor, maxColor, t) {
|
|
10830
11978
|
const clamped = Math.max(0, Math.min(1, t));
|
|
@@ -12607,6 +13755,148 @@ function createTaskBoardDragController(callbacks, initialOptions) {
|
|
|
12607
13755
|
return ctrl;
|
|
12608
13756
|
}
|
|
12609
13757
|
|
|
13758
|
+
// src/utils/virtual-list-utils.ts
|
|
13759
|
+
var virtualListContainerClasses = classNames(
|
|
13760
|
+
"overflow-auto relative",
|
|
13761
|
+
"bg-[var(--tiger-virtuallist-bg,var(--tiger-surface,#ffffff))]"
|
|
13762
|
+
);
|
|
13763
|
+
var virtualListInnerClasses = "relative w-full";
|
|
13764
|
+
function getFixedVirtualRange(scrollTop, containerHeight, itemHeight, itemCount, overscan) {
|
|
13765
|
+
if (itemHeight <= 0 || itemCount <= 0) {
|
|
13766
|
+
return { startIndex: 0, endIndex: -1, offsetTop: 0, totalHeight: 0 };
|
|
13767
|
+
}
|
|
13768
|
+
const totalHeight = itemCount * itemHeight;
|
|
13769
|
+
const startIndex = Math.max(0, Math.floor(scrollTop / itemHeight) - overscan);
|
|
13770
|
+
const visibleCount = Math.ceil(containerHeight / itemHeight);
|
|
13771
|
+
const endIndex = Math.min(itemCount - 1, startIndex + visibleCount + 2 * overscan);
|
|
13772
|
+
const offsetTop = startIndex * itemHeight;
|
|
13773
|
+
return { startIndex, endIndex, offsetTop, totalHeight };
|
|
13774
|
+
}
|
|
13775
|
+
function fixedSizeStrategy(itemHeight) {
|
|
13776
|
+
return {
|
|
13777
|
+
getRange(scrollTop, containerHeight, itemCount, overscan) {
|
|
13778
|
+
return getFixedVirtualRange(scrollTop, containerHeight, itemHeight, itemCount, overscan);
|
|
13779
|
+
},
|
|
13780
|
+
getItemHeight() {
|
|
13781
|
+
return itemHeight;
|
|
13782
|
+
},
|
|
13783
|
+
getItemOffset(index) {
|
|
13784
|
+
return index * itemHeight;
|
|
13785
|
+
}
|
|
13786
|
+
};
|
|
13787
|
+
}
|
|
13788
|
+
function variableSizeStrategy(getHeight, itemCount) {
|
|
13789
|
+
const offsets = new Float64Array(itemCount + 1);
|
|
13790
|
+
for (let i = 0; i < itemCount; i++) {
|
|
13791
|
+
offsets[i + 1] = offsets[i] + getHeight(i);
|
|
13792
|
+
}
|
|
13793
|
+
const totalHeight = offsets[itemCount] ?? 0;
|
|
13794
|
+
function binarySearchStart(scrollTop) {
|
|
13795
|
+
let lo = 0;
|
|
13796
|
+
let hi = itemCount - 1;
|
|
13797
|
+
while (lo <= hi) {
|
|
13798
|
+
const mid = lo + hi >>> 1;
|
|
13799
|
+
if (offsets[mid + 1] <= scrollTop) {
|
|
13800
|
+
lo = mid + 1;
|
|
13801
|
+
} else {
|
|
13802
|
+
hi = mid - 1;
|
|
13803
|
+
}
|
|
13804
|
+
}
|
|
13805
|
+
return Math.min(lo, itemCount - 1);
|
|
13806
|
+
}
|
|
13807
|
+
return {
|
|
13808
|
+
getRange(scrollTop, containerHeight, _itemCount, overscan) {
|
|
13809
|
+
if (itemCount === 0) {
|
|
13810
|
+
return { startIndex: 0, endIndex: -1, offsetTop: 0, totalHeight: 0 };
|
|
13811
|
+
}
|
|
13812
|
+
const rawStart = binarySearchStart(scrollTop);
|
|
13813
|
+
const startIndex = Math.max(0, rawStart - overscan);
|
|
13814
|
+
const viewEnd = scrollTop + containerHeight;
|
|
13815
|
+
let endIndex = rawStart;
|
|
13816
|
+
while (endIndex < itemCount - 1 && offsets[endIndex] < viewEnd) {
|
|
13817
|
+
endIndex++;
|
|
13818
|
+
}
|
|
13819
|
+
endIndex = Math.min(itemCount - 1, endIndex + overscan);
|
|
13820
|
+
const offsetTop = offsets[startIndex];
|
|
13821
|
+
return { startIndex, endIndex, offsetTop, totalHeight };
|
|
13822
|
+
},
|
|
13823
|
+
getItemHeight(index) {
|
|
13824
|
+
return getHeight(index);
|
|
13825
|
+
},
|
|
13826
|
+
getItemOffset(index) {
|
|
13827
|
+
return offsets[index] ?? 0;
|
|
13828
|
+
}
|
|
13829
|
+
};
|
|
13830
|
+
}
|
|
13831
|
+
function dynamicSizeStrategy(estimatedHeight, itemCount) {
|
|
13832
|
+
const measuredHeights = /* @__PURE__ */ new Map();
|
|
13833
|
+
const offsets = new Float64Array(itemCount + 1);
|
|
13834
|
+
for (let i = 0; i < itemCount; i++) {
|
|
13835
|
+
offsets[i + 1] = offsets[i] + estimatedHeight;
|
|
13836
|
+
}
|
|
13837
|
+
let dirtyFrom = itemCount;
|
|
13838
|
+
function getHeight(index) {
|
|
13839
|
+
return measuredHeights.get(index) ?? estimatedHeight;
|
|
13840
|
+
}
|
|
13841
|
+
function rebuildOffsets() {
|
|
13842
|
+
if (dirtyFrom >= itemCount) return;
|
|
13843
|
+
for (let i = dirtyFrom; i < itemCount; i++) {
|
|
13844
|
+
offsets[i + 1] = offsets[i] + getHeight(i);
|
|
13845
|
+
}
|
|
13846
|
+
dirtyFrom = itemCount;
|
|
13847
|
+
}
|
|
13848
|
+
function getOffset(index) {
|
|
13849
|
+
rebuildOffsets();
|
|
13850
|
+
const safeIndex = Math.min(itemCount, Math.max(0, index));
|
|
13851
|
+
return offsets[safeIndex] ?? 0;
|
|
13852
|
+
}
|
|
13853
|
+
function binarySearchStart(scrollTop) {
|
|
13854
|
+
let lo = 0;
|
|
13855
|
+
let hi = itemCount - 1;
|
|
13856
|
+
while (lo <= hi) {
|
|
13857
|
+
const mid = lo + hi >>> 1;
|
|
13858
|
+
if (offsets[mid + 1] <= scrollTop) {
|
|
13859
|
+
lo = mid + 1;
|
|
13860
|
+
} else {
|
|
13861
|
+
hi = mid - 1;
|
|
13862
|
+
}
|
|
13863
|
+
}
|
|
13864
|
+
return Math.min(lo, itemCount - 1);
|
|
13865
|
+
}
|
|
13866
|
+
return {
|
|
13867
|
+
getRange(scrollTop, containerHeight, _itemCount, overscan) {
|
|
13868
|
+
if (itemCount === 0) {
|
|
13869
|
+
return { startIndex: 0, endIndex: -1, offsetTop: 0, totalHeight: 0 };
|
|
13870
|
+
}
|
|
13871
|
+
rebuildOffsets();
|
|
13872
|
+
const rawStart = binarySearchStart(scrollTop);
|
|
13873
|
+
const startIndex = Math.max(0, rawStart - overscan);
|
|
13874
|
+
const viewEnd = scrollTop + containerHeight;
|
|
13875
|
+
let endIndex = rawStart;
|
|
13876
|
+
while (endIndex < itemCount - 1 && offsets[endIndex] < viewEnd) {
|
|
13877
|
+
endIndex++;
|
|
13878
|
+
}
|
|
13879
|
+
endIndex = Math.min(itemCount - 1, endIndex + overscan);
|
|
13880
|
+
const offsetTop = offsets[startIndex] ?? 0;
|
|
13881
|
+
const totalHeight = offsets[itemCount] ?? 0;
|
|
13882
|
+
return { startIndex, endIndex, offsetTop, totalHeight };
|
|
13883
|
+
},
|
|
13884
|
+
getItemHeight(index) {
|
|
13885
|
+
return getHeight(index);
|
|
13886
|
+
},
|
|
13887
|
+
getItemOffset(index) {
|
|
13888
|
+
return getOffset(index);
|
|
13889
|
+
},
|
|
13890
|
+
updateItemHeight(index, measuredHeight) {
|
|
13891
|
+
if (index < 0 || index >= itemCount || !Number.isFinite(measuredHeight) || measuredHeight <= 0 || getHeight(index) === measuredHeight) {
|
|
13892
|
+
return;
|
|
13893
|
+
}
|
|
13894
|
+
measuredHeights.set(index, measuredHeight);
|
|
13895
|
+
dirtyFrom = Math.min(dirtyFrom, index);
|
|
13896
|
+
}
|
|
13897
|
+
};
|
|
13898
|
+
}
|
|
13899
|
+
|
|
12610
13900
|
// src/utils/cascader-utils.ts
|
|
12611
13901
|
var cascaderBaseClasses = "relative inline-block w-full";
|
|
12612
13902
|
var CASCADER_TRIGGER_BASE_CLASSES = [
|
|
@@ -12745,6 +14035,27 @@ function getCascaderColumns(options, activePath) {
|
|
|
12745
14035
|
}
|
|
12746
14036
|
return columns;
|
|
12747
14037
|
}
|
|
14038
|
+
var CASCADER_DEFAULT_LIST_HEIGHT = 256;
|
|
14039
|
+
var CASCADER_VIRTUAL_OVERSCAN = 5;
|
|
14040
|
+
function getCascaderVirtualItemHeight(size2 = "md") {
|
|
14041
|
+
return getSelectVirtualItemHeight(size2);
|
|
14042
|
+
}
|
|
14043
|
+
function getCascaderVirtualRange(scrollTop, listHeight, itemCount, itemHeight, overscan = CASCADER_VIRTUAL_OVERSCAN) {
|
|
14044
|
+
const range = fixedSizeStrategy(itemHeight).getRange(scrollTop, listHeight, itemCount, overscan);
|
|
14045
|
+
if (range.endIndex < 0 || range.startIndex <= range.endIndex) return range;
|
|
14046
|
+
return {
|
|
14047
|
+
...range,
|
|
14048
|
+
startIndex: range.endIndex,
|
|
14049
|
+
offsetTop: range.endIndex * itemHeight
|
|
14050
|
+
};
|
|
14051
|
+
}
|
|
14052
|
+
function getCascaderVirtualAlignScrollTop(scrollTop, index, itemHeight, listHeight) {
|
|
14053
|
+
if (index < 0 || itemHeight <= 0 || listHeight <= 0) return scrollTop;
|
|
14054
|
+
const top = index * itemHeight;
|
|
14055
|
+
if (top < scrollTop) return top;
|
|
14056
|
+
if (top + itemHeight > scrollTop + listHeight) return top + itemHeight - listHeight;
|
|
14057
|
+
return scrollTop;
|
|
14058
|
+
}
|
|
12748
14059
|
|
|
12749
14060
|
// src/utils/auto-complete-utils.ts
|
|
12750
14061
|
var autoCompleteBaseClasses = "relative inline-block w-full";
|
|
@@ -12979,15 +14290,351 @@ function getNumberKeyboardKeys(options = {}) {
|
|
|
12979
14290
|
if (options.showConfirm !== false) {
|
|
12980
14291
|
keys.push({ type: "confirm", value: "confirm", label: confirmText, ariaLabel: confirmText });
|
|
12981
14292
|
}
|
|
12982
|
-
return keys;
|
|
14293
|
+
return keys;
|
|
14294
|
+
}
|
|
14295
|
+
function getNumberKeyboardKeyClasses(key, disabled = false) {
|
|
14296
|
+
return classNames(
|
|
14297
|
+
numberKeyboardKeyClasses,
|
|
14298
|
+
key.type === "confirm" && numberKeyboardConfirmKeyClasses,
|
|
14299
|
+
key.type === "empty" && numberKeyboardEmptyKeyClasses,
|
|
14300
|
+
disabled && "pointer-events-none"
|
|
14301
|
+
);
|
|
14302
|
+
}
|
|
14303
|
+
|
|
14304
|
+
// src/utils/input-otp-utils.ts
|
|
14305
|
+
var OTP_TYPE_PATTERNS = {
|
|
14306
|
+
numeric: /^[0-9]$/,
|
|
14307
|
+
alphanumeric: /^[a-zA-Z0-9]$/
|
|
14308
|
+
};
|
|
14309
|
+
function getOtpCharPattern(options) {
|
|
14310
|
+
const pattern = options.pattern;
|
|
14311
|
+
if (!pattern) return OTP_TYPE_PATTERNS[options.type ?? "numeric"];
|
|
14312
|
+
return pattern.global || pattern.sticky ? new RegExp(pattern.source, pattern.flags.replace(/[gy]/g, "")) : pattern;
|
|
14313
|
+
}
|
|
14314
|
+
function sanitizeOtpInput(raw, options = {}) {
|
|
14315
|
+
const pattern = getOtpCharPattern(options);
|
|
14316
|
+
let result = "";
|
|
14317
|
+
for (const char of raw) {
|
|
14318
|
+
if (pattern.test(char)) result += char;
|
|
14319
|
+
}
|
|
14320
|
+
return result;
|
|
14321
|
+
}
|
|
14322
|
+
function normalizeOtpValue(raw, length, options = {}) {
|
|
14323
|
+
return sanitizeOtpInput(raw, options).slice(0, length);
|
|
14324
|
+
}
|
|
14325
|
+
function distributeOtpPaste(pasted, length, options = {}) {
|
|
14326
|
+
const sanitized = sanitizeOtpInput(pasted, options);
|
|
14327
|
+
if (!sanitized) return null;
|
|
14328
|
+
const value = sanitized.slice(0, length);
|
|
14329
|
+
return { value, nextIndex: Math.min(value.length, length - 1) };
|
|
14330
|
+
}
|
|
14331
|
+
function applyOtpCharInput(current, index, chars, length, options = {}) {
|
|
14332
|
+
const sanitized = sanitizeOtpInput(chars, options);
|
|
14333
|
+
if (!sanitized) return { value: current, nextIndex: index };
|
|
14334
|
+
if (sanitized.length > 1) {
|
|
14335
|
+
return distributeOtpPaste(sanitized, length, options) ?? { value: current, nextIndex: index };
|
|
14336
|
+
}
|
|
14337
|
+
const effectiveIndex = Math.min(index, current.length, length - 1);
|
|
14338
|
+
const value = (current.slice(0, effectiveIndex) + sanitized + current.slice(effectiveIndex + 1)).slice(0, length);
|
|
14339
|
+
return { value, nextIndex: Math.min(effectiveIndex + 1, length - 1) };
|
|
14340
|
+
}
|
|
14341
|
+
function applyOtpBackspace(current, index) {
|
|
14342
|
+
if (index < current.length) {
|
|
14343
|
+
return { value: current.slice(0, index) + current.slice(index + 1), nextIndex: index };
|
|
14344
|
+
}
|
|
14345
|
+
if (index > 0) {
|
|
14346
|
+
return { value: current.slice(0, index - 1) + current.slice(index), nextIndex: index - 1 };
|
|
14347
|
+
}
|
|
14348
|
+
return { value: current, nextIndex: 0 };
|
|
14349
|
+
}
|
|
14350
|
+
function applyOtpDelete(current, index) {
|
|
14351
|
+
if (index < current.length) {
|
|
14352
|
+
return { value: current.slice(0, index) + current.slice(index + 1), nextIndex: index };
|
|
14353
|
+
}
|
|
14354
|
+
return { value: current, nextIndex: index };
|
|
14355
|
+
}
|
|
14356
|
+
function isOtpComplete(value, length) {
|
|
14357
|
+
return length > 0 && value.length >= length;
|
|
14358
|
+
}
|
|
14359
|
+
function getOtpSeparatorIndices(length, groups) {
|
|
14360
|
+
if (!groups || groups.length === 0) return [];
|
|
14361
|
+
const indices = [];
|
|
14362
|
+
let sum = 0;
|
|
14363
|
+
for (const group of groups) {
|
|
14364
|
+
if (!Number.isInteger(group) || group <= 0) return [];
|
|
14365
|
+
sum += group;
|
|
14366
|
+
if (sum < length) indices.push(sum - 1);
|
|
14367
|
+
}
|
|
14368
|
+
return sum === length ? indices : [];
|
|
14369
|
+
}
|
|
14370
|
+
function formatOtpSlotLabel(template, index, total) {
|
|
14371
|
+
return template.replace("{index}", String(index)).replace("{total}", String(total));
|
|
14372
|
+
}
|
|
14373
|
+
var OTP_CONTAINER_GAP = {
|
|
14374
|
+
sm: "gap-1.5",
|
|
14375
|
+
md: "gap-2",
|
|
14376
|
+
lg: "gap-3"
|
|
14377
|
+
};
|
|
14378
|
+
function getOtpContainerClasses(size2 = "md") {
|
|
14379
|
+
return classNames("inline-flex items-center", OTP_CONTAINER_GAP[size2]);
|
|
14380
|
+
}
|
|
14381
|
+
var OTP_TEXT_SIZE_CLASSES = {
|
|
14382
|
+
sm: "text-sm",
|
|
14383
|
+
md: "text-base",
|
|
14384
|
+
lg: "text-lg"
|
|
14385
|
+
};
|
|
14386
|
+
var OTP_SLOT_SIZE_CLASSES = {
|
|
14387
|
+
sm: "h-8 w-8 text-sm",
|
|
14388
|
+
md: "h-10 w-10 text-base",
|
|
14389
|
+
lg: "h-12 w-12 text-lg"
|
|
14390
|
+
};
|
|
14391
|
+
var OTP_SLOT_STATUS_CLASSES = {
|
|
14392
|
+
default: "border-[var(--tiger-border,#e5e7eb)] focus:ring-[var(--tiger-primary,#2563eb)]/40 focus:border-transparent",
|
|
14393
|
+
error: "border-red-500 focus:ring-red-500 focus:border-red-500 text-red-900",
|
|
14394
|
+
success: "border-green-500 focus:ring-green-500 focus:border-green-500 text-green-900",
|
|
14395
|
+
warning: "border-yellow-500 focus:ring-yellow-500 focus:border-yellow-500 text-yellow-900"
|
|
14396
|
+
};
|
|
14397
|
+
function getOtpSlotClasses(size2 = "md", status = "default", options = {}) {
|
|
14398
|
+
return classNames(
|
|
14399
|
+
"text-center border rounded-[var(--tiger-radius-md,0.5rem)]",
|
|
14400
|
+
"bg-[var(--tiger-surface,#ffffff)] text-[var(--tiger-text,#111827)]",
|
|
14401
|
+
"focus:outline-none focus:ring-2 transition-colors",
|
|
14402
|
+
"disabled:bg-[var(--tiger-surface-muted,#f3f4f6)] disabled:text-[var(--tiger-text-muted,#6b7280)] disabled:cursor-not-allowed",
|
|
14403
|
+
OTP_SLOT_SIZE_CLASSES[size2],
|
|
14404
|
+
OTP_SLOT_STATUS_CLASSES[status],
|
|
14405
|
+
options.readonly && "cursor-default"
|
|
14406
|
+
);
|
|
14407
|
+
}
|
|
14408
|
+
function getOtpSeparatorClasses(size2 = "md") {
|
|
14409
|
+
return classNames(
|
|
14410
|
+
"select-none text-[var(--tiger-text-muted,#6b7280)]",
|
|
14411
|
+
OTP_TEXT_SIZE_CLASSES[size2]
|
|
14412
|
+
);
|
|
14413
|
+
}
|
|
14414
|
+
function getOtpErrorClasses() {
|
|
14415
|
+
return "mt-1 text-sm text-[var(--tiger-error,#dc2626)]";
|
|
14416
|
+
}
|
|
14417
|
+
|
|
14418
|
+
// src/utils/tags-input-utils.ts
|
|
14419
|
+
function extractTagCandidates(inputValue, delimiters = [","]) {
|
|
14420
|
+
const separators = delimiters.filter((delimiter) => delimiter.length > 0);
|
|
14421
|
+
if (separators.length === 0) return { candidates: [], pending: inputValue };
|
|
14422
|
+
const candidates = [];
|
|
14423
|
+
let rest = inputValue;
|
|
14424
|
+
for (; ; ) {
|
|
14425
|
+
let earliest = -1;
|
|
14426
|
+
let separatorLength = 0;
|
|
14427
|
+
for (const separator of separators) {
|
|
14428
|
+
const index = rest.indexOf(separator);
|
|
14429
|
+
if (index !== -1 && (earliest === -1 || index < earliest)) {
|
|
14430
|
+
earliest = index;
|
|
14431
|
+
separatorLength = separator.length;
|
|
14432
|
+
}
|
|
14433
|
+
}
|
|
14434
|
+
if (earliest === -1) break;
|
|
14435
|
+
const segment = rest.slice(0, earliest).trim();
|
|
14436
|
+
if (segment) candidates.push(segment);
|
|
14437
|
+
rest = rest.slice(earliest + separatorLength);
|
|
14438
|
+
}
|
|
14439
|
+
return { candidates, pending: rest };
|
|
14440
|
+
}
|
|
14441
|
+
function splitTagInput(raw, delimiters = [","]) {
|
|
14442
|
+
const { candidates, pending } = extractTagCandidates(raw, [...delimiters, "\n", "\r"]);
|
|
14443
|
+
const last = pending.trim();
|
|
14444
|
+
return last ? [...candidates, last] : candidates;
|
|
14445
|
+
}
|
|
14446
|
+
function addTags(current, candidates, options = {}) {
|
|
14447
|
+
const { allowDuplicates = false, max } = options;
|
|
14448
|
+
const tags = [...current];
|
|
14449
|
+
const added = [];
|
|
14450
|
+
const rejected = [];
|
|
14451
|
+
for (const candidate of candidates) {
|
|
14452
|
+
const tag = candidate.trim();
|
|
14453
|
+
if (!tag) continue;
|
|
14454
|
+
if (max !== void 0 && tags.length >= max) {
|
|
14455
|
+
rejected.push(tag);
|
|
14456
|
+
continue;
|
|
14457
|
+
}
|
|
14458
|
+
if (!allowDuplicates && tags.includes(tag)) {
|
|
14459
|
+
rejected.push(tag);
|
|
14460
|
+
continue;
|
|
14461
|
+
}
|
|
14462
|
+
tags.push(tag);
|
|
14463
|
+
added.push(tag);
|
|
14464
|
+
}
|
|
14465
|
+
return { tags, added, rejected };
|
|
14466
|
+
}
|
|
14467
|
+
function removeTagAt(tags, index) {
|
|
14468
|
+
if (index < 0 || index >= tags.length) return tags;
|
|
14469
|
+
return [...tags.slice(0, index), ...tags.slice(index + 1)];
|
|
14470
|
+
}
|
|
14471
|
+
function formatRemoveTagLabel(template, tag) {
|
|
14472
|
+
return template.replace("{tag}", tag);
|
|
14473
|
+
}
|
|
14474
|
+
var TAGS_INPUT_SIZE_CLASSES = {
|
|
14475
|
+
sm: "min-h-8 px-2 py-1 text-sm gap-1",
|
|
14476
|
+
md: "min-h-10 px-3 py-1.5 text-base gap-1.5",
|
|
14477
|
+
lg: "min-h-12 px-4 py-2 text-lg gap-2"
|
|
14478
|
+
};
|
|
14479
|
+
var TAGS_INPUT_STATUS_CLASSES = {
|
|
14480
|
+
default: "border-[var(--tiger-border,#e5e7eb)] focus-within:ring-[var(--tiger-primary,#2563eb)]/40 focus-within:border-transparent",
|
|
14481
|
+
error: "border-red-500 focus-within:ring-red-500 focus-within:border-red-500",
|
|
14482
|
+
success: "border-green-500 focus-within:ring-green-500 focus-within:border-green-500",
|
|
14483
|
+
warning: "border-yellow-500 focus-within:ring-yellow-500 focus-within:border-yellow-500"
|
|
14484
|
+
};
|
|
14485
|
+
function getTagsInputContainerClasses(size2 = "md", status = "default", options = {}) {
|
|
14486
|
+
return classNames(
|
|
14487
|
+
"flex w-full flex-wrap items-center border rounded-[var(--tiger-radius-md,0.5rem)]",
|
|
14488
|
+
"bg-[var(--tiger-surface,#ffffff)] transition-colors focus-within:ring-2",
|
|
14489
|
+
TAGS_INPUT_SIZE_CLASSES[size2],
|
|
14490
|
+
TAGS_INPUT_STATUS_CLASSES[status],
|
|
14491
|
+
options.disabled && "cursor-not-allowed bg-[var(--tiger-surface-muted,#f3f4f6)] text-[var(--tiger-text-muted,#6b7280)]"
|
|
14492
|
+
);
|
|
14493
|
+
}
|
|
14494
|
+
function getTagsInputInnerInputClasses() {
|
|
14495
|
+
return classNames(
|
|
14496
|
+
"min-w-16 flex-1 border-none bg-transparent p-0 outline-none",
|
|
14497
|
+
"text-[var(--tiger-text,#111827)] placeholder:text-[var(--tiger-text-muted,#6b7280)]",
|
|
14498
|
+
"disabled:cursor-not-allowed"
|
|
14499
|
+
);
|
|
14500
|
+
}
|
|
14501
|
+
function getTagsInputHighlightClasses() {
|
|
14502
|
+
return "ring-2 ring-[var(--tiger-primary,#2563eb)]/60";
|
|
14503
|
+
}
|
|
14504
|
+
function getTagsInputClearButtonClasses() {
|
|
14505
|
+
return classNames(
|
|
14506
|
+
"shrink-0 cursor-pointer border-none bg-transparent p-0",
|
|
14507
|
+
"text-[var(--tiger-text-muted,#6b7280)] hover:text-[var(--tiger-text,#111827)]"
|
|
14508
|
+
);
|
|
14509
|
+
}
|
|
14510
|
+
function getTagsInputErrorClasses() {
|
|
14511
|
+
return "mt-1 text-sm text-[var(--tiger-error,#dc2626)]";
|
|
14512
|
+
}
|
|
14513
|
+
|
|
14514
|
+
// src/utils/mask-input-utils.ts
|
|
14515
|
+
var DEFAULT_MASK_TOKENS = {
|
|
14516
|
+
"#": { pattern: /[0-9]/ },
|
|
14517
|
+
a: { pattern: /[a-zA-Z]/ },
|
|
14518
|
+
"*": { pattern: /[a-zA-Z0-9]/ }
|
|
14519
|
+
};
|
|
14520
|
+
function parseMask(mask, tokens) {
|
|
14521
|
+
const tokenMap = { ...DEFAULT_MASK_TOKENS, ...tokens };
|
|
14522
|
+
const spec = [];
|
|
14523
|
+
let escaped = false;
|
|
14524
|
+
for (const char of mask) {
|
|
14525
|
+
if (escaped) {
|
|
14526
|
+
spec.push({ kind: "fixed", char });
|
|
14527
|
+
escaped = false;
|
|
14528
|
+
continue;
|
|
14529
|
+
}
|
|
14530
|
+
if (char === "!") {
|
|
14531
|
+
escaped = true;
|
|
14532
|
+
continue;
|
|
14533
|
+
}
|
|
14534
|
+
const token = tokenMap[char];
|
|
14535
|
+
spec.push(token ? { kind: "token", token } : { kind: "fixed", char });
|
|
14536
|
+
}
|
|
14537
|
+
return spec;
|
|
14538
|
+
}
|
|
14539
|
+
function countMaskTokens(spec) {
|
|
14540
|
+
let count = 0;
|
|
14541
|
+
for (const entry of spec) {
|
|
14542
|
+
if (entry.kind === "token") count += 1;
|
|
14543
|
+
}
|
|
14544
|
+
return count;
|
|
14545
|
+
}
|
|
14546
|
+
function formatMaskValue(raw, spec) {
|
|
14547
|
+
let maskedValue = "";
|
|
14548
|
+
let rawValue = "";
|
|
14549
|
+
let fixedBuffer = "";
|
|
14550
|
+
let rawPos = 0;
|
|
14551
|
+
let filled = 0;
|
|
14552
|
+
const chars = Array.from(raw);
|
|
14553
|
+
for (const entry of spec) {
|
|
14554
|
+
if (entry.kind === "fixed") {
|
|
14555
|
+
fixedBuffer += entry.char;
|
|
14556
|
+
continue;
|
|
14557
|
+
}
|
|
14558
|
+
let accepted;
|
|
14559
|
+
while (rawPos < chars.length) {
|
|
14560
|
+
const candidate = chars[rawPos];
|
|
14561
|
+
rawPos += 1;
|
|
14562
|
+
const transformed = entry.token.transform ? entry.token.transform(candidate) : candidate;
|
|
14563
|
+
if (entry.token.pattern.test(transformed)) {
|
|
14564
|
+
accepted = transformed;
|
|
14565
|
+
break;
|
|
14566
|
+
}
|
|
14567
|
+
}
|
|
14568
|
+
if (accepted === void 0) break;
|
|
14569
|
+
maskedValue += fixedBuffer + accepted;
|
|
14570
|
+
fixedBuffer = "";
|
|
14571
|
+
rawValue += accepted;
|
|
14572
|
+
filled += 1;
|
|
14573
|
+
}
|
|
14574
|
+
const totalTokens = countMaskTokens(spec);
|
|
14575
|
+
if (rawValue.length > 0 && fixedBuffer) {
|
|
14576
|
+
maskedValue += fixedBuffer;
|
|
14577
|
+
}
|
|
14578
|
+
return { rawValue, maskedValue, completed: totalTokens > 0 && filled === totalTokens };
|
|
14579
|
+
}
|
|
14580
|
+
function extractRawValue(masked, spec, upTo) {
|
|
14581
|
+
let raw = "";
|
|
14582
|
+
let specIdx = 0;
|
|
14583
|
+
const limit = upTo === void 0 ? masked.length : Math.min(upTo, masked.length);
|
|
14584
|
+
for (let i = 0; i < limit; i++) {
|
|
14585
|
+
const char = masked[i];
|
|
14586
|
+
if (specIdx < spec.length) {
|
|
14587
|
+
const entry2 = spec[specIdx];
|
|
14588
|
+
if (entry2.kind === "fixed" && entry2.char === char) {
|
|
14589
|
+
specIdx += 1;
|
|
14590
|
+
continue;
|
|
14591
|
+
}
|
|
14592
|
+
}
|
|
14593
|
+
let tokenIdx = specIdx;
|
|
14594
|
+
while (tokenIdx < spec.length && spec[tokenIdx].kind === "fixed") tokenIdx += 1;
|
|
14595
|
+
if (tokenIdx >= spec.length) break;
|
|
14596
|
+
const entry = spec[tokenIdx];
|
|
14597
|
+
const transformed = entry.token.transform ? entry.token.transform(char) : char;
|
|
14598
|
+
if (entry.token.pattern.test(transformed)) {
|
|
14599
|
+
raw += transformed;
|
|
14600
|
+
specIdx = tokenIdx + 1;
|
|
14601
|
+
}
|
|
14602
|
+
}
|
|
14603
|
+
return raw;
|
|
14604
|
+
}
|
|
14605
|
+
function getMaskCaretPosition(spec, rawIndex) {
|
|
14606
|
+
if (rawIndex <= 0) return 0;
|
|
14607
|
+
let pos = 0;
|
|
14608
|
+
let tokens = 0;
|
|
14609
|
+
for (let i = 0; i < spec.length; i++) {
|
|
14610
|
+
pos += 1;
|
|
14611
|
+
if (spec[i].kind !== "token") continue;
|
|
14612
|
+
tokens += 1;
|
|
14613
|
+
if (tokens === rawIndex) {
|
|
14614
|
+
for (let j = i + 1; j < spec.length && spec[j].kind === "fixed"; j++) {
|
|
14615
|
+
pos += 1;
|
|
14616
|
+
}
|
|
14617
|
+
return pos;
|
|
14618
|
+
}
|
|
14619
|
+
}
|
|
14620
|
+
return pos;
|
|
12983
14621
|
}
|
|
12984
|
-
function
|
|
12985
|
-
|
|
12986
|
-
|
|
12987
|
-
|
|
12988
|
-
|
|
12989
|
-
|
|
12990
|
-
|
|
14622
|
+
function applyMaskInput(inputValue, caret, spec, previousMasked) {
|
|
14623
|
+
let raw = extractRawValue(inputValue, spec);
|
|
14624
|
+
let rawBeforeCaret = extractRawValue(inputValue, spec, caret).length;
|
|
14625
|
+
let result = formatMaskValue(raw, spec);
|
|
14626
|
+
if (previousMasked !== void 0 && inputValue.length < previousMasked.length && result.maskedValue === previousMasked && rawBeforeCaret > 0) {
|
|
14627
|
+
raw = raw.slice(0, rawBeforeCaret - 1) + raw.slice(rawBeforeCaret);
|
|
14628
|
+
rawBeforeCaret -= 1;
|
|
14629
|
+
result = formatMaskValue(raw, spec);
|
|
14630
|
+
}
|
|
14631
|
+
const caretPos = Math.min(getMaskCaretPosition(spec, rawBeforeCaret), result.maskedValue.length);
|
|
14632
|
+
return {
|
|
14633
|
+
rawValue: result.rawValue,
|
|
14634
|
+
maskedValue: result.maskedValue,
|
|
14635
|
+
caret: caretPos,
|
|
14636
|
+
completed: result.completed
|
|
14637
|
+
};
|
|
12991
14638
|
}
|
|
12992
14639
|
|
|
12993
14640
|
// src/utils/cron-editor-utils.ts
|
|
@@ -13440,7 +15087,16 @@ function filterTransferItems(items, query, filterFn) {
|
|
|
13440
15087
|
|
|
13441
15088
|
// src/utils/tree-select-utils.ts
|
|
13442
15089
|
var treeSelectBaseClasses = "relative inline-block w-full";
|
|
13443
|
-
var
|
|
15090
|
+
var treeSelectDropdownSurfaceClasses = "bg-[var(--tiger-treeselect-dropdown-bg,var(--tiger-surface,#ffffff))] border border-[var(--tiger-treeselect-dropdown-border,var(--tiger-border,#d1d5db))] rounded-[var(--tiger-radius-md,0.5rem)] shadow-lg";
|
|
15091
|
+
var treeSelectDropdownClasses = classNames(
|
|
15092
|
+
treeSelectDropdownSurfaceClasses,
|
|
15093
|
+
"max-h-60 overflow-auto"
|
|
15094
|
+
);
|
|
15095
|
+
var TREE_SELECT_DEFAULT_HEIGHT = 400;
|
|
15096
|
+
var TREE_SELECT_DEFAULT_ITEM_HEIGHT = 32;
|
|
15097
|
+
function getTreeSelectDropdownClasses(virtual = false) {
|
|
15098
|
+
return virtual ? classNames(treeSelectDropdownSurfaceClasses, "overflow-hidden") : treeSelectDropdownClasses;
|
|
15099
|
+
}
|
|
13444
15100
|
var treeSelectSearchClasses = "w-full px-3 py-1.5 border-b border-[var(--tiger-treeselect-border,var(--tiger-border,#d1d5db))] text-sm bg-[var(--tiger-treeselect-bg,var(--tiger-surface,#ffffff))] text-[var(--tiger-treeselect-text,var(--tiger-text,#111827))] outline-none placeholder:text-[var(--tiger-treeselect-placeholder,var(--tiger-text-muted,#9ca3af))]";
|
|
13445
15101
|
var treeSelectEmptyClasses = "px-3 py-4 text-center text-[var(--tiger-treeselect-empty-text,var(--tiger-text-muted,#9ca3af))]";
|
|
13446
15102
|
var treeSelectNodeBaseClasses = "flex items-center px-2 py-1.5 cursor-pointer rounded transition-colors";
|
|
@@ -13520,6 +15176,31 @@ function filterTreeSelectNodes(data, query) {
|
|
|
13520
15176
|
search(data, []);
|
|
13521
15177
|
return matchedKeys;
|
|
13522
15178
|
}
|
|
15179
|
+
function getTreeSelectVisibleIndex(nodes, value) {
|
|
15180
|
+
if (value === void 0 || value === null || value === "") return -1;
|
|
15181
|
+
if (Array.isArray(value)) {
|
|
15182
|
+
if (value.length === 0) return -1;
|
|
15183
|
+
const selected = new Set(value);
|
|
15184
|
+
return nodes.findIndex((item) => selected.has(item.node.key));
|
|
15185
|
+
}
|
|
15186
|
+
return nodes.findIndex((item) => item.node.key === value);
|
|
15187
|
+
}
|
|
15188
|
+
function getTreeSelectVirtualAlignScrollTop(scrollTop, index, itemHeight, viewportHeight) {
|
|
15189
|
+
if (index < 0 || itemHeight <= 0 || viewportHeight <= 0) return scrollTop;
|
|
15190
|
+
const top = index * itemHeight;
|
|
15191
|
+
if (top < scrollTop) return top;
|
|
15192
|
+
if (top + itemHeight > scrollTop + viewportHeight) return top + itemHeight - viewportHeight;
|
|
15193
|
+
return scrollTop;
|
|
15194
|
+
}
|
|
15195
|
+
function alignTreeSelectVirtualScroll(el, index, itemHeight, viewportHeight) {
|
|
15196
|
+
if (!el || index < 0) return el?.scrollTop ?? 0;
|
|
15197
|
+
const next = getTreeSelectVirtualAlignScrollTop(el.scrollTop, index, itemHeight, viewportHeight);
|
|
15198
|
+
if (el.scrollTop !== next) {
|
|
15199
|
+
el.scrollTop = next;
|
|
15200
|
+
el.dispatchEvent(new Event("scroll"));
|
|
15201
|
+
}
|
|
15202
|
+
return next;
|
|
15203
|
+
}
|
|
13523
15204
|
|
|
13524
15205
|
// src/utils/rate-utils.ts
|
|
13525
15206
|
var rateBaseClasses = "inline-flex items-center gap-0.5";
|
|
@@ -13905,148 +15586,6 @@ function findEnabledColorSwatchIndex(options, startIndex, direction) {
|
|
|
13905
15586
|
return -1;
|
|
13906
15587
|
}
|
|
13907
15588
|
|
|
13908
|
-
// src/utils/virtual-list-utils.ts
|
|
13909
|
-
var virtualListContainerClasses = classNames(
|
|
13910
|
-
"overflow-auto relative",
|
|
13911
|
-
"bg-[var(--tiger-virtuallist-bg,var(--tiger-surface,#ffffff))]"
|
|
13912
|
-
);
|
|
13913
|
-
var virtualListInnerClasses = "relative w-full";
|
|
13914
|
-
function getFixedVirtualRange(scrollTop, containerHeight, itemHeight, itemCount, overscan) {
|
|
13915
|
-
if (itemHeight <= 0 || itemCount <= 0) {
|
|
13916
|
-
return { startIndex: 0, endIndex: -1, offsetTop: 0, totalHeight: 0 };
|
|
13917
|
-
}
|
|
13918
|
-
const totalHeight = itemCount * itemHeight;
|
|
13919
|
-
const startIndex = Math.max(0, Math.floor(scrollTop / itemHeight) - overscan);
|
|
13920
|
-
const visibleCount = Math.ceil(containerHeight / itemHeight);
|
|
13921
|
-
const endIndex = Math.min(itemCount - 1, startIndex + visibleCount + 2 * overscan);
|
|
13922
|
-
const offsetTop = startIndex * itemHeight;
|
|
13923
|
-
return { startIndex, endIndex, offsetTop, totalHeight };
|
|
13924
|
-
}
|
|
13925
|
-
function fixedSizeStrategy(itemHeight) {
|
|
13926
|
-
return {
|
|
13927
|
-
getRange(scrollTop, containerHeight, itemCount, overscan) {
|
|
13928
|
-
return getFixedVirtualRange(scrollTop, containerHeight, itemHeight, itemCount, overscan);
|
|
13929
|
-
},
|
|
13930
|
-
getItemHeight() {
|
|
13931
|
-
return itemHeight;
|
|
13932
|
-
},
|
|
13933
|
-
getItemOffset(index) {
|
|
13934
|
-
return index * itemHeight;
|
|
13935
|
-
}
|
|
13936
|
-
};
|
|
13937
|
-
}
|
|
13938
|
-
function variableSizeStrategy(getHeight, itemCount) {
|
|
13939
|
-
const offsets = new Float64Array(itemCount + 1);
|
|
13940
|
-
for (let i = 0; i < itemCount; i++) {
|
|
13941
|
-
offsets[i + 1] = offsets[i] + getHeight(i);
|
|
13942
|
-
}
|
|
13943
|
-
const totalHeight = offsets[itemCount] ?? 0;
|
|
13944
|
-
function binarySearchStart(scrollTop) {
|
|
13945
|
-
let lo = 0;
|
|
13946
|
-
let hi = itemCount - 1;
|
|
13947
|
-
while (lo <= hi) {
|
|
13948
|
-
const mid = lo + hi >>> 1;
|
|
13949
|
-
if (offsets[mid + 1] <= scrollTop) {
|
|
13950
|
-
lo = mid + 1;
|
|
13951
|
-
} else {
|
|
13952
|
-
hi = mid - 1;
|
|
13953
|
-
}
|
|
13954
|
-
}
|
|
13955
|
-
return Math.min(lo, itemCount - 1);
|
|
13956
|
-
}
|
|
13957
|
-
return {
|
|
13958
|
-
getRange(scrollTop, containerHeight, _itemCount, overscan) {
|
|
13959
|
-
if (itemCount === 0) {
|
|
13960
|
-
return { startIndex: 0, endIndex: -1, offsetTop: 0, totalHeight: 0 };
|
|
13961
|
-
}
|
|
13962
|
-
const rawStart = binarySearchStart(scrollTop);
|
|
13963
|
-
const startIndex = Math.max(0, rawStart - overscan);
|
|
13964
|
-
const viewEnd = scrollTop + containerHeight;
|
|
13965
|
-
let endIndex = rawStart;
|
|
13966
|
-
while (endIndex < itemCount - 1 && offsets[endIndex] < viewEnd) {
|
|
13967
|
-
endIndex++;
|
|
13968
|
-
}
|
|
13969
|
-
endIndex = Math.min(itemCount - 1, endIndex + overscan);
|
|
13970
|
-
const offsetTop = offsets[startIndex];
|
|
13971
|
-
return { startIndex, endIndex, offsetTop, totalHeight };
|
|
13972
|
-
},
|
|
13973
|
-
getItemHeight(index) {
|
|
13974
|
-
return getHeight(index);
|
|
13975
|
-
},
|
|
13976
|
-
getItemOffset(index) {
|
|
13977
|
-
return offsets[index] ?? 0;
|
|
13978
|
-
}
|
|
13979
|
-
};
|
|
13980
|
-
}
|
|
13981
|
-
function dynamicSizeStrategy(estimatedHeight, itemCount) {
|
|
13982
|
-
const measuredHeights = /* @__PURE__ */ new Map();
|
|
13983
|
-
const offsets = new Float64Array(itemCount + 1);
|
|
13984
|
-
for (let i = 0; i < itemCount; i++) {
|
|
13985
|
-
offsets[i + 1] = offsets[i] + estimatedHeight;
|
|
13986
|
-
}
|
|
13987
|
-
let dirtyFrom = itemCount;
|
|
13988
|
-
function getHeight(index) {
|
|
13989
|
-
return measuredHeights.get(index) ?? estimatedHeight;
|
|
13990
|
-
}
|
|
13991
|
-
function rebuildOffsets() {
|
|
13992
|
-
if (dirtyFrom >= itemCount) return;
|
|
13993
|
-
for (let i = dirtyFrom; i < itemCount; i++) {
|
|
13994
|
-
offsets[i + 1] = offsets[i] + getHeight(i);
|
|
13995
|
-
}
|
|
13996
|
-
dirtyFrom = itemCount;
|
|
13997
|
-
}
|
|
13998
|
-
function getOffset(index) {
|
|
13999
|
-
rebuildOffsets();
|
|
14000
|
-
const safeIndex = Math.min(itemCount, Math.max(0, index));
|
|
14001
|
-
return offsets[safeIndex] ?? 0;
|
|
14002
|
-
}
|
|
14003
|
-
function binarySearchStart(scrollTop) {
|
|
14004
|
-
let lo = 0;
|
|
14005
|
-
let hi = itemCount - 1;
|
|
14006
|
-
while (lo <= hi) {
|
|
14007
|
-
const mid = lo + hi >>> 1;
|
|
14008
|
-
if (offsets[mid + 1] <= scrollTop) {
|
|
14009
|
-
lo = mid + 1;
|
|
14010
|
-
} else {
|
|
14011
|
-
hi = mid - 1;
|
|
14012
|
-
}
|
|
14013
|
-
}
|
|
14014
|
-
return Math.min(lo, itemCount - 1);
|
|
14015
|
-
}
|
|
14016
|
-
return {
|
|
14017
|
-
getRange(scrollTop, containerHeight, _itemCount, overscan) {
|
|
14018
|
-
if (itemCount === 0) {
|
|
14019
|
-
return { startIndex: 0, endIndex: -1, offsetTop: 0, totalHeight: 0 };
|
|
14020
|
-
}
|
|
14021
|
-
rebuildOffsets();
|
|
14022
|
-
const rawStart = binarySearchStart(scrollTop);
|
|
14023
|
-
const startIndex = Math.max(0, rawStart - overscan);
|
|
14024
|
-
const viewEnd = scrollTop + containerHeight;
|
|
14025
|
-
let endIndex = rawStart;
|
|
14026
|
-
while (endIndex < itemCount - 1 && offsets[endIndex] < viewEnd) {
|
|
14027
|
-
endIndex++;
|
|
14028
|
-
}
|
|
14029
|
-
endIndex = Math.min(itemCount - 1, endIndex + overscan);
|
|
14030
|
-
const offsetTop = offsets[startIndex] ?? 0;
|
|
14031
|
-
const totalHeight = offsets[itemCount] ?? 0;
|
|
14032
|
-
return { startIndex, endIndex, offsetTop, totalHeight };
|
|
14033
|
-
},
|
|
14034
|
-
getItemHeight(index) {
|
|
14035
|
-
return getHeight(index);
|
|
14036
|
-
},
|
|
14037
|
-
getItemOffset(index) {
|
|
14038
|
-
return getOffset(index);
|
|
14039
|
-
},
|
|
14040
|
-
updateItemHeight(index, measuredHeight) {
|
|
14041
|
-
if (index < 0 || index >= itemCount || !Number.isFinite(measuredHeight) || measuredHeight <= 0 || getHeight(index) === measuredHeight) {
|
|
14042
|
-
return;
|
|
14043
|
-
}
|
|
14044
|
-
measuredHeights.set(index, measuredHeight);
|
|
14045
|
-
dirtyFrom = Math.min(dirtyFrom, index);
|
|
14046
|
-
}
|
|
14047
|
-
};
|
|
14048
|
-
}
|
|
14049
|
-
|
|
14050
15589
|
// src/utils/stepper-utils.ts
|
|
14051
15590
|
var stepperBaseClasses = "inline-flex items-center";
|
|
14052
15591
|
var sizePad = {
|
|
@@ -15241,6 +16780,202 @@ function applyAspectRatio(width, height, originalWidth, originalHeight) {
|
|
|
15241
16780
|
return { width, height: width / ratio };
|
|
15242
16781
|
}
|
|
15243
16782
|
|
|
16783
|
+
// src/utils/scroll-area-utils.ts
|
|
16784
|
+
var SCROLL_AREA_MIN_THUMB_SIZE = 20;
|
|
16785
|
+
var SCROLL_AREA_EPSILON = 1;
|
|
16786
|
+
var scrollAreaRootClasses = "tiger-scroll-area group/scroll-area relative overflow-hidden";
|
|
16787
|
+
var scrollAreaViewportBaseClasses = "tiger-scroll-area-viewport h-full w-full [scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden focus-visible:outline-2 focus-visible:outline-offset-[-2px] focus-visible:outline-[var(--tiger-primary,#2563eb)]";
|
|
16788
|
+
var scrollAreaScrollbarBaseClasses = "tiger-scroll-area-scrollbar absolute z-10 touch-none select-none rounded-full bg-[var(--tiger-surface-muted,#f3f4f6)] transition-opacity duration-200";
|
|
16789
|
+
var scrollAreaThumbBaseClasses = "tiger-scroll-area-thumb absolute rounded-full bg-[var(--tiger-border,#d1d5db)] transition-colors hover:bg-[var(--tiger-text-muted,#9ca3af)]";
|
|
16790
|
+
var scrollAreaThumbDraggingClasses = "bg-[var(--tiger-text-muted,#9ca3af)]";
|
|
16791
|
+
var scrollAreaContentBaseClasses = "tiger-scroll-area-content";
|
|
16792
|
+
var scrollAreaShadowBaseClasses = "tiger-scroll-area-shadow pointer-events-none absolute";
|
|
16793
|
+
var VIEWPORT_OVERFLOW_CLASSES = {
|
|
16794
|
+
vertical: "overflow-y-auto overflow-x-hidden",
|
|
16795
|
+
horizontal: "overflow-x-auto overflow-y-hidden",
|
|
16796
|
+
both: "overflow-auto"
|
|
16797
|
+
};
|
|
16798
|
+
var SCROLLBAR_THICKNESS_CLASSES = {
|
|
16799
|
+
sm: { x: "h-1.5", y: "w-1.5" },
|
|
16800
|
+
md: { x: "h-2.5", y: "w-2.5" },
|
|
16801
|
+
lg: { x: "h-3.5", y: "w-3.5" }
|
|
16802
|
+
};
|
|
16803
|
+
var SCROLLBAR_PLACEMENT_CLASSES = {
|
|
16804
|
+
x: "bottom-0 left-0 right-0",
|
|
16805
|
+
y: "right-0 top-0 bottom-0"
|
|
16806
|
+
};
|
|
16807
|
+
var THUMB_AXIS_CLASSES = {
|
|
16808
|
+
x: "top-0.5 bottom-0.5",
|
|
16809
|
+
y: "left-0.5 right-0.5"
|
|
16810
|
+
};
|
|
16811
|
+
var SHADOW_SIDE_CLASSES = {
|
|
16812
|
+
top: "inset-x-0 top-0 h-3 bg-gradient-to-b from-black/10 to-transparent",
|
|
16813
|
+
bottom: "inset-x-0 bottom-0 h-3 bg-gradient-to-t from-black/10 to-transparent",
|
|
16814
|
+
left: "inset-y-0 left-0 w-3 bg-gradient-to-r from-black/10 to-transparent",
|
|
16815
|
+
right: "inset-y-0 right-0 w-3 bg-gradient-to-l from-black/10 to-transparent"
|
|
16816
|
+
};
|
|
16817
|
+
function clamp(value, min, max) {
|
|
16818
|
+
if (Number.isNaN(value)) return min;
|
|
16819
|
+
if (value < min) return min;
|
|
16820
|
+
if (value > max) return max;
|
|
16821
|
+
return value;
|
|
16822
|
+
}
|
|
16823
|
+
function computeScrollAreaAxisState(scrollPos, scrollSize, clientSize, minThumbSize = SCROLL_AREA_MIN_THUMB_SIZE) {
|
|
16824
|
+
const maxScroll = scrollSize - clientSize;
|
|
16825
|
+
const scrollable = clientSize > 0 && maxScroll > SCROLL_AREA_EPSILON;
|
|
16826
|
+
if (!scrollable) {
|
|
16827
|
+
return {
|
|
16828
|
+
scrollable: false,
|
|
16829
|
+
thumbSize: clientSize > 0 ? clientSize : 0,
|
|
16830
|
+
thumbOffset: 0,
|
|
16831
|
+
progress: 0,
|
|
16832
|
+
atStart: true,
|
|
16833
|
+
atEnd: true
|
|
16834
|
+
};
|
|
16835
|
+
}
|
|
16836
|
+
const thumbSize = clamp(clientSize / scrollSize * clientSize, minThumbSize, clientSize);
|
|
16837
|
+
const position = clamp(scrollPos, 0, maxScroll);
|
|
16838
|
+
const progress = position / maxScroll;
|
|
16839
|
+
const thumbOffset = (clientSize - thumbSize) * progress;
|
|
16840
|
+
return {
|
|
16841
|
+
scrollable: true,
|
|
16842
|
+
thumbSize,
|
|
16843
|
+
thumbOffset,
|
|
16844
|
+
progress,
|
|
16845
|
+
atStart: position <= SCROLL_AREA_EPSILON,
|
|
16846
|
+
atEnd: maxScroll - position <= SCROLL_AREA_EPSILON
|
|
16847
|
+
};
|
|
16848
|
+
}
|
|
16849
|
+
function computeScrollAreaState(metrics, minThumbSize = SCROLL_AREA_MIN_THUMB_SIZE) {
|
|
16850
|
+
return {
|
|
16851
|
+
x: computeScrollAreaAxisState(
|
|
16852
|
+
Math.abs(metrics.scrollLeft),
|
|
16853
|
+
metrics.scrollWidth,
|
|
16854
|
+
metrics.clientWidth,
|
|
16855
|
+
minThumbSize
|
|
16856
|
+
),
|
|
16857
|
+
y: computeScrollAreaAxisState(
|
|
16858
|
+
metrics.scrollTop,
|
|
16859
|
+
metrics.scrollHeight,
|
|
16860
|
+
metrics.clientHeight,
|
|
16861
|
+
minThumbSize
|
|
16862
|
+
)
|
|
16863
|
+
};
|
|
16864
|
+
}
|
|
16865
|
+
function createEmptyScrollAreaState() {
|
|
16866
|
+
const axis = {
|
|
16867
|
+
scrollable: false,
|
|
16868
|
+
thumbSize: 0,
|
|
16869
|
+
thumbOffset: 0,
|
|
16870
|
+
progress: 0,
|
|
16871
|
+
atStart: true,
|
|
16872
|
+
atEnd: true
|
|
16873
|
+
};
|
|
16874
|
+
return { x: { ...axis }, y: { ...axis } };
|
|
16875
|
+
}
|
|
16876
|
+
function readScrollAreaMetrics(element) {
|
|
16877
|
+
return {
|
|
16878
|
+
scrollTop: element.scrollTop,
|
|
16879
|
+
scrollLeft: element.scrollLeft,
|
|
16880
|
+
scrollHeight: element.scrollHeight,
|
|
16881
|
+
scrollWidth: element.scrollWidth,
|
|
16882
|
+
clientHeight: element.clientHeight,
|
|
16883
|
+
clientWidth: element.clientWidth
|
|
16884
|
+
};
|
|
16885
|
+
}
|
|
16886
|
+
function computeScrollFromThumbOffset(thumbOffset, trackSize, thumbSize, scrollSize, clientSize) {
|
|
16887
|
+
const maxThumbOffset = trackSize - thumbSize;
|
|
16888
|
+
const maxScroll = Math.max(scrollSize - clientSize, 0);
|
|
16889
|
+
if (maxThumbOffset <= 0 || maxScroll <= 0) return 0;
|
|
16890
|
+
return clamp(thumbOffset / maxThumbOffset, 0, 1) * maxScroll;
|
|
16891
|
+
}
|
|
16892
|
+
function computeScrollFromTrackPoint(point, trackSize, thumbSize, scrollSize, clientSize) {
|
|
16893
|
+
return computeScrollFromThumbOffset(
|
|
16894
|
+
point - thumbSize / 2,
|
|
16895
|
+
trackSize,
|
|
16896
|
+
thumbSize,
|
|
16897
|
+
scrollSize,
|
|
16898
|
+
clientSize
|
|
16899
|
+
);
|
|
16900
|
+
}
|
|
16901
|
+
function isScrollAreaAxisEnabled(direction, axis) {
|
|
16902
|
+
if (direction === "both") return true;
|
|
16903
|
+
return axis === "y" ? direction === "vertical" : direction === "horizontal";
|
|
16904
|
+
}
|
|
16905
|
+
function shouldRenderScrollAreaScrollbar(visibility, direction, axis, axisState) {
|
|
16906
|
+
if (visibility === "hidden") return false;
|
|
16907
|
+
if (!isScrollAreaAxisEnabled(direction, axis)) return false;
|
|
16908
|
+
if (visibility === "always") return true;
|
|
16909
|
+
return axisState.scrollable;
|
|
16910
|
+
}
|
|
16911
|
+
function getScrollAreaShadowSides(state, direction) {
|
|
16912
|
+
const sides = [];
|
|
16913
|
+
if (isScrollAreaAxisEnabled(direction, "y") && state.y.scrollable) {
|
|
16914
|
+
if (!state.y.atStart) sides.push("top");
|
|
16915
|
+
if (!state.y.atEnd) sides.push("bottom");
|
|
16916
|
+
}
|
|
16917
|
+
if (isScrollAreaAxisEnabled(direction, "x") && state.x.scrollable) {
|
|
16918
|
+
if (!state.x.atStart) sides.push("left");
|
|
16919
|
+
if (!state.x.atEnd) sides.push("right");
|
|
16920
|
+
}
|
|
16921
|
+
return sides;
|
|
16922
|
+
}
|
|
16923
|
+
function resolveScrollAreaLength(value) {
|
|
16924
|
+
if (value === void 0 || value === null || value === "") return void 0;
|
|
16925
|
+
return typeof value === "number" ? `${value}px` : value;
|
|
16926
|
+
}
|
|
16927
|
+
function getScrollAreaBoxStyle(options) {
|
|
16928
|
+
const style = {};
|
|
16929
|
+
const height = resolveScrollAreaLength(options.height);
|
|
16930
|
+
const maxHeight = resolveScrollAreaLength(options.maxHeight);
|
|
16931
|
+
const width = resolveScrollAreaLength(options.width);
|
|
16932
|
+
const maxWidth = resolveScrollAreaLength(options.maxWidth);
|
|
16933
|
+
if (height !== void 0) style.height = height;
|
|
16934
|
+
if (maxHeight !== void 0) style.maxHeight = maxHeight;
|
|
16935
|
+
if (width !== void 0) style.width = width;
|
|
16936
|
+
if (maxWidth !== void 0) style.maxWidth = maxWidth;
|
|
16937
|
+
return style;
|
|
16938
|
+
}
|
|
16939
|
+
function getScrollAreaViewportClasses(direction, className) {
|
|
16940
|
+
return [scrollAreaViewportBaseClasses, VIEWPORT_OVERFLOW_CLASSES[direction], className].filter(Boolean).join(" ");
|
|
16941
|
+
}
|
|
16942
|
+
function getScrollAreaContentClasses(direction) {
|
|
16943
|
+
return direction === "vertical" ? scrollAreaContentBaseClasses : `${scrollAreaContentBaseClasses} min-w-max`;
|
|
16944
|
+
}
|
|
16945
|
+
function getScrollAreaScrollbarClasses(axis, size2, visibility) {
|
|
16946
|
+
const thickness = SCROLLBAR_THICKNESS_CLASSES[size2][axis];
|
|
16947
|
+
const fade = visibility === "hover" ? "opacity-0 group-hover/scroll-area:opacity-100 group-focus-within/scroll-area:opacity-100" : "opacity-100";
|
|
16948
|
+
return [scrollAreaScrollbarBaseClasses, SCROLLBAR_PLACEMENT_CLASSES[axis], thickness, fade].join(
|
|
16949
|
+
" "
|
|
16950
|
+
);
|
|
16951
|
+
}
|
|
16952
|
+
function getScrollAreaThumbClasses(axis, dragging) {
|
|
16953
|
+
return [
|
|
16954
|
+
scrollAreaThumbBaseClasses,
|
|
16955
|
+
THUMB_AXIS_CLASSES[axis],
|
|
16956
|
+
dragging ? scrollAreaThumbDraggingClasses : ""
|
|
16957
|
+
].filter(Boolean).join(" ");
|
|
16958
|
+
}
|
|
16959
|
+
function getScrollAreaThumbStyle(axis, axisState) {
|
|
16960
|
+
if (axis === "y") {
|
|
16961
|
+
return { height: `${axisState.thumbSize}px`, top: `${axisState.thumbOffset}px` };
|
|
16962
|
+
}
|
|
16963
|
+
return { width: `${axisState.thumbSize}px`, left: `${axisState.thumbOffset}px` };
|
|
16964
|
+
}
|
|
16965
|
+
function getScrollAreaShadowClasses(side) {
|
|
16966
|
+
return `${scrollAreaShadowBaseClasses} ${SHADOW_SIDE_CLASSES[side]}`;
|
|
16967
|
+
}
|
|
16968
|
+
function observeScrollAreaSize(targets, onResize) {
|
|
16969
|
+
if (typeof ResizeObserver === "undefined") return () => void 0;
|
|
16970
|
+
const observed = targets.filter((target) => Boolean(target));
|
|
16971
|
+
if (observed.length === 0) return () => void 0;
|
|
16972
|
+
const observer = new ResizeObserver(() => onResize());
|
|
16973
|
+
for (const target of observed) {
|
|
16974
|
+
observer.observe(target);
|
|
16975
|
+
}
|
|
16976
|
+
return () => observer.disconnect();
|
|
16977
|
+
}
|
|
16978
|
+
|
|
15244
16979
|
// src/utils/code-editor-utils.ts
|
|
15245
16980
|
var codeEditorBaseClasses = "relative font-mono text-sm leading-[1.625rem] border rounded overflow-hidden";
|
|
15246
16981
|
var codeEditorLightClasses = "bg-white border-gray-200 text-gray-900";
|
|
@@ -17415,6 +19150,144 @@ async function getCropperResult(cropper) {
|
|
|
17415
19150
|
return await cropper.getCropResult();
|
|
17416
19151
|
}
|
|
17417
19152
|
|
|
19153
|
+
// src/utils/aspect-ratio-utils.ts
|
|
19154
|
+
var ASPECT_RATIO_DEFAULT = "16/9";
|
|
19155
|
+
var ASPECT_RATIO_DEFAULT_NUMERIC = 16 / 9;
|
|
19156
|
+
var ASPECT_RATIO_DEFAULT_STYLE = { aspectRatio: "16 / 9" };
|
|
19157
|
+
var ASPECT_RATIO_FRACTION_PATTERN = /^\s*(\d+(?:\.\d+)?)\s*\/\s*(\d+(?:\.\d+)?)\s*$/;
|
|
19158
|
+
var aspectRatioRootClasses = "tiger-aspect-ratio relative w-full";
|
|
19159
|
+
var aspectRatioContentClasses = "tiger-aspect-ratio-content absolute inset-0";
|
|
19160
|
+
function isValidAspectRatio(value) {
|
|
19161
|
+
return Number.isFinite(value) && value > 0;
|
|
19162
|
+
}
|
|
19163
|
+
function matchValidFraction(ratio) {
|
|
19164
|
+
const fraction = ASPECT_RATIO_FRACTION_PATTERN.exec(ratio);
|
|
19165
|
+
if (!fraction) return null;
|
|
19166
|
+
const numerator = Number(fraction[1]);
|
|
19167
|
+
const denominator = Number(fraction[2]);
|
|
19168
|
+
if (denominator <= 0 || !isValidAspectRatio(numerator) || !isValidAspectRatio(numerator / denominator)) {
|
|
19169
|
+
return null;
|
|
19170
|
+
}
|
|
19171
|
+
return { numerator: fraction[1], denominator: fraction[2] };
|
|
19172
|
+
}
|
|
19173
|
+
function parseAspectRatio(ratio, fallback = ASPECT_RATIO_DEFAULT_NUMERIC) {
|
|
19174
|
+
if (typeof ratio === "number") {
|
|
19175
|
+
return isValidAspectRatio(ratio) ? ratio : fallback;
|
|
19176
|
+
}
|
|
19177
|
+
if (typeof ratio === "string") {
|
|
19178
|
+
const fraction = matchValidFraction(ratio);
|
|
19179
|
+
if (fraction) {
|
|
19180
|
+
return Number(fraction.numerator) / Number(fraction.denominator);
|
|
19181
|
+
}
|
|
19182
|
+
const numeric = Number(ratio.trim());
|
|
19183
|
+
return isValidAspectRatio(numeric) ? numeric : fallback;
|
|
19184
|
+
}
|
|
19185
|
+
return fallback;
|
|
19186
|
+
}
|
|
19187
|
+
function getAspectRatioStyle(ratio) {
|
|
19188
|
+
if (typeof ratio === "string") {
|
|
19189
|
+
const fraction = matchValidFraction(ratio);
|
|
19190
|
+
if (fraction) {
|
|
19191
|
+
return { aspectRatio: fraction.numerator + " / " + fraction.denominator };
|
|
19192
|
+
}
|
|
19193
|
+
const numeric = Number(ratio.trim());
|
|
19194
|
+
if (isValidAspectRatio(numeric)) {
|
|
19195
|
+
return { aspectRatio: String(numeric) };
|
|
19196
|
+
}
|
|
19197
|
+
return ASPECT_RATIO_DEFAULT_STYLE;
|
|
19198
|
+
}
|
|
19199
|
+
if (typeof ratio === "number" && isValidAspectRatio(ratio)) {
|
|
19200
|
+
return { aspectRatio: String(ratio) };
|
|
19201
|
+
}
|
|
19202
|
+
return ASPECT_RATIO_DEFAULT_STYLE;
|
|
19203
|
+
}
|
|
19204
|
+
function getAspectRatioRootClasses(className) {
|
|
19205
|
+
return className ? aspectRatioRootClasses + " " + className : aspectRatioRootClasses;
|
|
19206
|
+
}
|
|
19207
|
+
function getAspectRatioContentClasses(className) {
|
|
19208
|
+
return className ? aspectRatioContentClasses + " " + className : aspectRatioContentClasses;
|
|
19209
|
+
}
|
|
19210
|
+
|
|
19211
|
+
// src/utils/masonry-utils.ts
|
|
19212
|
+
var MASONRY_DEFAULT_COLUMNS = 3;
|
|
19213
|
+
var MASONRY_DEFAULT_GAP = 16;
|
|
19214
|
+
var masonryRootClasses = "tiger-masonry flex w-full items-start";
|
|
19215
|
+
var masonryColumnClasses = "tiger-masonry-column flex min-w-0 flex-1 flex-col";
|
|
19216
|
+
var masonryItemClasses = "tiger-masonry-item";
|
|
19217
|
+
function clampMasonryColumnCount(value) {
|
|
19218
|
+
if (!Number.isFinite(value) || value < 1) return 1;
|
|
19219
|
+
return Math.floor(value);
|
|
19220
|
+
}
|
|
19221
|
+
function clampMasonryGap(value) {
|
|
19222
|
+
if (!Number.isFinite(value) || value < 0) return 0;
|
|
19223
|
+
return value;
|
|
19224
|
+
}
|
|
19225
|
+
function resolveMasonryColumnCount(columns, width) {
|
|
19226
|
+
const resolved = resolveResponsiveValue(
|
|
19227
|
+
columns ?? MASONRY_DEFAULT_COLUMNS,
|
|
19228
|
+
width,
|
|
19229
|
+
MASONRY_DEFAULT_COLUMNS
|
|
19230
|
+
);
|
|
19231
|
+
return clampMasonryColumnCount(resolved);
|
|
19232
|
+
}
|
|
19233
|
+
function resolveMasonryGap(gap, width) {
|
|
19234
|
+
const resolved = resolveResponsiveValue(gap ?? MASONRY_DEFAULT_GAP, width, MASONRY_DEFAULT_GAP);
|
|
19235
|
+
return clampMasonryGap(resolved);
|
|
19236
|
+
}
|
|
19237
|
+
function distributeMasonryItems(heights, columnCount) {
|
|
19238
|
+
const count = clampMasonryColumnCount(columnCount);
|
|
19239
|
+
const columns = Array.from({ length: count }, () => []);
|
|
19240
|
+
const totals = new Array(count).fill(0);
|
|
19241
|
+
heights.forEach((rawHeight, index) => {
|
|
19242
|
+
const height = Number.isFinite(rawHeight) ? rawHeight : 0;
|
|
19243
|
+
let target = 0;
|
|
19244
|
+
for (let column = 1; column < count; column++) {
|
|
19245
|
+
if (totals[column] < totals[target]) target = column;
|
|
19246
|
+
}
|
|
19247
|
+
columns[target].push(index);
|
|
19248
|
+
totals[target] += height;
|
|
19249
|
+
});
|
|
19250
|
+
return columns;
|
|
19251
|
+
}
|
|
19252
|
+
function moduloDistributeMasonryItems(itemCount, columnCount) {
|
|
19253
|
+
const count = clampMasonryColumnCount(columnCount);
|
|
19254
|
+
const columns = Array.from({ length: count }, () => []);
|
|
19255
|
+
const total = Number.isFinite(itemCount) && itemCount > 0 ? Math.floor(itemCount) : 0;
|
|
19256
|
+
for (let index = 0; index < total; index++) {
|
|
19257
|
+
columns[index % count].push(index);
|
|
19258
|
+
}
|
|
19259
|
+
return columns;
|
|
19260
|
+
}
|
|
19261
|
+
function computeMasonryColumnHeights(heights, columns, gap) {
|
|
19262
|
+
const spacing = clampMasonryGap(gap);
|
|
19263
|
+
return columns.map((column) => {
|
|
19264
|
+
const total = column.reduce(
|
|
19265
|
+
(sum, index) => sum + (Number.isFinite(heights[index]) ? heights[index] : 0),
|
|
19266
|
+
0
|
|
19267
|
+
);
|
|
19268
|
+
return total + Math.max(column.length - 1, 0) * spacing;
|
|
19269
|
+
});
|
|
19270
|
+
}
|
|
19271
|
+
function readMasonryItemHeight(element) {
|
|
19272
|
+
const height = element.getBoundingClientRect().height;
|
|
19273
|
+
return Number.isFinite(height) ? height : 0;
|
|
19274
|
+
}
|
|
19275
|
+
function getMasonryRootClasses(className) {
|
|
19276
|
+
return [masonryRootClasses, className].filter(Boolean).join(" ");
|
|
19277
|
+
}
|
|
19278
|
+
function getMasonryColumnClasses(className) {
|
|
19279
|
+
return [masonryColumnClasses, className].filter(Boolean).join(" ");
|
|
19280
|
+
}
|
|
19281
|
+
function getMasonryItemClasses(className) {
|
|
19282
|
+
return [masonryItemClasses, className].filter(Boolean).join(" ");
|
|
19283
|
+
}
|
|
19284
|
+
function getMasonryGapStyle(gap) {
|
|
19285
|
+
return { gap: `${clampMasonryGap(gap)}px` };
|
|
19286
|
+
}
|
|
19287
|
+
function getMasonryColumnStyle(gap) {
|
|
19288
|
+
return { rowGap: `${clampMasonryGap(gap)}px` };
|
|
19289
|
+
}
|
|
19290
|
+
|
|
17418
19291
|
// src/theme-runtime/checkbox.ts
|
|
17419
19292
|
var checkboxSizeClasses2 = {
|
|
17420
19293
|
sm: "w-4 h-4",
|
|
@@ -19059,12 +20932,17 @@ var designTokens = {
|
|
|
19059
20932
|
};
|
|
19060
20933
|
|
|
19061
20934
|
// src/index.ts
|
|
19062
|
-
var version = "2.
|
|
20935
|
+
var version = "2.1.0";
|
|
19063
20936
|
export {
|
|
19064
20937
|
ANIMATION_DURATION_FAST_MS,
|
|
19065
20938
|
ANIMATION_DURATION_MS,
|
|
19066
20939
|
ANIMATION_DURATION_SLOW_MS,
|
|
20940
|
+
ASPECT_RATIO_DEFAULT,
|
|
20941
|
+
CASCADER_DEFAULT_LIST_HEIGHT,
|
|
19067
20942
|
COMPONENT_MOTION_VARS,
|
|
20943
|
+
CONTEXT_MENU_ENTER_CLASS,
|
|
20944
|
+
CONTEXT_MENU_POINT_SIZE,
|
|
20945
|
+
CONTEXT_MENU_SUB_CHEVRON_PATH,
|
|
19068
20946
|
COUNTDOWN_DEFAULT_FORMAT,
|
|
19069
20947
|
COUNTDOWN_DEFAULT_INTERVAL_MS,
|
|
19070
20948
|
CROP_HANDLES,
|
|
@@ -19079,16 +20957,41 @@ export {
|
|
|
19079
20957
|
DEFAULT_FORM_VALIDATION_LABELS,
|
|
19080
20958
|
DEFAULT_FORM_WIZARD_LABELS,
|
|
19081
20959
|
DEFAULT_HEATMAP_CANVAS_THRESHOLD,
|
|
20960
|
+
DEFAULT_HIGHLIGHT_CASE_SENSITIVE,
|
|
20961
|
+
DEFAULT_HIGHLIGHT_GLOBAL,
|
|
20962
|
+
DEFAULT_IMAGE_COMPARE_ARIA_LABEL,
|
|
20963
|
+
DEFAULT_IMAGE_COMPARE_FIT,
|
|
20964
|
+
DEFAULT_IMAGE_COMPARE_ORIENTATION,
|
|
20965
|
+
DEFAULT_IMAGE_COMPARE_POSITION,
|
|
20966
|
+
DEFAULT_IMAGE_COMPARE_STEP,
|
|
19082
20967
|
DEFAULT_IMAGE_EDITOR_LABELS,
|
|
19083
20968
|
DEFAULT_IMAGE_VIEWER_LABELS,
|
|
20969
|
+
DEFAULT_INPUT_OTP_LABELS,
|
|
20970
|
+
DEFAULT_KBD_SEPARATOR,
|
|
20971
|
+
DEFAULT_KBD_SIZE,
|
|
20972
|
+
DEFAULT_KBD_VARIANT,
|
|
20973
|
+
DEFAULT_LOADING_BAR_ARIA_LABEL,
|
|
20974
|
+
DEFAULT_LOADING_BAR_COLOR,
|
|
20975
|
+
DEFAULT_LOADING_BAR_HEIGHT,
|
|
19084
20976
|
DEFAULT_MARKDOWN_EDITOR_LABELS,
|
|
20977
|
+
DEFAULT_MARQUEE_ARIA_LABEL,
|
|
20978
|
+
DEFAULT_MARQUEE_DIRECTION,
|
|
20979
|
+
DEFAULT_MARQUEE_DURATION_MS,
|
|
20980
|
+
DEFAULT_MARQUEE_GAP_PX,
|
|
20981
|
+
DEFAULT_MARQUEE_PAUSE_ON_HOVER,
|
|
20982
|
+
DEFAULT_MARQUEE_REPEAT,
|
|
20983
|
+
DEFAULT_MASK_TOKENS,
|
|
19085
20984
|
DEFAULT_PAGINATION_LABELS,
|
|
19086
20985
|
DEFAULT_RATE_LABELS,
|
|
19087
20986
|
DEFAULT_RICH_TEXT_EDITOR_LABELS,
|
|
19088
20987
|
DEFAULT_SELECT_LABELS,
|
|
20988
|
+
DEFAULT_SPLIT_BUTTON_SIZE,
|
|
20989
|
+
DEFAULT_SPLIT_BUTTON_TRIGGER_ARIA_LABEL,
|
|
20990
|
+
DEFAULT_SPLIT_BUTTON_VARIANT,
|
|
19089
20991
|
DEFAULT_STATUS_LABELS,
|
|
19090
20992
|
DEFAULT_TABLE_LABELS,
|
|
19091
20993
|
DEFAULT_TABS_LABELS,
|
|
20994
|
+
DEFAULT_TAGS_INPUT_LABELS,
|
|
19092
20995
|
DEFAULT_TASK_BOARD_LABELS,
|
|
19093
20996
|
DEFAULT_TIME_PICKER_LABELS,
|
|
19094
20997
|
DEFAULT_TOUR_LABELS,
|
|
@@ -19113,6 +21016,21 @@ export {
|
|
|
19113
21016
|
FLOATING_OVERLAY_Z_INDEX,
|
|
19114
21017
|
FORM_VALIDATION_PRESETS,
|
|
19115
21018
|
GAUGE_ANIMATION_DURATION_MS,
|
|
21019
|
+
IMAGE_COMPARE_POSITION_VAR,
|
|
21020
|
+
LOADING_BAR_CONTAINER_ID,
|
|
21021
|
+
LOADING_BAR_CONTAINER_ROOT_ID,
|
|
21022
|
+
LOADING_BAR_FINISH_HIDE_DELAY_MS,
|
|
21023
|
+
LOADING_BAR_MAX_TRICKLE_PERCENTAGE,
|
|
21024
|
+
LOADING_BAR_START_PERCENTAGE,
|
|
21025
|
+
LOADING_BAR_TRICKLE_INTERVAL_MS,
|
|
21026
|
+
MARQUEE_COPIES_VAR,
|
|
21027
|
+
MARQUEE_CSS,
|
|
21028
|
+
MARQUEE_DURATION_VAR,
|
|
21029
|
+
MARQUEE_GAP_VAR,
|
|
21030
|
+
MARQUEE_STYLE_ID,
|
|
21031
|
+
MASONRY_DEFAULT_COLUMNS,
|
|
21032
|
+
MASONRY_DEFAULT_GAP,
|
|
21033
|
+
MAX_MARQUEE_REPEAT,
|
|
19116
21034
|
MODERN_BASE_TOKENS_DARK,
|
|
19117
21035
|
MODERN_BASE_TOKENS_LIGHT,
|
|
19118
21036
|
MODERN_OVERRIDE_TOKENS_DARK,
|
|
@@ -19123,6 +21041,13 @@ export {
|
|
|
19123
21041
|
MOTION_DURATION_TOKEN_VARS,
|
|
19124
21042
|
MOTION_EASING_TOKEN_FALLBACKS,
|
|
19125
21043
|
MOTION_EASING_TOKEN_VARS,
|
|
21044
|
+
NAVIGATION_MENU_BAR_ITEM_ATTR,
|
|
21045
|
+
NAVIGATION_MENU_CHEVRON_PATH,
|
|
21046
|
+
NAVIGATION_MENU_DEFAULT_DELAY_DURATION,
|
|
21047
|
+
NAVIGATION_MENU_DEFAULT_OFFSET,
|
|
21048
|
+
NAVIGATION_MENU_DEFAULT_SKIP_DELAY_DURATION,
|
|
21049
|
+
NAVIGATION_MENU_ENTER_CLASS,
|
|
21050
|
+
PAGE_HEADER_DEFAULT_BACK_ARIA_LABEL,
|
|
19126
21051
|
PAGINATION_FULL_MODE_PAGE_THRESHOLD,
|
|
19127
21052
|
PIE_BASE_SHADOW,
|
|
19128
21053
|
PIE_EMPHASIS_SHADOW,
|
|
@@ -19132,6 +21057,7 @@ export {
|
|
|
19132
21057
|
RESIZE_KEYBOARD_STEP,
|
|
19133
21058
|
SCATTER_ENTRANCE_CLASS,
|
|
19134
21059
|
SCATTER_ENTRANCE_KEYFRAMES,
|
|
21060
|
+
SCROLL_AREA_MIN_THUMB_SIZE,
|
|
19135
21061
|
SHAKE_CLASS,
|
|
19136
21062
|
STATISTIC_ANIMATION_DURATION_MS,
|
|
19137
21063
|
SVG_ANIMATION_CLASSES,
|
|
@@ -19151,6 +21077,8 @@ export {
|
|
|
19151
21077
|
TRANSITION_DURATIONS,
|
|
19152
21078
|
TRANSITION_OPACITY,
|
|
19153
21079
|
TRANSITION_TRANSFORM,
|
|
21080
|
+
TREE_SELECT_DEFAULT_HEIGHT,
|
|
21081
|
+
TREE_SELECT_DEFAULT_ITEM_HEIGHT,
|
|
19154
21082
|
ThemeManager,
|
|
19155
21083
|
VIEW_TRANSITION_CSS,
|
|
19156
21084
|
WEEKDAYS,
|
|
@@ -19165,6 +21093,7 @@ export {
|
|
|
19165
21093
|
ZH_CN_FORM_WIZARD_LABELS,
|
|
19166
21094
|
ZH_CN_IMAGE_EDITOR_LABELS,
|
|
19167
21095
|
ZH_CN_IMAGE_VIEWER_LABELS,
|
|
21096
|
+
ZH_CN_INPUT_OTP_LABELS,
|
|
19168
21097
|
ZH_CN_MARKDOWN_EDITOR_LABELS,
|
|
19169
21098
|
ZH_CN_PAGINATION_LABELS,
|
|
19170
21099
|
ZH_CN_RATE_LABELS,
|
|
@@ -19173,6 +21102,7 @@ export {
|
|
|
19173
21102
|
ZH_CN_STATUS_LABELS,
|
|
19174
21103
|
ZH_CN_TABLE_LABELS,
|
|
19175
21104
|
ZH_CN_TABS_LABELS,
|
|
21105
|
+
ZH_CN_TAGS_INPUT_LABELS,
|
|
19176
21106
|
ZH_CN_TASK_BOARD_LABELS,
|
|
19177
21107
|
ZH_CN_TIME_PICKER_LABELS,
|
|
19178
21108
|
ZH_CN_TOUR_LABELS,
|
|
@@ -19189,6 +21119,7 @@ export {
|
|
|
19189
21119
|
activityItemTitleGroupClasses,
|
|
19190
21120
|
addDays,
|
|
19191
21121
|
addMonths,
|
|
21122
|
+
addTags,
|
|
19192
21123
|
addYears,
|
|
19193
21124
|
affixWrapperClasses,
|
|
19194
21125
|
alertBannerClasses,
|
|
@@ -19204,6 +21135,7 @@ export {
|
|
|
19204
21135
|
alertIconSizeClasses,
|
|
19205
21136
|
alertSizeClasses,
|
|
19206
21137
|
alertTitleSizeClasses,
|
|
21138
|
+
alignTreeSelectVirtualScroll,
|
|
19207
21139
|
anchorAffixClasses,
|
|
19208
21140
|
anchorBaseClasses,
|
|
19209
21141
|
anchorInkActiveHorizontalClasses,
|
|
@@ -19222,9 +21154,15 @@ export {
|
|
|
19222
21154
|
applyFileDragReorder,
|
|
19223
21155
|
applyFloatingStyles,
|
|
19224
21156
|
applyMarkdownToolbarAction,
|
|
21157
|
+
applyMaskInput,
|
|
19225
21158
|
applyNumberKeyboardInput,
|
|
21159
|
+
applyOtpBackspace,
|
|
21160
|
+
applyOtpCharInput,
|
|
21161
|
+
applyOtpDelete,
|
|
19226
21162
|
applyWheelZoom,
|
|
19227
21163
|
archiveIcon,
|
|
21164
|
+
aspectRatioContentClasses,
|
|
21165
|
+
aspectRatioRootClasses,
|
|
19228
21166
|
autoCompleteBaseClasses,
|
|
19229
21167
|
autoCompleteDropdownClasses,
|
|
19230
21168
|
autoCompleteEmptyStateClasses,
|
|
@@ -19362,6 +21300,9 @@ export {
|
|
|
19362
21300
|
clampDimensions,
|
|
19363
21301
|
clampImageAnnotationPoint,
|
|
19364
21302
|
clampImageAnnotationUnit,
|
|
21303
|
+
clampLoadingBarPercentage,
|
|
21304
|
+
clampMasonryColumnCount,
|
|
21305
|
+
clampMasonryGap,
|
|
19365
21306
|
clampPaneSize,
|
|
19366
21307
|
clampPercentage,
|
|
19367
21308
|
clampScale,
|
|
@@ -19439,9 +21380,14 @@ export {
|
|
|
19439
21380
|
computeGanttLayout,
|
|
19440
21381
|
computeGaugeTicks,
|
|
19441
21382
|
computeHeatmapCells,
|
|
21383
|
+
computeMasonryColumnHeights,
|
|
19442
21384
|
computeOrgChartLayout,
|
|
19443
21385
|
computePieHoverOffset,
|
|
19444
21386
|
computePieLabelLine,
|
|
21387
|
+
computeScrollAreaAxisState,
|
|
21388
|
+
computeScrollAreaState,
|
|
21389
|
+
computeScrollFromThumbOffset,
|
|
21390
|
+
computeScrollFromTrackPoint,
|
|
19445
21391
|
computeSunburstArcs,
|
|
19446
21392
|
computeTreeMapNodes,
|
|
19447
21393
|
constrainCropRect,
|
|
@@ -19451,6 +21397,7 @@ export {
|
|
|
19451
21397
|
containerPaddingClasses,
|
|
19452
21398
|
copyTextToClipboard,
|
|
19453
21399
|
countLines,
|
|
21400
|
+
countMaskTokens,
|
|
19454
21401
|
countdownBaseClasses,
|
|
19455
21402
|
countdownPrefixClasses,
|
|
19456
21403
|
countdownSuffixClasses,
|
|
@@ -19476,6 +21423,7 @@ export {
|
|
|
19476
21423
|
createDefaultTransform,
|
|
19477
21424
|
createDocumentDragSession,
|
|
19478
21425
|
createDragState,
|
|
21426
|
+
createEmptyScrollAreaState,
|
|
19479
21427
|
createFloatingIdFactory,
|
|
19480
21428
|
createFocusTrap,
|
|
19481
21429
|
createFormConditionDependencies,
|
|
@@ -19490,9 +21438,11 @@ export {
|
|
|
19490
21438
|
createImageAnnotationBox,
|
|
19491
21439
|
createImageAnnotationPath,
|
|
19492
21440
|
createInfiniteScrollObserver,
|
|
21441
|
+
createInitialLoadingBarState,
|
|
19493
21442
|
createInstanceCounter,
|
|
19494
21443
|
createLinePath,
|
|
19495
21444
|
createLinearScale,
|
|
21445
|
+
createLoadingBarController,
|
|
19496
21446
|
createLongPressController,
|
|
19497
21447
|
createMotionSequence,
|
|
19498
21448
|
createNotificationStackUpdateScheduler,
|
|
@@ -19596,6 +21546,8 @@ export {
|
|
|
19596
21546
|
descriptionsWrapperClasses,
|
|
19597
21547
|
designTokens,
|
|
19598
21548
|
devWarn,
|
|
21549
|
+
distributeMasonryItems,
|
|
21550
|
+
distributeOtpPaste,
|
|
19599
21551
|
dotSizeClasses,
|
|
19600
21552
|
dotsVariantConfig,
|
|
19601
21553
|
downloadChartBlob,
|
|
@@ -19618,6 +21570,7 @@ export {
|
|
|
19618
21570
|
ensureBarMinHeight,
|
|
19619
21571
|
errorCircleSolidIcon20PathD,
|
|
19620
21572
|
escapeHighlightHtml,
|
|
21573
|
+
escapeHighlightKeyword,
|
|
19621
21574
|
escapeMarkdownHtml,
|
|
19622
21575
|
evaluateFormCondition,
|
|
19623
21576
|
evaluateFormConditions,
|
|
@@ -19629,6 +21582,8 @@ export {
|
|
|
19629
21582
|
exportTableToExcel,
|
|
19630
21583
|
extendedIcons,
|
|
19631
21584
|
extractMentionQuery,
|
|
21585
|
+
extractRawValue,
|
|
21586
|
+
extractTagCandidates,
|
|
19632
21587
|
fileManagerBreadcrumbClasses,
|
|
19633
21588
|
fileManagerBreadcrumbItemClasses,
|
|
19634
21589
|
fileManagerBreadcrumbSeparatorClasses,
|
|
@@ -19665,6 +21620,7 @@ export {
|
|
|
19665
21620
|
findCascaderOption,
|
|
19666
21621
|
findColumnFromPoint,
|
|
19667
21622
|
findFirstEnabledIndex,
|
|
21623
|
+
findHighlightRanges,
|
|
19668
21624
|
findHotkeyMatch,
|
|
19669
21625
|
findLastEnabledIndex,
|
|
19670
21626
|
findMarkdownHotkeyMatch,
|
|
@@ -19709,12 +21665,17 @@ export {
|
|
|
19709
21665
|
formatGanttDate,
|
|
19710
21666
|
formatInputNumberDisplay,
|
|
19711
21667
|
formatIntlNumber,
|
|
21668
|
+
formatKbdCombo,
|
|
21669
|
+
formatKbdSeparatorText,
|
|
21670
|
+
formatMaskValue,
|
|
19712
21671
|
formatMonthYear,
|
|
21672
|
+
formatOtpSlotLabel,
|
|
19713
21673
|
formatPageAriaLabel,
|
|
19714
21674
|
formatPaginationPageIndicator,
|
|
19715
21675
|
formatPaginationTotal,
|
|
19716
21676
|
formatPrecision,
|
|
19717
21677
|
formatProgressText,
|
|
21678
|
+
formatRemoveTagLabel,
|
|
19718
21679
|
formatStatisticValue,
|
|
19719
21680
|
formatTableSelectRowAriaLabel,
|
|
19720
21681
|
formatTableSortByText,
|
|
@@ -19759,6 +21720,9 @@ export {
|
|
|
19759
21720
|
getAnchoredOverlayTabTarget,
|
|
19760
21721
|
getAreaGradientPrefix,
|
|
19761
21722
|
getArrowStyles,
|
|
21723
|
+
getAspectRatioContentClasses,
|
|
21724
|
+
getAspectRatioRootClasses,
|
|
21725
|
+
getAspectRatioStyle,
|
|
19762
21726
|
getAutoCompleteInputClasses,
|
|
19763
21727
|
getAutoCompleteOptionClasses,
|
|
19764
21728
|
getAutoExpandKeys,
|
|
@@ -19801,6 +21765,9 @@ export {
|
|
|
19801
21765
|
getCascaderOptionPath,
|
|
19802
21766
|
getCascaderOptionsAtLevel,
|
|
19803
21767
|
getCascaderTriggerClasses,
|
|
21768
|
+
getCascaderVirtualAlignScrollTop,
|
|
21769
|
+
getCascaderVirtualItemHeight,
|
|
21770
|
+
getCascaderVirtualRange,
|
|
19804
21771
|
getChartAnimationStyle,
|
|
19805
21772
|
getChartAxisTickCacheSize,
|
|
19806
21773
|
getChartAxisTicks,
|
|
@@ -19843,6 +21810,16 @@ export {
|
|
|
19843
21810
|
getContainerClasses,
|
|
19844
21811
|
getContainerHeight,
|
|
19845
21812
|
getContainerScrollTop,
|
|
21813
|
+
getContextMenuContainerClasses,
|
|
21814
|
+
getContextMenuItemClasses,
|
|
21815
|
+
getContextMenuMenuClasses,
|
|
21816
|
+
getContextMenuOpenPoint,
|
|
21817
|
+
getContextMenuPointFromElement,
|
|
21818
|
+
getContextMenuPointFromEvent,
|
|
21819
|
+
getContextMenuPointStyle,
|
|
21820
|
+
getContextMenuSubChevronClasses,
|
|
21821
|
+
getContextMenuSubTriggerClasses,
|
|
21822
|
+
getContextMenuTriggerClasses,
|
|
19846
21823
|
getCountdownParts,
|
|
19847
21824
|
getCountdownRemaining,
|
|
19848
21825
|
getCountdownTitleClasses,
|
|
@@ -19942,6 +21919,9 @@ export {
|
|
|
19942
21919
|
getGroupHeaderCellClasses,
|
|
19943
21920
|
getGutterStyles,
|
|
19944
21921
|
getHeatmapCellIndexAtPoint,
|
|
21922
|
+
getHighlightMarkClasses,
|
|
21923
|
+
getHighlightRootClasses,
|
|
21924
|
+
getHighlightSegments,
|
|
19945
21925
|
getIconDefinition,
|
|
19946
21926
|
getImageAnnotationCenter,
|
|
19947
21927
|
getImageAnnotationPathData,
|
|
@@ -19950,6 +21930,19 @@ export {
|
|
|
19950
21930
|
getImageAnnotationStrokeColor,
|
|
19951
21931
|
getImageAnnotationToolButtonClasses,
|
|
19952
21932
|
getImageAnnotationToolLabel,
|
|
21933
|
+
getImageCompareAfterClasses,
|
|
21934
|
+
getImageCompareBeforeClasses,
|
|
21935
|
+
getImageCompareClipStyle,
|
|
21936
|
+
getImageCompareHandleClasses,
|
|
21937
|
+
getImageCompareHandleStyle,
|
|
21938
|
+
getImageCompareImgClasses,
|
|
21939
|
+
getImageCompareKeyboardPosition,
|
|
21940
|
+
getImageCompareKnobClasses,
|
|
21941
|
+
getImageCompareLineClasses,
|
|
21942
|
+
getImageComparePointerClientPoint,
|
|
21943
|
+
getImageComparePositionFromPointer,
|
|
21944
|
+
getImageCompareRootClasses,
|
|
21945
|
+
getImageCompareRootStyle,
|
|
19953
21946
|
getImageEditorLabels,
|
|
19954
21947
|
getImageGroupClasses,
|
|
19955
21948
|
getImageImgClasses,
|
|
@@ -19977,11 +21970,15 @@ export {
|
|
|
19977
21970
|
getInputNumberStatusClasses,
|
|
19978
21971
|
getInputNumberStepButtonClasses,
|
|
19979
21972
|
getInputNumberWrapperClasses,
|
|
21973
|
+
getInputOTPLabels,
|
|
19980
21974
|
getInputPasswordToggleClasses,
|
|
19981
21975
|
getInputWrapperClasses,
|
|
19982
21976
|
getIntlPluralCategory,
|
|
19983
21977
|
getJustifyClasses,
|
|
19984
21978
|
getKanbanContainerClasses,
|
|
21979
|
+
getKbdParts,
|
|
21980
|
+
getKbdRootClasses,
|
|
21981
|
+
getKbdVariantClasses,
|
|
19985
21982
|
getLayoutContentClasses,
|
|
19986
21983
|
getLayoutHeaderClasses,
|
|
19987
21984
|
getLeafKeys,
|
|
@@ -19993,6 +21990,10 @@ export {
|
|
|
19993
21990
|
getListHeaderFooterClasses,
|
|
19994
21991
|
getListItemClasses,
|
|
19995
21992
|
getLoadingBarClasses,
|
|
21993
|
+
getLoadingBarColorClasses,
|
|
21994
|
+
getLoadingBarContainerClasses,
|
|
21995
|
+
getLoadingBarFillClasses,
|
|
21996
|
+
getLoadingBarFillStyle,
|
|
19996
21997
|
getLoadingBarsWrapperClasses,
|
|
19997
21998
|
getLoadingClasses,
|
|
19998
21999
|
getLoadingDotClasses,
|
|
@@ -20005,6 +22006,16 @@ export {
|
|
|
20005
22006
|
getMarkdownEditorLabels,
|
|
20006
22007
|
getMarkdownToolbarButtonClasses,
|
|
20007
22008
|
getMarkdownToolbarButtons,
|
|
22009
|
+
getMarqueeContentClasses,
|
|
22010
|
+
getMarqueeRootClasses,
|
|
22011
|
+
getMarqueeTrackClasses,
|
|
22012
|
+
getMarqueeTrackStyle,
|
|
22013
|
+
getMaskCaretPosition,
|
|
22014
|
+
getMasonryColumnClasses,
|
|
22015
|
+
getMasonryColumnStyle,
|
|
22016
|
+
getMasonryGapStyle,
|
|
22017
|
+
getMasonryItemClasses,
|
|
22018
|
+
getMasonryRootClasses,
|
|
20008
22019
|
getMentionsInputClasses,
|
|
20009
22020
|
getMentionsOptionClasses,
|
|
20010
22021
|
getMenuButtons,
|
|
@@ -20019,6 +22030,14 @@ export {
|
|
|
20019
22030
|
getModalContentClasses,
|
|
20020
22031
|
getMonthDays,
|
|
20021
22032
|
getMonthNames,
|
|
22033
|
+
getNavigationMenuBarItems,
|
|
22034
|
+
getNavigationMenuChevronClasses,
|
|
22035
|
+
getNavigationMenuClasses,
|
|
22036
|
+
getNavigationMenuContentClasses,
|
|
22037
|
+
getNavigationMenuItemClasses,
|
|
22038
|
+
getNavigationMenuLinkClasses,
|
|
22039
|
+
getNavigationMenuListClasses,
|
|
22040
|
+
getNavigationMenuTriggerClasses,
|
|
20022
22041
|
getNextActiveKey,
|
|
20023
22042
|
getNextColorSwatchIndex,
|
|
20024
22043
|
getNextImageAnnotationTool,
|
|
@@ -20037,6 +22056,13 @@ export {
|
|
|
20037
22056
|
getOrgChartLinkPath,
|
|
20038
22057
|
getOrgChartNodeAriaLabel,
|
|
20039
22058
|
getOrgChartNodeClasses,
|
|
22059
|
+
getOtpContainerClasses,
|
|
22060
|
+
getOtpErrorClasses,
|
|
22061
|
+
getOtpSeparatorClasses,
|
|
22062
|
+
getOtpSeparatorIndices,
|
|
22063
|
+
getOtpSlotClasses,
|
|
22064
|
+
getPageHeaderBackButtonClasses,
|
|
22065
|
+
getPageHeaderRootClasses,
|
|
20040
22066
|
getPageNumbers,
|
|
20041
22067
|
getPageRange,
|
|
20042
22068
|
getPageSizeSelectorClasses,
|
|
@@ -20110,6 +22136,14 @@ export {
|
|
|
20110
22136
|
getScatterHoverShadow,
|
|
20111
22137
|
getScatterHoverSize,
|
|
20112
22138
|
getScatterPointPath,
|
|
22139
|
+
getScrollAreaBoxStyle,
|
|
22140
|
+
getScrollAreaContentClasses,
|
|
22141
|
+
getScrollAreaScrollbarClasses,
|
|
22142
|
+
getScrollAreaShadowClasses,
|
|
22143
|
+
getScrollAreaShadowSides,
|
|
22144
|
+
getScrollAreaThumbClasses,
|
|
22145
|
+
getScrollAreaThumbStyle,
|
|
22146
|
+
getScrollAreaViewportClasses,
|
|
20113
22147
|
getScrollSpyItemByHref,
|
|
20114
22148
|
getScrollSpyItemByKey,
|
|
20115
22149
|
getScrollSpyItemClasses,
|
|
@@ -20148,6 +22182,9 @@ export {
|
|
|
20148
22182
|
getSpaceStyle,
|
|
20149
22183
|
getSpanClasses,
|
|
20150
22184
|
getSpinnerSVG,
|
|
22185
|
+
getSplitButtonPrimaryClasses,
|
|
22186
|
+
getSplitButtonRootClasses,
|
|
22187
|
+
getSplitButtonTriggerClasses,
|
|
20151
22188
|
getSplitterContainerClasses,
|
|
20152
22189
|
getSplitterGutterClasses,
|
|
20153
22190
|
getSplitterGutterHandleClasses,
|
|
@@ -20203,6 +22240,12 @@ export {
|
|
|
20203
22240
|
getTabsContainerClasses,
|
|
20204
22241
|
getTabsLabels,
|
|
20205
22242
|
getTagVariantClasses,
|
|
22243
|
+
getTagsInputClearButtonClasses,
|
|
22244
|
+
getTagsInputContainerClasses,
|
|
22245
|
+
getTagsInputErrorClasses,
|
|
22246
|
+
getTagsInputHighlightClasses,
|
|
22247
|
+
getTagsInputInnerInputClasses,
|
|
22248
|
+
getTagsInputLabels,
|
|
20206
22249
|
getTaskBoardLabels,
|
|
20207
22250
|
getTextClasses,
|
|
20208
22251
|
getThemeColor,
|
|
@@ -20244,8 +22287,11 @@ export {
|
|
|
20244
22287
|
getTreeNodeClasses,
|
|
20245
22288
|
getTreeNodeExpandIconClasses,
|
|
20246
22289
|
getTreeSelectDisplayLabel,
|
|
22290
|
+
getTreeSelectDropdownClasses,
|
|
20247
22291
|
getTreeSelectNodeClasses,
|
|
20248
22292
|
getTreeSelectTriggerClasses,
|
|
22293
|
+
getTreeSelectVirtualAlignScrollTop,
|
|
22294
|
+
getTreeSelectVisibleIndex,
|
|
20249
22295
|
getUploadButtonClasses,
|
|
20250
22296
|
getUploadDataTransferFiles,
|
|
20251
22297
|
getUploadLabels,
|
|
@@ -20279,6 +22325,7 @@ export {
|
|
|
20279
22325
|
handleDragStart,
|
|
20280
22326
|
handleDrop,
|
|
20281
22327
|
handleMenuNavigation,
|
|
22328
|
+
handleMenubarNavigation,
|
|
20282
22329
|
handleNodeCheck,
|
|
20283
22330
|
handleTabKey,
|
|
20284
22331
|
handleUploadDragLeave,
|
|
@@ -20286,10 +22333,13 @@ export {
|
|
|
20286
22333
|
handleUploadDrop,
|
|
20287
22334
|
hasErrors,
|
|
20288
22335
|
hasGutter,
|
|
22336
|
+
hasPageHeaderHeadingContent,
|
|
20289
22337
|
hasTableSelectionColumn,
|
|
20290
22338
|
helpCircleIcon,
|
|
20291
22339
|
hexToRgb2 as hexToRgb,
|
|
20292
22340
|
highContrastTheme,
|
|
22341
|
+
highlightMarkClasses,
|
|
22342
|
+
highlightRootClasses,
|
|
20293
22343
|
hsvToRgb,
|
|
20294
22344
|
icon16ViewBox,
|
|
20295
22345
|
icon20ViewBox,
|
|
@@ -20315,6 +22365,20 @@ export {
|
|
|
20315
22365
|
imageAnnotationToolButtonClasses,
|
|
20316
22366
|
imageAnnotationToolbarClasses,
|
|
20317
22367
|
imageBaseClasses,
|
|
22368
|
+
imageCompareAfterClasses,
|
|
22369
|
+
imageCompareBeforeClasses,
|
|
22370
|
+
imageCompareDisabledClasses,
|
|
22371
|
+
imageCompareHandleClasses,
|
|
22372
|
+
imageCompareHandleDisabledClasses,
|
|
22373
|
+
imageCompareHandleHorizontalClasses,
|
|
22374
|
+
imageCompareHandleVerticalClasses,
|
|
22375
|
+
imageCompareHorizontalClasses,
|
|
22376
|
+
imageCompareKnobClasses,
|
|
22377
|
+
imageCompareLineClasses,
|
|
22378
|
+
imageCompareLineHorizontalClasses,
|
|
22379
|
+
imageCompareLineVerticalClasses,
|
|
22380
|
+
imageCompareRootClasses,
|
|
22381
|
+
imageCompareVerticalClasses,
|
|
20318
22382
|
imageCropperContainerClasses,
|
|
20319
22383
|
imageCropperDragAreaClasses,
|
|
20320
22384
|
imageCropperGuideClasses,
|
|
@@ -20347,9 +22411,13 @@ export {
|
|
|
20347
22411
|
infiniteScrollEndClasses,
|
|
20348
22412
|
infiniteScrollLoaderClasses,
|
|
20349
22413
|
infiniteScrollSentinelClasses,
|
|
22414
|
+
initNavigationMenuRovingTabIndex,
|
|
20350
22415
|
initRovingTabIndex,
|
|
22416
|
+
injectContextMenuStyles,
|
|
20351
22417
|
injectDropdownStyles,
|
|
20352
22418
|
injectLoadingAnimationStyles,
|
|
22419
|
+
injectMarqueeStyles,
|
|
22420
|
+
injectNavigationMenuStyles,
|
|
20353
22421
|
injectShakeStyle,
|
|
20354
22422
|
injectSvgAnimationStyles,
|
|
20355
22423
|
injectViewTransitionStyles,
|
|
@@ -20376,6 +22444,7 @@ export {
|
|
|
20376
22444
|
isCascaderOptionExpandable,
|
|
20377
22445
|
isColorSwatchSelected,
|
|
20378
22446
|
isContentEmpty,
|
|
22447
|
+
isContextMenuKeyboardEvent,
|
|
20379
22448
|
isCrossContainerDrag,
|
|
20380
22449
|
isDateInRange,
|
|
20381
22450
|
isDragEnabled,
|
|
@@ -20387,6 +22456,8 @@ export {
|
|
|
20387
22456
|
isHttpResultStatus,
|
|
20388
22457
|
isImageAnnotationPathClosed,
|
|
20389
22458
|
isImageAnnotationShapeTool,
|
|
22459
|
+
isImageCompareInteractiveTarget,
|
|
22460
|
+
isImageCompareVertical,
|
|
20390
22461
|
isInlineFormat,
|
|
20391
22462
|
isKeyActive,
|
|
20392
22463
|
isKeyOpen,
|
|
@@ -20394,15 +22465,24 @@ export {
|
|
|
20394
22465
|
isLazyTigerLocale,
|
|
20395
22466
|
isLongPress,
|
|
20396
22467
|
isMarkdownToolbarSeparator,
|
|
22468
|
+
isMarqueeFocusInside,
|
|
22469
|
+
isMarqueePaused,
|
|
22470
|
+
isMarqueeReverse,
|
|
22471
|
+
isMarqueeVertical,
|
|
20397
22472
|
isMobile,
|
|
20398
22473
|
isModalSheetSwipeCloseGesture,
|
|
22474
|
+
isNavigationMenuOpen,
|
|
22475
|
+
isNavigationMenuTriggerOpenKey,
|
|
22476
|
+
isNavigationMenuValueOpen,
|
|
20399
22477
|
isNextDisabled,
|
|
20400
22478
|
isOptionGroup,
|
|
22479
|
+
isOtpComplete,
|
|
20401
22480
|
isPanelActive,
|
|
20402
22481
|
isPrevDisabled,
|
|
20403
22482
|
isRtlLocale,
|
|
20404
22483
|
isSameContainerDrag,
|
|
20405
22484
|
isSameDay,
|
|
22485
|
+
isScrollAreaAxisEnabled,
|
|
20406
22486
|
isSignatureEmpty,
|
|
20407
22487
|
isSpaceKey,
|
|
20408
22488
|
isTabKey,
|
|
@@ -20422,6 +22502,10 @@ export {
|
|
|
20422
22502
|
kanbanSwimlaneCollapsedClasses,
|
|
20423
22503
|
kanbanSwimlaneDotClasses,
|
|
20424
22504
|
kanbanSwimlaneHeaderClasses,
|
|
22505
|
+
kbdBaseClasses,
|
|
22506
|
+
kbdKeyClasses,
|
|
22507
|
+
kbdSeparatorClasses,
|
|
22508
|
+
kbdSubtleVariantClasses,
|
|
20425
22509
|
keyIcon,
|
|
20426
22510
|
layoutContentClasses,
|
|
20427
22511
|
layoutFooterClasses,
|
|
@@ -20455,6 +22539,9 @@ export {
|
|
|
20455
22539
|
listSizeClasses,
|
|
20456
22540
|
listWrapperClasses,
|
|
20457
22541
|
loadingBarBaseClasses,
|
|
22542
|
+
loadingBarColorClasses,
|
|
22543
|
+
loadingBarContainerBaseClasses,
|
|
22544
|
+
loadingBarFillBaseClasses,
|
|
20458
22545
|
loadingBarsWrapperBaseClasses,
|
|
20459
22546
|
loadingColorClasses,
|
|
20460
22547
|
loadingContainerBaseClasses,
|
|
@@ -20484,6 +22571,20 @@ export {
|
|
|
20484
22571
|
markdownEditorToolbarSeparatorClasses,
|
|
20485
22572
|
markdownHotkeyMatches,
|
|
20486
22573
|
markdownModeLabels,
|
|
22574
|
+
marqueeCloneClasses,
|
|
22575
|
+
marqueeContentClasses,
|
|
22576
|
+
marqueeContentVerticalClasses,
|
|
22577
|
+
marqueeHorizontalClasses,
|
|
22578
|
+
marqueePauseHoverClasses,
|
|
22579
|
+
marqueeReverseClasses,
|
|
22580
|
+
marqueeRootClasses,
|
|
22581
|
+
marqueeStaticClasses,
|
|
22582
|
+
marqueeTrackClasses,
|
|
22583
|
+
marqueeTrackVerticalClasses,
|
|
22584
|
+
marqueeVerticalClasses,
|
|
22585
|
+
masonryColumnClasses,
|
|
22586
|
+
masonryItemClasses,
|
|
22587
|
+
masonryRootClasses,
|
|
20487
22588
|
matchesHotkey,
|
|
20488
22589
|
matchesMenuSearch,
|
|
20489
22590
|
measureTableResizeSnapshot,
|
|
@@ -20508,6 +22609,7 @@ export {
|
|
|
20508
22609
|
menuSearchEmptyClasses,
|
|
20509
22610
|
menuSearchFieldClasses,
|
|
20510
22611
|
menuSearchInputClasses,
|
|
22612
|
+
mergeHighlightRanges,
|
|
20511
22613
|
mergeStyleValues,
|
|
20512
22614
|
mergeTigerLocale,
|
|
20513
22615
|
messageBaseClasses,
|
|
@@ -20533,6 +22635,7 @@ export {
|
|
|
20533
22635
|
modalTitleClasses,
|
|
20534
22636
|
modalWrapperClasses,
|
|
20535
22637
|
modernTheme,
|
|
22638
|
+
moduloDistributeMasonryItems,
|
|
20536
22639
|
moonIcon,
|
|
20537
22640
|
moveCard,
|
|
20538
22641
|
moveCropRect,
|
|
@@ -20545,6 +22648,7 @@ export {
|
|
|
20545
22648
|
naturalTheme,
|
|
20546
22649
|
navigateToFolder,
|
|
20547
22650
|
nextIconPath,
|
|
22651
|
+
nextLoadingBarTricklePercentage,
|
|
20548
22652
|
normalizeActiveKeys,
|
|
20549
22653
|
normalizeChartBrushRange,
|
|
20550
22654
|
normalizeChartPadding,
|
|
@@ -20553,10 +22657,13 @@ export {
|
|
|
20553
22657
|
normalizeCronExpression,
|
|
20554
22658
|
normalizeDate,
|
|
20555
22659
|
normalizeGanttDate,
|
|
22660
|
+
normalizeHighlightKeywords,
|
|
20556
22661
|
normalizeImageAnnotationBox,
|
|
22662
|
+
normalizeKbdKeys,
|
|
20557
22663
|
normalizeMenuSearchQuery,
|
|
20558
22664
|
normalizeNumberKeyboardValue,
|
|
20559
22665
|
normalizeOrgChartData,
|
|
22666
|
+
normalizeOtpValue,
|
|
20560
22667
|
normalizeRotation,
|
|
20561
22668
|
normalizeSpotlightText,
|
|
20562
22669
|
normalizeStringOption,
|
|
@@ -20580,6 +22687,7 @@ export {
|
|
|
20580
22687
|
numberKeyboardGridClasses,
|
|
20581
22688
|
numberKeyboardKeyClasses,
|
|
20582
22689
|
numberKeyboardRootClasses,
|
|
22690
|
+
observeScrollAreaSize,
|
|
20583
22691
|
orderTableFixedColumns,
|
|
20584
22692
|
orgChartLinkClasses,
|
|
20585
22693
|
orgChartNodeClasses,
|
|
@@ -20589,8 +22697,21 @@ export {
|
|
|
20589
22697
|
orgChartNodeTitleClasses,
|
|
20590
22698
|
padCountdownNumber,
|
|
20591
22699
|
padTwo,
|
|
22700
|
+
pageHeaderActionsClasses,
|
|
22701
|
+
pageHeaderBackButtonClasses,
|
|
22702
|
+
pageHeaderBackIconClasses,
|
|
22703
|
+
pageHeaderBackWrapClasses,
|
|
22704
|
+
pageHeaderContentClasses,
|
|
22705
|
+
pageHeaderHeadingRowClasses,
|
|
22706
|
+
pageHeaderMainClasses,
|
|
22707
|
+
pageHeaderRootClasses,
|
|
22708
|
+
pageHeaderStartClasses,
|
|
22709
|
+
pageHeaderSubtitleClasses,
|
|
22710
|
+
pageHeaderTitleClasses,
|
|
22711
|
+
pageHeaderTitleRowClasses,
|
|
20592
22712
|
paginateData,
|
|
20593
22713
|
paperclipIcon,
|
|
22714
|
+
parseAspectRatio,
|
|
20594
22715
|
parseColorInput,
|
|
20595
22716
|
parseCountdownTimestamp,
|
|
20596
22717
|
parseCronFieldControl,
|
|
@@ -20601,6 +22722,7 @@ export {
|
|
|
20601
22722
|
parseInputNumberValue,
|
|
20602
22723
|
parseInputValue,
|
|
20603
22724
|
parseHeight as parseMarkdownHeight,
|
|
22725
|
+
parseMask,
|
|
20604
22726
|
parsePaneSize,
|
|
20605
22727
|
parseTime,
|
|
20606
22728
|
parseWidthToPx,
|
|
@@ -20668,10 +22790,13 @@ export {
|
|
|
20668
22790
|
rateHoverColor,
|
|
20669
22791
|
rateInactiveColor,
|
|
20670
22792
|
readFileAsDataUrl,
|
|
22793
|
+
readMasonryItemHeight,
|
|
22794
|
+
readScrollAreaMetrics,
|
|
20671
22795
|
redoFormHistory,
|
|
20672
22796
|
registerEscapeDismiss,
|
|
20673
22797
|
registerImageGroupItem,
|
|
20674
22798
|
removeCssVarsCached,
|
|
22799
|
+
removeTagAt,
|
|
20675
22800
|
renderMarkdownInline,
|
|
20676
22801
|
renderMarkdownToHtml,
|
|
20677
22802
|
renderTokenHtml,
|
|
@@ -20714,17 +22839,48 @@ export {
|
|
|
20714
22839
|
resolveFormConditionState,
|
|
20715
22840
|
resolveFormFieldConditionState,
|
|
20716
22841
|
resolveHeatmapRenderMode,
|
|
22842
|
+
resolveHighlightCaseSensitive,
|
|
22843
|
+
resolveHighlightGlobal,
|
|
22844
|
+
resolveHighlightText,
|
|
22845
|
+
resolveImageCompareAriaLabel,
|
|
22846
|
+
resolveImageCompareFit,
|
|
22847
|
+
resolveImageCompareOrientation,
|
|
22848
|
+
resolveImageComparePosition,
|
|
22849
|
+
resolveImageCompareStep,
|
|
22850
|
+
resolveKbdSeparator,
|
|
22851
|
+
resolveKbdSize,
|
|
22852
|
+
resolveKbdVariant,
|
|
22853
|
+
resolveLoadingBarAriaLabel,
|
|
22854
|
+
resolveLoadingBarColor,
|
|
22855
|
+
resolveLoadingBarFillColor,
|
|
22856
|
+
resolveLoadingBarHeight,
|
|
22857
|
+
resolveLoadingBarMountTarget,
|
|
20717
22858
|
resolveLocaleText,
|
|
22859
|
+
resolveMarqueeAriaLabel,
|
|
22860
|
+
resolveMarqueeDirection,
|
|
22861
|
+
resolveMarqueeDuration,
|
|
22862
|
+
resolveMarqueeGap,
|
|
22863
|
+
resolveMarqueePauseOnHover,
|
|
22864
|
+
resolveMarqueeRepeat,
|
|
22865
|
+
resolveMasonryColumnCount,
|
|
22866
|
+
resolveMasonryGap,
|
|
20718
22867
|
resolveMotionDuration,
|
|
20719
22868
|
resolveMotionEasing,
|
|
20720
22869
|
resolveMultiSeriesTooltipContent,
|
|
22870
|
+
resolveNavigationMenuOpenValue,
|
|
22871
|
+
resolvePageHeaderBackAriaLabel,
|
|
22872
|
+
resolvePageHeaderBackVisibility,
|
|
20721
22873
|
resolvePaginationDisplayMode,
|
|
20722
22874
|
resolvePanGesture,
|
|
20723
22875
|
resolvePinchScale,
|
|
20724
22876
|
resolveResponsiveChartSize,
|
|
20725
22877
|
resolveResponsiveValue,
|
|
22878
|
+
resolveScrollAreaLength,
|
|
20726
22879
|
resolveSelectFilteredOptions,
|
|
20727
22880
|
resolveSeriesData,
|
|
22881
|
+
resolveSplitButtonSize,
|
|
22882
|
+
resolveSplitButtonTriggerAriaLabel,
|
|
22883
|
+
resolveSplitButtonVariant,
|
|
20728
22884
|
resolveSwipeGesture,
|
|
20729
22885
|
resolveTableColumnWidth,
|
|
20730
22886
|
resolveTigerLocale,
|
|
@@ -20754,7 +22910,15 @@ export {
|
|
|
20754
22910
|
runStepValidation,
|
|
20755
22911
|
runUploadQueue,
|
|
20756
22912
|
sanitizeHtml,
|
|
22913
|
+
sanitizeOtpInput,
|
|
20757
22914
|
scatterPointTransitionClasses,
|
|
22915
|
+
scrollAreaContentBaseClasses,
|
|
22916
|
+
scrollAreaRootClasses,
|
|
22917
|
+
scrollAreaScrollbarBaseClasses,
|
|
22918
|
+
scrollAreaShadowBaseClasses,
|
|
22919
|
+
scrollAreaThumbBaseClasses,
|
|
22920
|
+
scrollAreaThumbDraggingClasses,
|
|
22921
|
+
scrollAreaViewportBaseClasses,
|
|
20758
22922
|
scrollSpyItemActiveClasses,
|
|
20759
22923
|
scrollSpyItemBaseClasses,
|
|
20760
22924
|
scrollSpyItemDisabledClasses,
|
|
@@ -20789,8 +22953,11 @@ export {
|
|
|
20789
22953
|
shouldCommitImageAnnotationBox,
|
|
20790
22954
|
shouldHideBadge,
|
|
20791
22955
|
shouldLoadMore,
|
|
22956
|
+
shouldLoopMarquee,
|
|
20792
22957
|
shouldReduceMotion,
|
|
22958
|
+
shouldRenderScrollAreaScrollbar,
|
|
20793
22959
|
shouldShowBackTop,
|
|
22960
|
+
shouldSkipNavigationMenuOpenDelay,
|
|
20794
22961
|
signatureCanvasClasses,
|
|
20795
22962
|
signatureCanvasWrapClasses,
|
|
20796
22963
|
signatureClearButtonClasses,
|
|
@@ -20827,6 +22994,13 @@ export {
|
|
|
20827
22994
|
sortFileItems,
|
|
20828
22995
|
sortNotificationGroups,
|
|
20829
22996
|
sparklesIcon,
|
|
22997
|
+
splitButtonPrimaryBlockClasses,
|
|
22998
|
+
splitButtonPrimaryClasses,
|
|
22999
|
+
splitButtonRootBlockClasses,
|
|
23000
|
+
splitButtonRootClasses,
|
|
23001
|
+
splitButtonTriggerClasses,
|
|
23002
|
+
splitButtonTriggerSizeClasses,
|
|
23003
|
+
splitTagInput,
|
|
20830
23004
|
splitTransferData,
|
|
20831
23005
|
splitterBaseClasses,
|
|
20832
23006
|
splitterGutterBaseClasses,
|