@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.
Files changed (144) hide show
  1. package/dist/components/BrandedLoadingScreen/BrandedLoadingScreen.cjs +1 -1
  2. package/dist/components/BrandedLoadingScreen/BrandedLoadingScreen.js +1 -1
  3. package/dist/components/ErrorFallback/ErrorFallback.cjs +1 -1
  4. package/dist/components/ErrorFallback/ErrorFallback.js +1 -1
  5. package/dist/components/form/FormField.cjs +1 -1
  6. package/dist/components/form/FormField.js +1 -1
  7. package/dist/components/generic/AgentSuggestion/AgentSuggestion.cjs +1 -1
  8. package/dist/components/generic/AgentSuggestion/AgentSuggestion.js +1 -1
  9. package/dist/components/generic/Banner/Banner.cjs +1 -1
  10. package/dist/components/generic/Banner/Banner.js +1 -1
  11. package/dist/components/generic/BottomSheet/BottomSheet.cjs +1 -1
  12. package/dist/components/generic/BottomSheet/BottomSheet.js +1 -1
  13. package/dist/components/generic/CompanyBanner/CompanyBanner.cjs +1 -1
  14. package/dist/components/generic/CompanyBanner/CompanyBanner.js +1 -1
  15. package/dist/components/generic/ConfidentialityBanner/ConfidentialityBanner.cjs +1 -1
  16. package/dist/components/generic/ConfidentialityBanner/ConfidentialityBanner.js +1 -1
  17. package/dist/components/generic/Currency/Currency.cjs +1 -1
  18. package/dist/components/generic/Currency/Currency.js +1 -1
  19. package/dist/components/generic/DataRow/DataRow.cjs +24 -3
  20. package/dist/components/generic/DataRow/DataRow.cjs.map +1 -1
  21. package/dist/components/generic/DataRow/DataRow.d.ts.map +1 -1
  22. package/dist/components/generic/DataRow/DataRow.js +24 -3
  23. package/dist/components/generic/DataRow/DataRow.js.map +1 -1
  24. package/dist/components/generic/DataTable/DataTable.cjs +2 -2
  25. package/dist/components/generic/DataTable/DataTable.cjs.map +1 -1
  26. package/dist/components/generic/DataTable/DataTable.js +2 -2
  27. package/dist/components/generic/DataTable/DataTable.js.map +1 -1
  28. package/dist/components/generic/DateDisplay/DateDisplay.cjs +1 -1
  29. package/dist/components/generic/DateDisplay/DateDisplay.js +1 -1
  30. package/dist/components/generic/DocumentRow/DocumentRow.cjs +1 -1
  31. package/dist/components/generic/DocumentRow/DocumentRow.js +1 -1
  32. package/dist/components/generic/EditableSection/EditableSection.cjs +1 -1
  33. package/dist/components/generic/EditableSection/EditableSection.js +1 -1
  34. package/dist/components/generic/EmptyState/EmptyState.cjs +1 -1
  35. package/dist/components/generic/EmptyState/EmptyState.js +1 -1
  36. package/dist/components/generic/ErrorPage/ErrorPage.cjs +1 -1
  37. package/dist/components/generic/ErrorPage/ErrorPage.js +1 -1
  38. package/dist/components/generic/Eyebrow/Eyebrow.cjs +1 -1
  39. package/dist/components/generic/Eyebrow/Eyebrow.js +1 -1
  40. package/dist/components/generic/FileDropzone/FileDropzone.cjs +1 -1
  41. package/dist/components/generic/FileDropzone/FileDropzone.js +1 -1
  42. package/dist/components/generic/ListRow/ListRow.cjs +5 -4
  43. package/dist/components/generic/ListRow/ListRow.cjs.map +1 -1
  44. package/dist/components/generic/ListRow/ListRow.d.ts.map +1 -1
  45. package/dist/components/generic/ListRow/ListRow.js +5 -4
  46. package/dist/components/generic/ListRow/ListRow.js.map +1 -1
  47. package/dist/components/generic/MultiSelectSearch/MultiSelectSearch.cjs +1 -1
  48. package/dist/components/generic/MultiSelectSearch/MultiSelectSearch.js +1 -1
  49. package/dist/components/generic/NotificationRow/NotificationRow.cjs +1 -1
  50. package/dist/components/generic/NotificationRow/NotificationRow.js +1 -1
  51. package/dist/components/generic/Percent/Percent.cjs +1 -1
  52. package/dist/components/generic/Percent/Percent.js +1 -1
  53. package/dist/components/generic/PhotoCropModal/PhotoCropModal.cjs +1 -1
  54. package/dist/components/generic/PhotoCropModal/PhotoCropModal.js +1 -1
  55. package/dist/components/generic/ProcessingState/ProcessingState.cjs +1 -1
  56. package/dist/components/generic/ProcessingState/ProcessingState.js +1 -1
  57. package/dist/components/generic/RadioCard/RadioCard.cjs +1 -1
  58. package/dist/components/generic/RadioCard/RadioCard.js +1 -1
  59. package/dist/components/generic/StatCard/StatCard.cjs +1 -1
  60. package/dist/components/generic/StatCard/StatCard.js +1 -1
  61. package/dist/components/generic/StepCard/StepCard.cjs +3 -2
  62. package/dist/components/generic/StepCard/StepCard.cjs.map +1 -1
  63. package/dist/components/generic/StepCard/StepCard.d.ts.map +1 -1
  64. package/dist/components/generic/StepCard/StepCard.js +3 -2
  65. package/dist/components/generic/StepCard/StepCard.js.map +1 -1
  66. package/dist/components/generic/TablePagination/TablePagination.cjs +1 -1
  67. package/dist/components/generic/TablePagination/TablePagination.js +1 -1
  68. package/dist/components/generic/TaskInboxPopover/TaskInboxPopover.cjs +1 -1
  69. package/dist/components/generic/TaskInboxPopover/TaskInboxPopover.js +1 -1
  70. package/dist/components/generic/TaskRow/TaskRow.cjs +1 -1
  71. package/dist/components/generic/TaskRow/TaskRow.js +1 -1
  72. package/dist/components/layout/AccountSheet/AccountSheet.cjs +1 -1
  73. package/dist/components/layout/AccountSheet/AccountSheet.js +1 -1
  74. package/dist/components/layout/MobileNav/MobileNav.cjs +1 -1
  75. package/dist/components/layout/MobileNav/MobileNav.js +1 -1
  76. package/dist/components/layout/PageHeader/PageHeader.cjs +1 -1
  77. package/dist/components/layout/PageHeader/PageHeader.js +1 -1
  78. package/dist/components/primitives/Glossary/GlossaryContext.cjs +39 -0
  79. package/dist/components/primitives/Glossary/GlossaryContext.cjs.map +1 -0
  80. package/dist/components/primitives/Glossary/GlossaryContext.d.ts +49 -0
  81. package/dist/components/primitives/Glossary/GlossaryContext.d.ts.map +1 -0
  82. package/dist/components/primitives/Glossary/GlossaryContext.js +39 -0
  83. package/dist/components/primitives/Glossary/GlossaryContext.js.map +1 -0
  84. package/dist/components/primitives/Glossary/GlossaryTerm.cjs +147 -0
  85. package/dist/components/primitives/Glossary/GlossaryTerm.cjs.map +1 -0
  86. package/dist/components/primitives/Glossary/GlossaryTerm.d.ts +10 -0
  87. package/dist/components/primitives/Glossary/GlossaryTerm.d.ts.map +1 -0
  88. package/dist/components/primitives/Glossary/GlossaryTerm.js +147 -0
  89. package/dist/components/primitives/Glossary/GlossaryTerm.js.map +1 -0
  90. package/dist/components/primitives/Glossary/index.d.ts +3 -0
  91. package/dist/components/primitives/Glossary/index.d.ts.map +1 -0
  92. package/dist/components/primitives/Text/Text.cjs +112 -0
  93. package/dist/components/primitives/Text/Text.cjs.map +1 -0
  94. package/dist/components/primitives/Text/Text.d.ts +22 -0
  95. package/dist/components/primitives/Text/Text.d.ts.map +1 -0
  96. package/dist/components/primitives/Text/Text.js +112 -0
  97. package/dist/components/primitives/Text/Text.js.map +1 -0
  98. package/dist/components/primitives/Text/index.d.ts +2 -0
  99. package/dist/components/primitives/Text/index.d.ts.map +1 -0
  100. package/dist/components/primitives/index.d.ts +2 -0
  101. package/dist/components/primitives/index.d.ts.map +1 -1
  102. package/dist/components/primitives/layout.cjs.map +1 -1
  103. package/dist/components/primitives/layout.d.ts +2 -1
  104. package/dist/components/primitives/layout.d.ts.map +1 -1
  105. package/dist/components/primitives/layout.js.map +1 -1
  106. package/dist/components/primitives/muiCompat.cjs +8 -8
  107. package/dist/components/primitives/muiCompat.cjs.map +1 -1
  108. package/dist/components/primitives/muiCompat.d.ts.map +1 -1
  109. package/dist/components/primitives/muiCompat.js +8 -8
  110. package/dist/components/primitives/muiCompat.js.map +1 -1
  111. package/dist/components/specific/DocumentRow/DocumentRow.cjs +91 -14
  112. package/dist/components/specific/DocumentRow/DocumentRow.cjs.map +1 -1
  113. package/dist/components/specific/DocumentRow/DocumentRow.d.ts +7 -1
  114. package/dist/components/specific/DocumentRow/DocumentRow.d.ts.map +1 -1
  115. package/dist/components/specific/DocumentRow/DocumentRow.js +92 -15
  116. package/dist/components/specific/DocumentRow/DocumentRow.js.map +1 -1
  117. package/dist/components/specific/InvestorProfileCard/InvestorProfileCard.cjs +1 -1
  118. package/dist/components/specific/InvestorProfileCard/InvestorProfileCard.js +1 -1
  119. package/dist/components/specific/WalletList/WalletList.cjs +1 -1
  120. package/dist/components/specific/WalletList/WalletList.js +1 -1
  121. package/dist/components/specific/WalletListItem/WalletListItem.cjs +3 -2
  122. package/dist/components/specific/WalletListItem/WalletListItem.cjs.map +1 -1
  123. package/dist/components/specific/WalletListItem/WalletListItem.d.ts.map +1 -1
  124. package/dist/components/specific/WalletListItem/WalletListItem.js +3 -2
  125. package/dist/components/specific/WalletListItem/WalletListItem.js.map +1 -1
  126. package/dist/constants/glossary.cjs +210 -0
  127. package/dist/constants/glossary.cjs.map +1 -0
  128. package/dist/constants/glossary.d.ts +26 -0
  129. package/dist/constants/glossary.d.ts.map +1 -0
  130. package/dist/constants/glossary.js +210 -0
  131. package/dist/constants/glossary.js.map +1 -0
  132. package/dist/fairmint-ui.cjs +13 -1
  133. package/dist/fairmint-ui.cjs.map +1 -1
  134. package/dist/fairmint-ui.js +13 -1
  135. package/dist/fairmint-ui.js.map +1 -1
  136. package/dist/index.d.ts +3 -0
  137. package/dist/index.d.ts.map +1 -1
  138. package/dist/utils/glossaryMatcher.cjs +89 -0
  139. package/dist/utils/glossaryMatcher.cjs.map +1 -0
  140. package/dist/utils/glossaryMatcher.d.ts +23 -0
  141. package/dist/utils/glossaryMatcher.d.ts.map +1 -0
  142. package/dist/utils/glossaryMatcher.js +89 -0
  143. package/dist/utils/glossaryMatcher.js.map +1 -0
  144. package/package.json +1 -1
@@ -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 "./node_modules/@mantine/core/esm/components/Text/Text.js";
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,
@@ -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
@@ -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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fairmint/ui",
3
- "version": "0.4.10",
3
+ "version": "0.4.12",
4
4
  "type": "module",
5
5
  "description": "Fairmint design system and UI component library",
6
6
  "license": "SEE LICENSE IN LICENSE",