@fairmint/ui 0.4.10 → 0.4.12
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/components/BrandedLoadingScreen/BrandedLoadingScreen.cjs +1 -1
- package/dist/components/BrandedLoadingScreen/BrandedLoadingScreen.js +1 -1
- package/dist/components/ErrorFallback/ErrorFallback.cjs +1 -1
- package/dist/components/ErrorFallback/ErrorFallback.js +1 -1
- package/dist/components/form/FormField.cjs +1 -1
- package/dist/components/form/FormField.js +1 -1
- package/dist/components/generic/AgentSuggestion/AgentSuggestion.cjs +1 -1
- package/dist/components/generic/AgentSuggestion/AgentSuggestion.js +1 -1
- package/dist/components/generic/Banner/Banner.cjs +1 -1
- package/dist/components/generic/Banner/Banner.js +1 -1
- package/dist/components/generic/BottomSheet/BottomSheet.cjs +1 -1
- package/dist/components/generic/BottomSheet/BottomSheet.js +1 -1
- package/dist/components/generic/CompanyBanner/CompanyBanner.cjs +1 -1
- package/dist/components/generic/CompanyBanner/CompanyBanner.js +1 -1
- package/dist/components/generic/ConfidentialityBanner/ConfidentialityBanner.cjs +1 -1
- package/dist/components/generic/ConfidentialityBanner/ConfidentialityBanner.js +1 -1
- package/dist/components/generic/Currency/Currency.cjs +1 -1
- package/dist/components/generic/Currency/Currency.js +1 -1
- package/dist/components/generic/DataRow/DataRow.cjs +24 -3
- package/dist/components/generic/DataRow/DataRow.cjs.map +1 -1
- package/dist/components/generic/DataRow/DataRow.d.ts.map +1 -1
- package/dist/components/generic/DataRow/DataRow.js +24 -3
- package/dist/components/generic/DataRow/DataRow.js.map +1 -1
- package/dist/components/generic/DataTable/DataTable.cjs +2 -2
- package/dist/components/generic/DataTable/DataTable.cjs.map +1 -1
- package/dist/components/generic/DataTable/DataTable.js +2 -2
- package/dist/components/generic/DataTable/DataTable.js.map +1 -1
- package/dist/components/generic/DateDisplay/DateDisplay.cjs +1 -1
- package/dist/components/generic/DateDisplay/DateDisplay.js +1 -1
- package/dist/components/generic/DocumentRow/DocumentRow.cjs +1 -1
- package/dist/components/generic/DocumentRow/DocumentRow.js +1 -1
- package/dist/components/generic/EditableSection/EditableSection.cjs +1 -1
- package/dist/components/generic/EditableSection/EditableSection.js +1 -1
- package/dist/components/generic/EmptyState/EmptyState.cjs +1 -1
- package/dist/components/generic/EmptyState/EmptyState.js +1 -1
- package/dist/components/generic/ErrorPage/ErrorPage.cjs +1 -1
- package/dist/components/generic/ErrorPage/ErrorPage.js +1 -1
- package/dist/components/generic/Eyebrow/Eyebrow.cjs +1 -1
- package/dist/components/generic/Eyebrow/Eyebrow.js +1 -1
- package/dist/components/generic/FileDropzone/FileDropzone.cjs +1 -1
- package/dist/components/generic/FileDropzone/FileDropzone.js +1 -1
- package/dist/components/generic/ListRow/ListRow.cjs +5 -4
- package/dist/components/generic/ListRow/ListRow.cjs.map +1 -1
- package/dist/components/generic/ListRow/ListRow.d.ts.map +1 -1
- package/dist/components/generic/ListRow/ListRow.js +5 -4
- package/dist/components/generic/ListRow/ListRow.js.map +1 -1
- package/dist/components/generic/MultiSelectSearch/MultiSelectSearch.cjs +1 -1
- package/dist/components/generic/MultiSelectSearch/MultiSelectSearch.js +1 -1
- package/dist/components/generic/NotificationRow/NotificationRow.cjs +1 -1
- package/dist/components/generic/NotificationRow/NotificationRow.js +1 -1
- package/dist/components/generic/Percent/Percent.cjs +1 -1
- package/dist/components/generic/Percent/Percent.js +1 -1
- package/dist/components/generic/PhotoCropModal/PhotoCropModal.cjs +1 -1
- package/dist/components/generic/PhotoCropModal/PhotoCropModal.js +1 -1
- package/dist/components/generic/ProcessingState/ProcessingState.cjs +1 -1
- package/dist/components/generic/ProcessingState/ProcessingState.js +1 -1
- package/dist/components/generic/RadioCard/RadioCard.cjs +1 -1
- package/dist/components/generic/RadioCard/RadioCard.js +1 -1
- package/dist/components/generic/StatCard/StatCard.cjs +1 -1
- package/dist/components/generic/StatCard/StatCard.js +1 -1
- package/dist/components/generic/StepCard/StepCard.cjs +3 -2
- package/dist/components/generic/StepCard/StepCard.cjs.map +1 -1
- package/dist/components/generic/StepCard/StepCard.d.ts.map +1 -1
- package/dist/components/generic/StepCard/StepCard.js +3 -2
- package/dist/components/generic/StepCard/StepCard.js.map +1 -1
- package/dist/components/generic/TablePagination/TablePagination.cjs +1 -1
- package/dist/components/generic/TablePagination/TablePagination.js +1 -1
- package/dist/components/generic/TaskInboxPopover/TaskInboxPopover.cjs +1 -1
- package/dist/components/generic/TaskInboxPopover/TaskInboxPopover.js +1 -1
- package/dist/components/generic/TaskRow/TaskRow.cjs +1 -1
- package/dist/components/generic/TaskRow/TaskRow.js +1 -1
- package/dist/components/layout/AccountSheet/AccountSheet.cjs +1 -1
- package/dist/components/layout/AccountSheet/AccountSheet.js +1 -1
- package/dist/components/layout/MobileNav/MobileNav.cjs +1 -1
- package/dist/components/layout/MobileNav/MobileNav.js +1 -1
- package/dist/components/layout/PageHeader/PageHeader.cjs +1 -1
- package/dist/components/layout/PageHeader/PageHeader.js +1 -1
- package/dist/components/primitives/Glossary/GlossaryContext.cjs +39 -0
- package/dist/components/primitives/Glossary/GlossaryContext.cjs.map +1 -0
- package/dist/components/primitives/Glossary/GlossaryContext.d.ts +49 -0
- package/dist/components/primitives/Glossary/GlossaryContext.d.ts.map +1 -0
- package/dist/components/primitives/Glossary/GlossaryContext.js +39 -0
- package/dist/components/primitives/Glossary/GlossaryContext.js.map +1 -0
- package/dist/components/primitives/Glossary/GlossaryTerm.cjs +147 -0
- package/dist/components/primitives/Glossary/GlossaryTerm.cjs.map +1 -0
- package/dist/components/primitives/Glossary/GlossaryTerm.d.ts +10 -0
- package/dist/components/primitives/Glossary/GlossaryTerm.d.ts.map +1 -0
- package/dist/components/primitives/Glossary/GlossaryTerm.js +147 -0
- package/dist/components/primitives/Glossary/GlossaryTerm.js.map +1 -0
- package/dist/components/primitives/Glossary/index.d.ts +3 -0
- package/dist/components/primitives/Glossary/index.d.ts.map +1 -0
- package/dist/components/primitives/Text/Text.cjs +112 -0
- package/dist/components/primitives/Text/Text.cjs.map +1 -0
- package/dist/components/primitives/Text/Text.d.ts +22 -0
- package/dist/components/primitives/Text/Text.d.ts.map +1 -0
- package/dist/components/primitives/Text/Text.js +112 -0
- package/dist/components/primitives/Text/Text.js.map +1 -0
- package/dist/components/primitives/Text/index.d.ts +2 -0
- package/dist/components/primitives/Text/index.d.ts.map +1 -0
- package/dist/components/primitives/index.d.ts +2 -0
- package/dist/components/primitives/index.d.ts.map +1 -1
- package/dist/components/primitives/layout.cjs.map +1 -1
- package/dist/components/primitives/layout.d.ts +2 -1
- package/dist/components/primitives/layout.d.ts.map +1 -1
- package/dist/components/primitives/layout.js.map +1 -1
- package/dist/components/primitives/muiCompat.cjs +8 -8
- package/dist/components/primitives/muiCompat.cjs.map +1 -1
- package/dist/components/primitives/muiCompat.d.ts.map +1 -1
- package/dist/components/primitives/muiCompat.js +8 -8
- package/dist/components/primitives/muiCompat.js.map +1 -1
- package/dist/components/specific/DocumentRow/DocumentRow.cjs +91 -14
- package/dist/components/specific/DocumentRow/DocumentRow.cjs.map +1 -1
- package/dist/components/specific/DocumentRow/DocumentRow.d.ts +7 -1
- package/dist/components/specific/DocumentRow/DocumentRow.d.ts.map +1 -1
- package/dist/components/specific/DocumentRow/DocumentRow.js +92 -15
- package/dist/components/specific/DocumentRow/DocumentRow.js.map +1 -1
- package/dist/components/specific/InvestorProfileCard/InvestorProfileCard.cjs +1 -1
- package/dist/components/specific/InvestorProfileCard/InvestorProfileCard.js +1 -1
- package/dist/components/specific/WalletList/WalletList.cjs +1 -1
- package/dist/components/specific/WalletList/WalletList.js +1 -1
- package/dist/components/specific/WalletListItem/WalletListItem.cjs +3 -2
- package/dist/components/specific/WalletListItem/WalletListItem.cjs.map +1 -1
- package/dist/components/specific/WalletListItem/WalletListItem.d.ts.map +1 -1
- package/dist/components/specific/WalletListItem/WalletListItem.js +3 -2
- package/dist/components/specific/WalletListItem/WalletListItem.js.map +1 -1
- package/dist/constants/glossary.cjs +210 -0
- package/dist/constants/glossary.cjs.map +1 -0
- package/dist/constants/glossary.d.ts +26 -0
- package/dist/constants/glossary.d.ts.map +1 -0
- package/dist/constants/glossary.js +210 -0
- package/dist/constants/glossary.js.map +1 -0
- package/dist/fairmint-ui.cjs +13 -1
- package/dist/fairmint-ui.cjs.map +1 -1
- package/dist/fairmint-ui.js +13 -1
- package/dist/fairmint-ui.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/utils/glossaryMatcher.cjs +89 -0
- package/dist/utils/glossaryMatcher.cjs.map +1 -0
- package/dist/utils/glossaryMatcher.d.ts +23 -0
- package/dist/utils/glossaryMatcher.d.ts.map +1 -0
- package/dist/utils/glossaryMatcher.js +89 -0
- package/dist/utils/glossaryMatcher.js.map +1 -0
- package/package.json +1 -1
package/dist/fairmint-ui.js
CHANGED
|
@@ -96,6 +96,7 @@ import { InvestmentCard } from "./components/specific/InvestmentCard/InvestmentC
|
|
|
96
96
|
import { InvestorProfileCard } from "./components/specific/InvestorProfileCard/InvestorProfileCard.js";
|
|
97
97
|
import { WalletList } from "./components/specific/WalletList/WalletList.js";
|
|
98
98
|
import { WalletListItem } from "./components/specific/WalletListItem/WalletListItem.js";
|
|
99
|
+
import { FINANCIAL_GLOSSARY, getGlossaryTerm } from "./constants/glossary.js";
|
|
99
100
|
import { useDebouncedCallback } from "./hooks/useDebouncedCallback.js";
|
|
100
101
|
import { useForm } from "./hooks/useForm.js";
|
|
101
102
|
import { MOBILE_BREAKPOINT, useIsMobile } from "./hooks/useIsMobile.js";
|
|
@@ -107,6 +108,7 @@ import { ETHEREUM_ADDRESS_REGEX, ZERO_ETHEREUM_ADDRESS, isEthereumAddress, trunc
|
|
|
107
108
|
import { getAvatarColor, getInitials } from "./utils/avatar.js";
|
|
108
109
|
import { getLogoFilter, isLightColor } from "./utils/color.js";
|
|
109
110
|
import { formatCurrency, formatCurrencyPrecise, formatDate, formatMonetary, formatNumber, formatPercent, formatPreciseWithCurrency, localeForCountry } from "./utils/format.js";
|
|
111
|
+
import { matchGlossaryTerms } from "./utils/glossaryMatcher.js";
|
|
110
112
|
import { getWalletDisplayName, getWalletIconColor, getWalletKindPill, getWalletLabel, isRemovableWalletType, isSystemWalletType, normalizeWalletType, walletKey } from "./utils/wallets.js";
|
|
111
113
|
/* empty css */
|
|
112
114
|
/* empty css */
|
|
@@ -120,6 +122,8 @@ import { DEFAULT_RIBBON_LABELS, RIBBON_BACKGROUND_CLASS, RIBBON_BAND_GRADIENTS }
|
|
|
120
122
|
import { EquityRibbonChart } from "./components/specific/EquityRibbonChart/EquityRibbonChart.js";
|
|
121
123
|
import { FairmintRibbonMark } from "./components/specific/EquityRibbonChart/FairmintRibbonMark.js";
|
|
122
124
|
import { Flex } from "./node_modules/@mantine/core/esm/components/Flex/Flex.js";
|
|
125
|
+
import { GlossaryProvider, GlossaryScope, useGlossaryContext, useGlossaryScope } from "./components/primitives/Glossary/GlossaryContext.js";
|
|
126
|
+
import { GlossaryTerm } from "./components/primitives/Glossary/GlossaryTerm.js";
|
|
123
127
|
import { Group } from "./node_modules/@mantine/core/esm/components/Group/Group.js";
|
|
124
128
|
import { NavLink } from "./node_modules/@mantine/core/esm/components/NavLink/NavLink.js";
|
|
125
129
|
import { Notification } from "./node_modules/@mantine/core/esm/components/Notification/Notification.js";
|
|
@@ -133,7 +137,7 @@ import { SimpleGrid } from "./node_modules/@mantine/core/esm/components/SimpleGr
|
|
|
133
137
|
import { Slider } from "./components/primitives/Slider/Slider.js";
|
|
134
138
|
import { Space } from "./node_modules/@mantine/core/esm/components/Space/Space.js";
|
|
135
139
|
import { Stepper } from "./node_modules/@mantine/core/esm/components/Stepper/Stepper.js";
|
|
136
|
-
import { Text } from "./
|
|
140
|
+
import { Text } from "./components/primitives/Text/Text.js";
|
|
137
141
|
import { ThemeIcon } from "./node_modules/@mantine/core/esm/components/ThemeIcon/ThemeIcon.js";
|
|
138
142
|
import { Title } from "./node_modules/@mantine/core/esm/components/Title/Title.js";
|
|
139
143
|
import { UnstyledButton } from "./node_modules/@mantine/core/esm/components/UnstyledButton/UnstyledButton.js";
|
|
@@ -289,6 +293,7 @@ export {
|
|
|
289
293
|
Eyebrow,
|
|
290
294
|
FILE_DROPZONE_DEFAULT_MAX_FILES,
|
|
291
295
|
FILE_DROPZONE_DEFAULT_SUPPORTED_TYPES,
|
|
296
|
+
FINANCIAL_GLOSSARY,
|
|
292
297
|
FacebookLogo,
|
|
293
298
|
FairmintLogo,
|
|
294
299
|
FairmintLogoMark,
|
|
@@ -307,6 +312,9 @@ export {
|
|
|
307
312
|
FormControlLabel,
|
|
308
313
|
FormField,
|
|
309
314
|
FormHelperText,
|
|
315
|
+
GlossaryProvider,
|
|
316
|
+
GlossaryScope,
|
|
317
|
+
GlossaryTerm,
|
|
310
318
|
Grid,
|
|
311
319
|
Group,
|
|
312
320
|
GroupAddIcon,
|
|
@@ -534,6 +542,7 @@ export {
|
|
|
534
542
|
formatPhoneDisplay,
|
|
535
543
|
formatPreciseWithCurrency,
|
|
536
544
|
getAvatarColor,
|
|
545
|
+
getGlossaryTerm,
|
|
537
546
|
getInitials,
|
|
538
547
|
getLogoFilter,
|
|
539
548
|
getStepProgressStatus,
|
|
@@ -550,6 +559,7 @@ export {
|
|
|
550
559
|
keyframes,
|
|
551
560
|
lighten,
|
|
552
561
|
localeForCountry,
|
|
562
|
+
matchGlossaryTerms,
|
|
553
563
|
neutralColors,
|
|
554
564
|
normalizePhone,
|
|
555
565
|
normalizeWalletType,
|
|
@@ -575,6 +585,8 @@ export {
|
|
|
575
585
|
useDebouncedValue,
|
|
576
586
|
useDisclosure,
|
|
577
587
|
useForm,
|
|
588
|
+
useGlossaryContext,
|
|
589
|
+
useGlossaryScope,
|
|
578
590
|
useHotkeys,
|
|
579
591
|
useId,
|
|
580
592
|
useIntersection,
|
package/dist/fairmint-ui.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fairmint-ui.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fairmint-ui.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/index.d.ts
CHANGED
|
@@ -136,6 +136,7 @@ export { Button, type ButtonProps } from './components/primitives/Button/Button'
|
|
|
136
136
|
export { Card } from './components/primitives/Card/Card';
|
|
137
137
|
export { Checkbox } from './components/primitives/Checkbox/Checkbox';
|
|
138
138
|
export { Drawer } from './components/primitives/Drawer/Drawer';
|
|
139
|
+
export { type GlossaryContextValue, GlossaryProvider, type GlossaryProviderProps, GlossaryScope, type GlossaryScopeContextValue, type GlossaryScopeProps, GlossaryTerm, type GlossaryTermProps, useGlossaryContext, useGlossaryScope, } from './components/primitives/Glossary';
|
|
139
140
|
export { Loader, type LoaderProps } from './components/primitives/Loader/Loader';
|
|
140
141
|
export { Anchor, AppShell, type AppShellProps, Box, type BoxProps, Burger, Center, Collapse, Container, type ContainerProps, Divider, Flex, Grid, Group, type GroupProps, List, NavLink, Notification, NumberInput, type NumberInputProps, Pagination, Paper, PinInput, ScrollArea, SegmentedControl, SimpleGrid, Space, Stack, type StackProps, Stepper, Text, type TextProps, ThemeIcon, type ThemeIconProps, Title, type TitleProps, UnstyledButton, useClickOutside, useClipboard, useDebouncedValue, useDisclosure, useHotkeys, useId, useIntersection, useMantineTheme, useMediaQuery, useScrollIntoView, useViewportSize, } from './components/primitives/layout';
|
|
141
142
|
export { Menu, type MenuProps } from './components/primitives/Menu/Menu';
|
|
@@ -171,6 +172,7 @@ export type { WalletListProps } from './components/specific/WalletList/WalletLis
|
|
|
171
172
|
export { WalletList } from './components/specific/WalletList/WalletList';
|
|
172
173
|
export type { WalletListItemProps } from './components/specific/WalletListItem/WalletListItem';
|
|
173
174
|
export { WalletListItem } from './components/specific/WalletListItem/WalletListItem';
|
|
175
|
+
export { FINANCIAL_GLOSSARY, type GlossaryTermData, type GlossaryTermDefinition, getGlossaryTerm, } from './constants/glossary';
|
|
174
176
|
export { useDebouncedCallback } from './hooks/useDebouncedCallback';
|
|
175
177
|
export { useForm } from './hooks/useForm';
|
|
176
178
|
export { MOBILE_BREAKPOINT, useIsMobile } from './hooks/useIsMobile';
|
|
@@ -184,6 +186,7 @@ export { getAvatarColor, getInitials } from './utils/avatar';
|
|
|
184
186
|
export { getLogoFilter, isLightColor } from './utils/color';
|
|
185
187
|
export type { FormatMonetaryOptions, MonetaryLike } from './utils/format';
|
|
186
188
|
export { formatCurrency, formatCurrencyPrecise, formatDate, formatMonetary, formatNumber, formatPercent, formatPreciseWithCurrency, localeForCountry, } from './utils/format';
|
|
189
|
+
export { type GlossaryMatch, matchGlossaryTerms, } from './utils/glossaryMatcher';
|
|
187
190
|
export type { Wallet } from './utils/wallets';
|
|
188
191
|
export { getWalletDisplayName, getWalletIconColor, getWalletKindPill, getWalletLabel, isRemovableWalletType, isSystemWalletType, normalizeWalletType, walletKey, } from './utils/wallets';
|
|
189
192
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
function escapeRegex(str) {
|
|
4
|
+
return str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
5
|
+
}
|
|
6
|
+
function findAliasOccurrences(text, alias, sensitive) {
|
|
7
|
+
const flags = sensitive ? "gu" : "gui";
|
|
8
|
+
const pattern = `(^|[^\\p{L}\\p{Nd}])(${escapeRegex(alias)})([^\\p{L}\\p{Nd}]|$)`;
|
|
9
|
+
const regex = new RegExp(pattern, flags);
|
|
10
|
+
const results = [];
|
|
11
|
+
let match = regex.exec(text);
|
|
12
|
+
while (match !== null) {
|
|
13
|
+
const prefixOffset = match[1]?.length ?? 0;
|
|
14
|
+
const start = match.index + prefixOffset;
|
|
15
|
+
const matchedText = match[2] ?? alias;
|
|
16
|
+
const end = start + matchedText.length;
|
|
17
|
+
results.push({ start, end, text: matchedText });
|
|
18
|
+
regex.lastIndex = match.index + prefixOffset + (matchedText.length || 1);
|
|
19
|
+
match = regex.exec(text);
|
|
20
|
+
}
|
|
21
|
+
return results;
|
|
22
|
+
}
|
|
23
|
+
function matchGlossaryTerms(text, terms, taken = /* @__PURE__ */ new Set()) {
|
|
24
|
+
if (!text) return [];
|
|
25
|
+
const occurrencesByTerm = /* @__PURE__ */ new Map();
|
|
26
|
+
for (const term of terms) {
|
|
27
|
+
if (taken.has(term.id)) continue;
|
|
28
|
+
const occurrences = [];
|
|
29
|
+
for (const alias of term.aliases) {
|
|
30
|
+
const found = findAliasOccurrences(text, alias, term.matchSensitive);
|
|
31
|
+
for (const occ of found) {
|
|
32
|
+
occurrences.push({
|
|
33
|
+
start: occ.start,
|
|
34
|
+
end: occ.end,
|
|
35
|
+
text: occ.text,
|
|
36
|
+
termId: term.id
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
if (occurrences.length === 0) continue;
|
|
41
|
+
occurrences.sort((a, b) => {
|
|
42
|
+
if (a.start !== b.start) return a.start - b.start;
|
|
43
|
+
return b.end - b.start - (a.end - a.start);
|
|
44
|
+
});
|
|
45
|
+
occurrencesByTerm.set(term.id, occurrences);
|
|
46
|
+
}
|
|
47
|
+
if (occurrencesByTerm.size === 0) return [];
|
|
48
|
+
const accepted = [];
|
|
49
|
+
const acceptedTermIds = new Set(taken);
|
|
50
|
+
const nextIndex = /* @__PURE__ */ new Map();
|
|
51
|
+
for (const termId of occurrencesByTerm.keys()) {
|
|
52
|
+
nextIndex.set(termId, 0);
|
|
53
|
+
}
|
|
54
|
+
const pendingCandidates = [];
|
|
55
|
+
for (const [termId, occurrences] of occurrencesByTerm) {
|
|
56
|
+
if (occurrences.length > 0) {
|
|
57
|
+
pendingCandidates.push(occurrences[0]);
|
|
58
|
+
nextIndex.set(termId, 1);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
const sortByLengthDesc = (a, b) => {
|
|
62
|
+
const lengthDifference = b.end - b.start - (a.end - a.start);
|
|
63
|
+
return lengthDifference !== 0 ? lengthDifference : a.start - b.start;
|
|
64
|
+
};
|
|
65
|
+
pendingCandidates.sort(sortByLengthDesc);
|
|
66
|
+
while (pendingCandidates.length > 0) {
|
|
67
|
+
const candidate = pendingCandidates.shift();
|
|
68
|
+
if (candidate === void 0) break;
|
|
69
|
+
if (acceptedTermIds.has(candidate.termId)) continue;
|
|
70
|
+
const overlapsAccepted = accepted.some(
|
|
71
|
+
(match) => candidate.start < match.end && candidate.end > match.start
|
|
72
|
+
);
|
|
73
|
+
if (!overlapsAccepted) {
|
|
74
|
+
accepted.push(candidate);
|
|
75
|
+
acceptedTermIds.add(candidate.termId);
|
|
76
|
+
} else {
|
|
77
|
+
const occurrences = occurrencesByTerm.get(candidate.termId);
|
|
78
|
+
const idx = nextIndex.get(candidate.termId) ?? 0;
|
|
79
|
+
if (occurrences && idx < occurrences.length) {
|
|
80
|
+
pendingCandidates.push(occurrences[idx]);
|
|
81
|
+
nextIndex.set(candidate.termId, idx + 1);
|
|
82
|
+
pendingCandidates.sort(sortByLengthDesc);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
return accepted.sort((a, b) => a.start - b.start);
|
|
87
|
+
}
|
|
88
|
+
exports.matchGlossaryTerms = matchGlossaryTerms;
|
|
89
|
+
//# sourceMappingURL=glossaryMatcher.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"glossaryMatcher.cjs","sources":["../../src/utils/glossaryMatcher.ts"],"sourcesContent":["import type { GlossaryTerm } from \"../constants/glossary\";\n\nexport interface GlossaryMatch {\n /** Index of the first character in `text` covered by the match. */\n start: number;\n /** Index one past the last character covered by the match. */\n end: number;\n /** Exact substring matched — preserves original source casing. */\n text: string;\n /** Glossary term identifier. */\n termId: string;\n}\n\nfunction escapeRegex(str: string): string {\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n}\n\nfunction findAliasOccurrences(\n text: string,\n alias: string,\n sensitive: boolean,\n): Array<{ start: number; end: number; text: string }> {\n const flags = sensitive ? \"gu\" : \"gui\";\n const pattern = `(^|[^\\\\p{L}\\\\p{Nd}])(${escapeRegex(alias)})([^\\\\p{L}\\\\p{Nd}]|$)`;\n const regex = new RegExp(pattern, flags);\n const results: Array<{ start: number; end: number; text: string }> = [];\n\n let match: RegExpExecArray | null = regex.exec(text);\n while (match !== null) {\n const prefixOffset = match[1]?.length ?? 0;\n const start = match.index + prefixOffset;\n const matchedText = match[2] ?? alias;\n const end = start + matchedText.length;\n results.push({ start, end, text: matchedText });\n\n regex.lastIndex = match.index + prefixOffset + (matchedText.length || 1);\n match = regex.exec(text);\n }\n\n return results;\n}\n\n/**\n * Searches a plain text string for occurrences of glossary terms.\n *\n * Rules:\n * 1. One match per term: the first non-overlapping occurrence in document order wins.\n * 2. Overlapping matches between different terms: Longest alias wins\n * (e.g. \"Reg D 506(b)\" beats \"Reg D\").\n * 3. Strict unicode word boundaries on both ends (`\\p{L}\\p{Nd}`).\n * 4. Terms marked `matchSensitive` require exact casing.\n */\nexport function matchGlossaryTerms(\n text: string,\n terms: readonly GlossaryTerm[],\n taken: ReadonlySet<string> = new Set(),\n): GlossaryMatch[] {\n if (!text) return [];\n\n // Collect all occurrences for all eligible terms, grouped by term ID.\n const occurrencesByTerm = new Map<string, GlossaryMatch[]>();\n\n for (const term of terms) {\n if (taken.has(term.id)) continue;\n\n const occurrences: GlossaryMatch[] = [];\n for (const alias of term.aliases) {\n const found = findAliasOccurrences(text, alias, term.matchSensitive);\n for (const occ of found) {\n occurrences.push({\n start: occ.start,\n end: occ.end,\n text: occ.text,\n termId: term.id,\n });\n }\n }\n\n if (occurrences.length === 0) continue;\n\n // Sort each term's occurrences by document order, then by length descending\n // so the first entry is the longest match at the earliest position.\n occurrences.sort((a, b) => {\n if (a.start !== b.start) return a.start - b.start;\n return b.end - b.start - (a.end - a.start);\n });\n occurrencesByTerm.set(term.id, occurrences);\n }\n\n if (occurrencesByTerm.size === 0) return [];\n\n // Build a flat candidate list sorted by length descending so longer\n // overlaps are resolved first. Each candidate is the first available\n // (non-yet-rejected) occurrence for its term.\n const accepted: GlossaryMatch[] = [];\n const acceptedTermIds = new Set<string>(taken);\n\n // Keep an index per term tracking which occurrence to try next.\n const nextIndex = new Map<string, number>();\n for (const termId of occurrencesByTerm.keys()) {\n nextIndex.set(termId, 0);\n }\n\n // Process candidates longest-first. When a candidate is rejected (overlaps\n // an accepted match), advance to the next occurrence of that term and\n // re-queue it. This ensures we find the first non-overlapping occurrence\n // for each term, preserving both longest-overlap-wins and first-occurrence.\n const pendingCandidates: GlossaryMatch[] = [];\n for (const [termId, occurrences] of occurrencesByTerm) {\n if (occurrences.length > 0) {\n pendingCandidates.push(occurrences[0]);\n nextIndex.set(termId, 1);\n }\n }\n\n const sortByLengthDesc = (a: GlossaryMatch, b: GlossaryMatch) => {\n const lengthDifference = b.end - b.start - (a.end - a.start);\n return lengthDifference !== 0 ? lengthDifference : a.start - b.start;\n };\n pendingCandidates.sort(sortByLengthDesc);\n\n while (pendingCandidates.length > 0) {\n const candidate = pendingCandidates.shift();\n if (candidate === undefined) break;\n if (acceptedTermIds.has(candidate.termId)) continue;\n\n const overlapsAccepted = accepted.some(\n (match) => candidate.start < match.end && candidate.end > match.start,\n );\n if (!overlapsAccepted) {\n accepted.push(candidate);\n acceptedTermIds.add(candidate.termId);\n } else {\n // This occurrence is blocked — try the next occurrence of the same term.\n const occurrences = occurrencesByTerm.get(candidate.termId);\n const idx = nextIndex.get(candidate.termId) ?? 0;\n if (occurrences && idx < occurrences.length) {\n pendingCandidates.push(occurrences[idx]);\n nextIndex.set(candidate.termId, idx + 1);\n pendingCandidates.sort(sortByLengthDesc);\n }\n }\n }\n\n return accepted.sort((a, b) => a.start - b.start);\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { GlossaryTerm } from '../constants/glossary';
|
|
2
|
+
export interface GlossaryMatch {
|
|
3
|
+
/** Index of the first character in `text` covered by the match. */
|
|
4
|
+
start: number;
|
|
5
|
+
/** Index one past the last character covered by the match. */
|
|
6
|
+
end: number;
|
|
7
|
+
/** Exact substring matched — preserves original source casing. */
|
|
8
|
+
text: string;
|
|
9
|
+
/** Glossary term identifier. */
|
|
10
|
+
termId: string;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Searches a plain text string for occurrences of glossary terms.
|
|
14
|
+
*
|
|
15
|
+
* Rules:
|
|
16
|
+
* 1. One match per term: the first non-overlapping occurrence in document order wins.
|
|
17
|
+
* 2. Overlapping matches between different terms: Longest alias wins
|
|
18
|
+
* (e.g. "Reg D 506(b)" beats "Reg D").
|
|
19
|
+
* 3. Strict unicode word boundaries on both ends (`\p{L}\p{Nd}`).
|
|
20
|
+
* 4. Terms marked `matchSensitive` require exact casing.
|
|
21
|
+
*/
|
|
22
|
+
export declare function matchGlossaryTerms(text: string, terms: readonly GlossaryTerm[], taken?: ReadonlySet<string>): GlossaryMatch[];
|
|
23
|
+
//# sourceMappingURL=glossaryMatcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"glossaryMatcher.d.ts","sourceRoot":"","sources":["../../src/utils/glossaryMatcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D,MAAM,WAAW,aAAa;IAC5B,mEAAmE;IACnE,KAAK,EAAE,MAAM,CAAC;IACd,8DAA8D;IAC9D,GAAG,EAAE,MAAM,CAAC;IACZ,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAC;IACb,gCAAgC;IAChC,MAAM,EAAE,MAAM,CAAC;CAChB;AA+BD;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,SAAS,YAAY,EAAE,EAC9B,KAAK,GAAE,WAAW,CAAC,MAAM,CAAa,GACrC,aAAa,EAAE,CAyFjB"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
function escapeRegex(str) {
|
|
2
|
+
return str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
3
|
+
}
|
|
4
|
+
function findAliasOccurrences(text, alias, sensitive) {
|
|
5
|
+
const flags = sensitive ? "gu" : "gui";
|
|
6
|
+
const pattern = `(^|[^\\p{L}\\p{Nd}])(${escapeRegex(alias)})([^\\p{L}\\p{Nd}]|$)`;
|
|
7
|
+
const regex = new RegExp(pattern, flags);
|
|
8
|
+
const results = [];
|
|
9
|
+
let match = regex.exec(text);
|
|
10
|
+
while (match !== null) {
|
|
11
|
+
const prefixOffset = match[1]?.length ?? 0;
|
|
12
|
+
const start = match.index + prefixOffset;
|
|
13
|
+
const matchedText = match[2] ?? alias;
|
|
14
|
+
const end = start + matchedText.length;
|
|
15
|
+
results.push({ start, end, text: matchedText });
|
|
16
|
+
regex.lastIndex = match.index + prefixOffset + (matchedText.length || 1);
|
|
17
|
+
match = regex.exec(text);
|
|
18
|
+
}
|
|
19
|
+
return results;
|
|
20
|
+
}
|
|
21
|
+
function matchGlossaryTerms(text, terms, taken = /* @__PURE__ */ new Set()) {
|
|
22
|
+
if (!text) return [];
|
|
23
|
+
const occurrencesByTerm = /* @__PURE__ */ new Map();
|
|
24
|
+
for (const term of terms) {
|
|
25
|
+
if (taken.has(term.id)) continue;
|
|
26
|
+
const occurrences = [];
|
|
27
|
+
for (const alias of term.aliases) {
|
|
28
|
+
const found = findAliasOccurrences(text, alias, term.matchSensitive);
|
|
29
|
+
for (const occ of found) {
|
|
30
|
+
occurrences.push({
|
|
31
|
+
start: occ.start,
|
|
32
|
+
end: occ.end,
|
|
33
|
+
text: occ.text,
|
|
34
|
+
termId: term.id
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
if (occurrences.length === 0) continue;
|
|
39
|
+
occurrences.sort((a, b) => {
|
|
40
|
+
if (a.start !== b.start) return a.start - b.start;
|
|
41
|
+
return b.end - b.start - (a.end - a.start);
|
|
42
|
+
});
|
|
43
|
+
occurrencesByTerm.set(term.id, occurrences);
|
|
44
|
+
}
|
|
45
|
+
if (occurrencesByTerm.size === 0) return [];
|
|
46
|
+
const accepted = [];
|
|
47
|
+
const acceptedTermIds = new Set(taken);
|
|
48
|
+
const nextIndex = /* @__PURE__ */ new Map();
|
|
49
|
+
for (const termId of occurrencesByTerm.keys()) {
|
|
50
|
+
nextIndex.set(termId, 0);
|
|
51
|
+
}
|
|
52
|
+
const pendingCandidates = [];
|
|
53
|
+
for (const [termId, occurrences] of occurrencesByTerm) {
|
|
54
|
+
if (occurrences.length > 0) {
|
|
55
|
+
pendingCandidates.push(occurrences[0]);
|
|
56
|
+
nextIndex.set(termId, 1);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
const sortByLengthDesc = (a, b) => {
|
|
60
|
+
const lengthDifference = b.end - b.start - (a.end - a.start);
|
|
61
|
+
return lengthDifference !== 0 ? lengthDifference : a.start - b.start;
|
|
62
|
+
};
|
|
63
|
+
pendingCandidates.sort(sortByLengthDesc);
|
|
64
|
+
while (pendingCandidates.length > 0) {
|
|
65
|
+
const candidate = pendingCandidates.shift();
|
|
66
|
+
if (candidate === void 0) break;
|
|
67
|
+
if (acceptedTermIds.has(candidate.termId)) continue;
|
|
68
|
+
const overlapsAccepted = accepted.some(
|
|
69
|
+
(match) => candidate.start < match.end && candidate.end > match.start
|
|
70
|
+
);
|
|
71
|
+
if (!overlapsAccepted) {
|
|
72
|
+
accepted.push(candidate);
|
|
73
|
+
acceptedTermIds.add(candidate.termId);
|
|
74
|
+
} else {
|
|
75
|
+
const occurrences = occurrencesByTerm.get(candidate.termId);
|
|
76
|
+
const idx = nextIndex.get(candidate.termId) ?? 0;
|
|
77
|
+
if (occurrences && idx < occurrences.length) {
|
|
78
|
+
pendingCandidates.push(occurrences[idx]);
|
|
79
|
+
nextIndex.set(candidate.termId, idx + 1);
|
|
80
|
+
pendingCandidates.sort(sortByLengthDesc);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return accepted.sort((a, b) => a.start - b.start);
|
|
85
|
+
}
|
|
86
|
+
export {
|
|
87
|
+
matchGlossaryTerms
|
|
88
|
+
};
|
|
89
|
+
//# sourceMappingURL=glossaryMatcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"glossaryMatcher.js","sources":["../../src/utils/glossaryMatcher.ts"],"sourcesContent":["import type { GlossaryTerm } from \"../constants/glossary\";\n\nexport interface GlossaryMatch {\n /** Index of the first character in `text` covered by the match. */\n start: number;\n /** Index one past the last character covered by the match. */\n end: number;\n /** Exact substring matched — preserves original source casing. */\n text: string;\n /** Glossary term identifier. */\n termId: string;\n}\n\nfunction escapeRegex(str: string): string {\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n}\n\nfunction findAliasOccurrences(\n text: string,\n alias: string,\n sensitive: boolean,\n): Array<{ start: number; end: number; text: string }> {\n const flags = sensitive ? \"gu\" : \"gui\";\n const pattern = `(^|[^\\\\p{L}\\\\p{Nd}])(${escapeRegex(alias)})([^\\\\p{L}\\\\p{Nd}]|$)`;\n const regex = new RegExp(pattern, flags);\n const results: Array<{ start: number; end: number; text: string }> = [];\n\n let match: RegExpExecArray | null = regex.exec(text);\n while (match !== null) {\n const prefixOffset = match[1]?.length ?? 0;\n const start = match.index + prefixOffset;\n const matchedText = match[2] ?? alias;\n const end = start + matchedText.length;\n results.push({ start, end, text: matchedText });\n\n regex.lastIndex = match.index + prefixOffset + (matchedText.length || 1);\n match = regex.exec(text);\n }\n\n return results;\n}\n\n/**\n * Searches a plain text string for occurrences of glossary terms.\n *\n * Rules:\n * 1. One match per term: the first non-overlapping occurrence in document order wins.\n * 2. Overlapping matches between different terms: Longest alias wins\n * (e.g. \"Reg D 506(b)\" beats \"Reg D\").\n * 3. Strict unicode word boundaries on both ends (`\\p{L}\\p{Nd}`).\n * 4. Terms marked `matchSensitive` require exact casing.\n */\nexport function matchGlossaryTerms(\n text: string,\n terms: readonly GlossaryTerm[],\n taken: ReadonlySet<string> = new Set(),\n): GlossaryMatch[] {\n if (!text) return [];\n\n // Collect all occurrences for all eligible terms, grouped by term ID.\n const occurrencesByTerm = new Map<string, GlossaryMatch[]>();\n\n for (const term of terms) {\n if (taken.has(term.id)) continue;\n\n const occurrences: GlossaryMatch[] = [];\n for (const alias of term.aliases) {\n const found = findAliasOccurrences(text, alias, term.matchSensitive);\n for (const occ of found) {\n occurrences.push({\n start: occ.start,\n end: occ.end,\n text: occ.text,\n termId: term.id,\n });\n }\n }\n\n if (occurrences.length === 0) continue;\n\n // Sort each term's occurrences by document order, then by length descending\n // so the first entry is the longest match at the earliest position.\n occurrences.sort((a, b) => {\n if (a.start !== b.start) return a.start - b.start;\n return b.end - b.start - (a.end - a.start);\n });\n occurrencesByTerm.set(term.id, occurrences);\n }\n\n if (occurrencesByTerm.size === 0) return [];\n\n // Build a flat candidate list sorted by length descending so longer\n // overlaps are resolved first. Each candidate is the first available\n // (non-yet-rejected) occurrence for its term.\n const accepted: GlossaryMatch[] = [];\n const acceptedTermIds = new Set<string>(taken);\n\n // Keep an index per term tracking which occurrence to try next.\n const nextIndex = new Map<string, number>();\n for (const termId of occurrencesByTerm.keys()) {\n nextIndex.set(termId, 0);\n }\n\n // Process candidates longest-first. When a candidate is rejected (overlaps\n // an accepted match), advance to the next occurrence of that term and\n // re-queue it. This ensures we find the first non-overlapping occurrence\n // for each term, preserving both longest-overlap-wins and first-occurrence.\n const pendingCandidates: GlossaryMatch[] = [];\n for (const [termId, occurrences] of occurrencesByTerm) {\n if (occurrences.length > 0) {\n pendingCandidates.push(occurrences[0]);\n nextIndex.set(termId, 1);\n }\n }\n\n const sortByLengthDesc = (a: GlossaryMatch, b: GlossaryMatch) => {\n const lengthDifference = b.end - b.start - (a.end - a.start);\n return lengthDifference !== 0 ? lengthDifference : a.start - b.start;\n };\n pendingCandidates.sort(sortByLengthDesc);\n\n while (pendingCandidates.length > 0) {\n const candidate = pendingCandidates.shift();\n if (candidate === undefined) break;\n if (acceptedTermIds.has(candidate.termId)) continue;\n\n const overlapsAccepted = accepted.some(\n (match) => candidate.start < match.end && candidate.end > match.start,\n );\n if (!overlapsAccepted) {\n accepted.push(candidate);\n acceptedTermIds.add(candidate.termId);\n } else {\n // This occurrence is blocked — try the next occurrence of the same term.\n const occurrences = occurrencesByTerm.get(candidate.termId);\n const idx = nextIndex.get(candidate.termId) ?? 0;\n if (occurrences && idx < occurrences.length) {\n pendingCandidates.push(occurrences[idx]);\n nextIndex.set(candidate.termId, idx + 1);\n pendingCandidates.sort(sortByLengthDesc);\n }\n }\n }\n\n return accepted.sort((a, b) => a.start - b.start);\n}\n"],"names":[],"mappings":"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"}
|