@ethisyscore/plugin-ui 1.90.0 → 1.92.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.
@@ -311,6 +311,22 @@ function EmptyState({
311
311
  description ? /* @__PURE__ */ jsxRuntime.jsx(material.Typography, { variant: "body2", className: "text-text-disabled mt-1", children: description }) : null
312
312
  ] });
313
313
  }
314
+ function InProgressBanner({ title, children, value, action, sx }) {
315
+ return /* @__PURE__ */ jsxRuntime.jsxs(material.Alert, { severity: "info", icon: false, action, sx: { mb: 2, ...sx }, children: [
316
+ /* @__PURE__ */ jsxRuntime.jsx(material.AlertTitle, { children: title }),
317
+ /* @__PURE__ */ jsxRuntime.jsxs(material.Box, { sx: { display: "flex", flexDirection: "column", gap: 1, mt: 0.5 }, children: [
318
+ /* @__PURE__ */ jsxRuntime.jsx(
319
+ material.LinearProgress,
320
+ {
321
+ variant: typeof value === "number" ? "determinate" : "indeterminate",
322
+ value,
323
+ sx: { height: 6, borderRadius: 3 }
324
+ }
325
+ ),
326
+ typeof children === "string" ? /* @__PURE__ */ jsxRuntime.jsx(material.Typography, { variant: "caption", color: "text.secondary", children }) : children
327
+ ] })
328
+ ] });
329
+ }
314
330
  function Dialog(props) {
315
331
  return /* @__PURE__ */ jsxRuntime.jsx(material.Dialog, { disableScrollLock: true, disableRestoreFocus: true, ...props });
316
332
  }
@@ -498,6 +514,7 @@ function useToast() {
498
514
  exports.ConfirmActionDialog = ConfirmActionDialog;
499
515
  exports.ConfirmDeleteDialog = ConfirmDeleteDialog;
500
516
  exports.EmptyState = EmptyState;
517
+ exports.InProgressBanner = InProgressBanner;
501
518
  exports.showErrorToast = showErrorToast;
502
519
  exports.showSuccessToast = showSuccessToast;
503
520
  exports.showWarningToast = showWarningToast;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/icons/nexture/ni-archive.tsx","../../../src/icons/nexture/ni-bin-empty.tsx","../../../src/icons/nexture/ni-cross.tsx","../../../src/icons/nexture/ni-search.tsx","../../../src/icons/nexture-icons.tsx","../../../src/components/shared/EmptyState.tsx","../../../src/components/ui/Dialog.tsx","../../../src/components/ui/DebouncedSearchInput.tsx","../../../src/components/shared/ConfirmActionDialog.tsx","../../../src/components/shared/ConfirmDeleteDialog.tsx","../../../src/components/shared/useConfirmDialog.ts","../../../src/components/shared/toast.ts"],"names":["jsxs","jsx","Box","Typography","MuiDialog","memo","DebouncedSearchInput","useState","useId","useRef","useEffect","useCallback","FormControl","InputLabel","FilledInput","Fragment","InputAdornment","IconButton","DialogTitle","DialogContent","DialogContentText","DialogActions","Button","CircularProgress"],"mappings":"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","file":"index.cjs","sourcesContent":["import { NextureIconsProps, sizeHelper, strokeSizeHelper } from \"../nexture-icons\";\n\nexport default function NiArchive({\n className,\n variant = \"outlined\",\n size = \"medium\",\n oneTone = false,\n}: NextureIconsProps) {\n const iconSize = sizeHelper(size);\n const iconStrokeWidth = strokeSizeHelper(iconSize);\n\n if (variant === \"outlined\") {\n return (\n <svg\n width={iconSize}\n height={iconSize}\n className={className}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M22 7V5.71496C22 4.17371 20.8321 2.88321 19.2985 2.72985L17.9702 2.59702C14 2.2 10 2.2 6.02978 2.59702L4.70149 2.72985C3.16788 2.88321 2 4.17371 2 5.71496V7C2 8.10457 2.89543 9 4 9H20C21.1046 9 22 8.10457 22 7Z\"\n stroke=\"currentColor\"\n strokeWidth={iconStrokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M4.53333 9.5L4.4768 9.74619C3.83435 12.544 3.8494 15.4543 4.51997 18.2455V18.2455C4.85389 19.6354 5.95655 20.7108 7.35451 21.009V21.009C10.4171 21.6623 13.5829 21.6623 16.6455 21.009V21.009C18.0434 20.7108 19.1461 19.6354 19.48 18.2455V18.2455C20.1506 15.4543 20.1657 12.544 19.5232 9.74618L19.4667 9.5\"\n stroke=\"currentColor\"\n strokeWidth={iconStrokeWidth}\n strokeLinecap=\"round\"\n />\n <path\n opacity={oneTone ? 1 : 0.6}\n d=\"M14.0945 13.9189C14.3504 13.9701 14.5682 14.1365 14.6849 14.3698V14.3698C14.8833 14.7665 14.8833 15.2335 14.6849 15.6302V15.6302C14.5682 15.8635 14.3504 16.0299 14.0945 16.0811L13.8853 16.1229C12.6408 16.3718 11.3592 16.3718 10.1147 16.1229L9.90546 16.0811C9.64963 16.0299 9.43176 15.8635 9.31508 15.6302V15.6302C9.11673 15.2335 9.11673 14.7665 9.31508 14.3698V14.3698C9.43176 14.1365 9.64963 13.9701 9.90546 13.9189L10.1147 13.8771C11.3592 13.6282 12.6408 13.6282 13.8853 13.8771L14.0945 13.9189Z\"\n stroke=\"currentColor\"\n strokeWidth={iconStrokeWidth}\n />\n </svg>\n );\n } else {\n return (\n <svg\n width={iconSize}\n height={iconSize}\n className={className}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M5.95508 1.85031C9.9749 1.44833 14.0251 1.44833 18.0449 1.85031L19.373 1.98312C21.2897 2.17479 22.7495 3.78844 22.75 5.71457V6.99972C22.75 7.86931 22.345 8.64326 21.7148 9.14719C21.1107 7.71812 19.7022 6.75088 18.1025 6.7507H5.89746C4.29778 6.75078 2.8884 7.71735 2.28418 9.14621C1.65469 8.64226 1.25 7.86881 1.25 6.99972V5.71457C1.2505 3.78844 2.71028 2.17479 4.62695 1.98312L5.95508 1.85031Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M18.1028 8.25C19.2525 8.25003 20.2447 9.05777 20.4778 10.1836C20.9988 12.7045 20.957 15.3105 20.3557 17.8135L20.2092 18.4219C19.8078 20.0924 18.4823 21.3837 16.802 21.7422C13.6364 22.4174 10.3641 22.4174 7.19849 21.7422C5.51812 21.3837 4.19273 20.0925 3.79126 18.4219L3.64478 17.8135C3.04349 15.3105 3.00171 12.7045 3.52271 10.1836C3.75577 9.05776 4.74793 8.25 5.89771 8.25H18.1028ZM14.0334 13.1406C12.6922 12.8724 11.3103 12.8725 9.96899 13.1406L9.75903 13.1826C9.27649 13.2792 8.86496 13.5931 8.64477 14.0332C8.34086 14.641 8.34086 15.357 8.64477 15.9648C8.86494 16.405 9.27646 16.7188 9.75903 16.8154L9.96899 16.8574C11.3103 17.1255 12.6922 17.1257 14.0334 16.8574L14.2424 16.8154C14.7249 16.7187 15.1366 16.4049 15.3567 15.9648C15.6604 15.3571 15.6604 14.6409 15.3567 14.0332C15.1366 13.5931 14.7249 13.2793 14.2424 13.1826L14.0334 13.1406Z\"\n fill=\"currentColor\"\n />\n <path\n opacity={oneTone ? 0 : 0.4}\n d=\"M9.96866 13.1406C11.3101 12.8724 12.6917 12.8723 14.0331 13.1406L14.2421 13.1826C14.7247 13.2792 15.1362 13.593 15.3563 14.0332C15.6602 14.641 15.6602 15.357 15.3563 15.9648C15.1362 16.405 14.7247 16.7188 14.2421 16.8154L14.0331 16.8574C12.6917 17.1257 11.3101 17.1256 9.96866 16.8574L9.7587 16.8154C9.27607 16.7188 8.86459 16.4051 8.64444 15.9648C8.34052 15.357 8.34052 14.641 8.64444 14.0332C8.86461 13.593 9.27611 13.2792 9.7587 13.1826L9.96866 13.1406Z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n }\n}\n","import { NextureIconsProps, sizeHelper, strokeSizeHelper } from \"../nexture-icons\";\n\nexport default function NiBinEmpty({ className, variant = \"outlined\", size = \"medium\" }: NextureIconsProps) {\n const iconSize = sizeHelper(size);\n const iconStrokeWidth = strokeSizeHelper(iconSize);\n if (variant === \"outlined\") {\n return (\n <svg\n width={iconSize}\n height={iconSize}\n className={className}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M6 6L5.48806 9.58357C5.16413 11.8511 5.14395 14.1516 5.42806 16.4245L5.51601 17.1281C5.80316 19.4253 7.56538 21.2609 9.84894 21.6415V21.6415C11.2732 21.8789 12.7268 21.8789 14.1511 21.6415V21.6415C16.4346 21.2609 18.1968 19.4253 18.484 17.1281L18.5719 16.4245C18.856 14.1516 18.8359 11.8511 18.5119 9.58357L18 6\"\n stroke=\"currentColor\"\n strokeWidth={iconStrokeWidth}\n strokeLinecap=\"round\"\n />\n <path\n d=\"M15 5L14.9062 4.43717C14.7408 3.4451 14.6582 2.94906 14.3711 2.60286C14.2462 2.45218 14.0957 2.32469 13.9265 2.22623C13.5378 2 13.035 2 12.0292 2L11.9708 2C10.965 2 10.4622 2 10.0735 2.22623C9.90431 2.32469 9.75381 2.45219 9.62888 2.60286C9.34182 2.94906 9.25915 3.4451 9.09381 4.43717L9 5\"\n stroke=\"currentColor\"\n strokeWidth={iconStrokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M20 6L18.2017 5.77522C14.0833 5.26041 9.91673 5.26041 5.79826 5.77522L4 6\"\n stroke=\"currentColor\"\n strokeWidth={iconStrokeWidth}\n strokeLinecap=\"round\"\n />\n </svg>\n );\n } else {\n return (\n <svg\n width={iconSize}\n height={iconSize}\n className={className}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M9.74018 5.12304C9.6721 5.53152 9.28536 5.80813 8.8769 5.74023C8.46843 5.67215 8.19181 5.28541 8.25971 4.87695L8.35444 4.31347C8.43472 3.83178 8.50246 3.41913 8.59077 3.08593C8.68246 2.74003 8.81179 2.41337 9.0517 2.12402C9.23282 1.90562 9.45102 1.72085 9.69623 1.57812C10.0211 1.38906 10.3644 1.31483 10.7206 1.28125C11.0639 1.24892 11.4822 1.25 11.9706 1.25L12.0292 1.25C12.5177 1.25 12.936 1.24892 13.2792 1.28125C13.6355 1.31483 13.9788 1.38906 14.3037 1.57812C14.5489 1.72085 14.7671 1.90562 14.9482 2.12402C15.1881 2.41337 15.3174 2.74003 15.4091 3.08593C15.4974 3.41913 15.5652 3.83177 15.6455 4.31347L15.7402 4.87695L15.749 4.95312C15.7732 5.33241 15.506 5.6764 15.123 5.74023C14.74 5.80389 14.3763 5.56494 14.2763 5.19824L14.2597 5.12304L14.166 4.56054C14.081 4.05049 14.025 3.71896 13.9589 3.46972C13.8964 3.23378 13.8409 3.13889 13.7939 3.08203C13.7252 2.99916 13.6418 2.92817 13.5488 2.87402C13.4849 2.83695 13.3818 2.79831 13.1386 2.77539C12.8819 2.75121 12.5462 2.75 12.0292 2.75L11.9706 2.75C11.4537 2.75 11.1179 2.75121 10.8613 2.77539C10.6181 2.79831 10.515 2.83695 10.4511 2.87402C10.3581 2.92817 10.2747 2.99916 10.206 3.08203C10.1589 3.13889 10.1035 3.23378 10.041 3.46972C9.97489 3.71896 9.91894 4.05049 9.83393 4.56054L9.74018 5.12304Z\"\n fill=\"currentColor\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M5.94819 5.00114C9.96612 4.51861 14.0279 4.51807 18.0459 5.00016C18.1288 5.01011 18.212 5.02008 18.2949 5.03043L20.0927 5.25504L20.1689 5.26872C20.5391 5.35382 20.792 5.70788 20.7441 6.09293C20.6958 6.47814 20.3633 6.75806 19.9834 6.74918L19.9072 6.7443L18.8447 6.61051L19.2548 9.4777C19.5881 11.8107 19.6086 14.1783 19.3164 16.5168L19.2285 17.2209C18.9001 19.8471 16.8851 21.9459 14.2744 22.381C12.7685 22.632 11.2314 22.632 9.72554 22.381C7.11486 21.9458 5.09978 19.8471 4.77144 17.2209L4.68355 16.5168C4.39132 14.1783 4.41185 11.8107 4.74507 9.4777L5.15425 6.61051L4.09273 6.7443L4.01655 6.74918C3.63657 6.75805 3.30414 6.47813 3.25581 6.09293C3.20471 5.68211 3.49633 5.30642 3.90718 5.25504L5.70503 5.03043C5.78598 5.02032 5.86721 5.01086 5.94819 5.00114Z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n }\n}\n","import { NextureIconsProps, sizeHelper, strokeSizeHelper } from \"../nexture-icons\";\n\nexport default function NiCross({ className, variant = \"outlined\", size = \"medium\" }: NextureIconsProps) {\n const iconSize = sizeHelper(size);\n const iconStrokeWidth = strokeSizeHelper(iconSize);\n\n if (variant === \"outlined\") {\n return (\n <svg\n width={iconSize}\n height={iconSize}\n className={className}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M8.00016 8L12.0001 12M12.0001 12L16 16.0002M12.0001 12L16 8.00015M12.0001 12L8 16.0002\"\n stroke=\"currentColor\"\n strokeWidth={iconStrokeWidth}\n strokeLinecap=\"round\"\n />\n </svg>\n );\n } else {\n return (\n <svg\n width={iconSize}\n height={iconSize}\n className={className}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M15.4698 7.46963C15.7626 7.17684 16.2374 7.17684 16.5303 7.46963C16.8232 7.7625 16.8231 8.23728 16.5303 8.53018L13.0606 11.9999L16.5303 15.4696C16.8232 15.7625 16.8231 16.2373 16.5303 16.5302C16.2557 16.8048 15.821 16.8223 15.5264 16.5819L15.4698 16.5302L12 13.0604L8.53032 16.5302C8.23743 16.8231 7.76267 16.8231 7.46977 16.5302C7.17697 16.2373 7.17691 15.7625 7.46977 15.4696L10.9395 11.9999L7.46977 8.53018L7.41801 8.47354C7.1778 8.17898 7.19527 7.74421 7.46977 7.46963C7.76264 7.17676 8.23742 7.17682 8.53032 7.46963L12 10.9394L15.4698 7.46963Z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n }\n}\n","import { NextureIconsProps, sizeHelper, strokeSizeHelper } from \"../nexture-icons\";\n\nexport default function NiSearch({\n className,\n variant = \"outlined\",\n size = \"medium\",\n oneTone = false,\n}: NextureIconsProps) {\n const iconSize = sizeHelper(size);\n const iconStrokeWidth = strokeSizeHelper(iconSize);\n if (variant === \"outlined\") {\n return (\n <svg\n width={iconSize}\n height={iconSize}\n className={className}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n opacity={oneTone ? 1 : 0.6}\n d=\"M22 22L18.5 18.5\"\n stroke=\"currentColor\"\n strokeWidth={iconStrokeWidth}\n strokeLinecap=\"round\"\n />\n <circle cx=\"11.5\" cy=\"11.5\" r=\"9.5\" stroke=\"currentColor\" strokeWidth={iconStrokeWidth} />\n </svg>\n );\n } else {\n return (\n <svg\n width={iconSize}\n height={iconSize}\n className={className}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n opacity={oneTone ? 1 : 0.4}\n d=\"M19.0303 17.9697C18.7374 17.6768 18.2627 17.6768 17.9698 17.9697C17.6769 18.2626 17.6769 18.7373 17.9698 19.0302L21.4698 22.5302C21.7627 22.8231 22.2374 22.8231 22.5303 22.5302C22.8232 22.2373 22.8232 21.7626 22.5303 21.4697L19.0303 17.9697Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M11.5 1.25C17.1609 1.25 21.75 5.83908 21.75 11.5C21.75 17.1609 17.1609 21.75 11.5 21.75C5.83908 21.75 1.25 17.1609 1.25 11.5C1.25 5.83908 5.83908 1.25 11.5 1.25Z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n }\n}\n","import NiAI from \"./nexture/ni-ai\";\nimport NiAirBalloon from \"./nexture/ni-air-balloon\";\nimport NiAnchor from \"./nexture/ni-anchor\";\nimport NiAnnouncement from \"./nexture/ni-announcement\";\nimport NiAntenna from \"./nexture/ni-antenna\";\nimport NiArchive from \"./nexture/ni-archive\";\nimport NiArchiveCheck from \"./nexture/ni-archive-check\";\nimport NiArrowCircleLeft from \"./nexture/ni-arrow-circle-left\";\nimport NiArrowCircleRight from \"./nexture/ni-arrow-circle-right\";\nimport NiArrowDown from \"./nexture/ni-arrow-down\";\nimport NiArrowDownLeft from \"./nexture/ni-arrow-down-left\";\nimport NiArrowDownLeftSquare from \"./nexture/ni-arrow-down-left-square\";\nimport NiArrowDownRight from \"./nexture/ni-arrow-down-right\";\nimport NiArrowDownRightSquare from \"./nexture/ni-arrow-down-right-square\";\nimport NiArrowDownSquare from \"./nexture/ni-arrow-down-square\";\nimport NiArrowHistory from \"./nexture/ni-arrow-history\";\nimport NiArrowInDown from \"./nexture/ni-arrow-in-down\";\nimport NiArrowInLeft from \"./nexture/ni-arrow-in-left\";\nimport NiArrowInRight from \"./nexture/ni-arrow-in-right\";\nimport NiArrowInUp from \"./nexture/ni-arrow-in-up\";\nimport NiArrowLeft from \"./nexture/ni-arrow-left\";\nimport NiArrowLeftRight from \"./nexture/ni-arrow-left-right\";\nimport NiArrowLeftSquare from \"./nexture/ni-arrow-left-square\";\nimport NiArrowOutDown from \"./nexture/ni-arrow-out-down\";\nimport NiArrowOutLeft from \"./nexture/ni-arrow-out-left\";\nimport NiArrowOutRight from \"./nexture/ni-arrow-out-right\";\nimport NiArrowOutUp from \"./nexture/ni-arrow-out-up\";\nimport NiArrowRight from \"./nexture/ni-arrow-right\";\nimport NiArrowRightSquare from \"./nexture/ni-arrow-right-square\";\nimport NiArrowUp from \"./nexture/ni-arrow-up\";\nimport NiArrowUpDown from \"./nexture/ni-arrow-up-down\";\nimport NiArrowUpLeft from \"./nexture/ni-arrow-up-left\";\nimport NiArrowUpLeftSquare from \"./nexture/ni-arrow-up-left-square\";\nimport NiArrowUpRight from \"./nexture/ni-arrow-up-right\";\nimport NiArrowUpRightSquare from \"./nexture/ni-arrow-up-right-square\";\nimport NiArrowUpSquare from \"./nexture/ni-arrow-up-square\";\nimport NiAt from \"./nexture/ni-at\";\nimport NiBadge from \"./nexture/ni-badge\";\nimport NiBadgeCheck from \"./nexture/ni-badge-check\";\nimport NiBag from \"./nexture/ni-bag\";\nimport NiBandAid from \"./nexture/ni-band-aid\";\nimport NiBarcode from \"./nexture/ni-barcode\";\nimport NiBasket from \"./nexture/ni-basket\";\nimport NiBatteryCharging from \"./nexture/ni-battery-charging\";\nimport NiBatteryEmpty from \"./nexture/ni-battery-empty\";\nimport NiBatteryFull from \"./nexture/ni-battery-full\";\nimport NiBell from \"./nexture/ni-bell\";\nimport NiBellInactive from \"./nexture/ni-bell-inactive\";\nimport NiBinEmpty from \"./nexture/ni-bin-empty\";\nimport NiBinFull from \"./nexture/ni-bin-full\";\nimport NiBloodCells from \"./nexture/ni-blood-cells\";\nimport NiBluetooth from \"./nexture/ni-bluetooth\";\nimport NiBook from \"./nexture/ni-book\";\nimport NiBookmark from \"./nexture/ni-bookmark\";\nimport NiBookmarkSingle from \"./nexture/ni-bookmark-single\";\nimport NiBraces from \"./nexture/ni-braces\";\nimport NiBrackets from \"./nexture/ni-brackets\";\nimport NiBrain from \"./nexture/ni-brain\";\nimport NiBrainCircuit from \"./nexture/ni-brain-circuit\";\nimport NiBriefcase from \"./nexture/ni-briefcase\";\nimport NiBrush from \"./nexture/ni-brush\";\nimport NiBrushArt from \"./nexture/ni-brush-art\";\nimport NiBrushArtSquare from \"./nexture/ni-brush-art-square\";\nimport NiBug from \"./nexture/ni-bug\";\nimport NiBuilding from \"./nexture/ni-building\";\nimport NiBulbOff from \"./nexture/ni-bulb-off\";\nimport NiBulbOn from \"./nexture/ni-bulb-on\";\nimport NiButton from \"./nexture/ni-button\";\nimport NiButtonGroup from \"./nexture/ni-button-group\";\nimport NiButtonLarge from \"./nexture/ni-button-large\";\nimport NiCake from \"./nexture/ni-cake\";\nimport NiCalendar from \"./nexture/ni-calendar\";\nimport NiCalendarClock from \"./nexture/ni-calendar-clock\";\nimport NiCamera from \"./nexture/ni-camera\";\nimport NiCar from \"./nexture/ni-car\";\nimport NiCartArrow from \"./nexture/ni-cart-arrow\";\nimport NiCartCross from \"./nexture/ni-cart-cross\";\nimport NiCartEmpty from \"./nexture/ni-cart-empty\";\nimport NiCartMinus from \"./nexture/ni-cart-minus\";\nimport NiCartPlus from \"./nexture/ni-cart-plus\";\nimport NiCatalog from \"./nexture/ni-catalog\";\nimport NiCells from \"./nexture/ni-cells\";\nimport NiCellsPlus from \"./nexture/ni-cells-plus\";\nimport NiChange from \"./nexture/ni-change\";\nimport NiChartBar from \"./nexture/ni-chart-bar\";\nimport NiChartCandleSticks from \"./nexture/ni-chart-candle-sticks\";\nimport NiChartFunnel from \"./nexture/ni-chart-funnel\";\nimport NiChartHeatmap from \"./nexture/ni-chart-heatmap\";\nimport NiChartLine from \"./nexture/ni-chart-line\";\nimport NiChartLineBar from \"./nexture/ni-chart-line-bar\";\nimport NiChartPie from \"./nexture/ni-chart-pie\";\nimport NiChartPolar from \"./nexture/ni-chart-polar\";\nimport NiChartRadar from \"./nexture/ni-chart-radar\";\nimport NiChartScatter from \"./nexture/ni-chart-scatter\";\nimport NiCheck from \"./nexture/ni-check\";\nimport NiCheckFull from \"./nexture/ni-check-full\";\nimport NiCheckSquare from \"./nexture/ni-check-square\";\nimport NiChef from \"./nexture/ni-chef\";\nimport NiChevronDown from \"./nexture/ni-chevron-down\";\nimport NiChevronDownSmall from \"./nexture/ni-chevron-down-small\";\nimport NiChevronLeft from \"./nexture/ni-chevron-left\";\nimport NiChevronLeftRightReverseSmall from \"./nexture/ni-chevron-left-right-reverse-small\";\nimport NiChevronLeftRightSmall from \"./nexture/ni-chevron-left-right-small\";\nimport NiChevronLeftSmall from \"./nexture/ni-chevron-left-small\";\nimport NiChevronRight from \"./nexture/ni-chevron-right\";\nimport NiChevronRightSmall from \"./nexture/ni-chevron-right-small\";\nimport NiChevronUp from \"./nexture/ni-chevron-up\";\nimport NiChevronUpDownReverseSmall from \"./nexture/ni-chevron-up-down-reverse-small\";\nimport NiChevronUpDownSmall from \"./nexture/ni-chevron-up-down-small\";\nimport NiChevronUpSmall from \"./nexture/ni-chevron-up-small\";\nimport NiCholesterol from \"./nexture/ni-cholesterol\";\nimport NiCircle from \"./nexture/ni-circle\";\nimport NiClipboard from \"./nexture/ni-clipboard\";\nimport NiClock from \"./nexture/ni-clock\";\nimport NiCloud from \"./nexture/ni-cloud\";\nimport NiCloudPartly from \"./nexture/ni-cloud-partly\";\nimport NiCloudRain from \"./nexture/ni-cloud-rain\";\nimport NiCloudSnow from \"./nexture/ni-cloud-snow\";\nimport NiCloudThunder from \"./nexture/ni-cloud-thunder\";\nimport NiCode from \"./nexture/ni-code\";\nimport NiCoffee from \"./nexture/ni-coffee\";\nimport NiCoin from \"./nexture/ni-coin\";\nimport NiCollapse from \"./nexture/ni-collapse\";\nimport NiCollapseIn from \"./nexture/ni-collapse-in\";\nimport NiCols from \"./nexture/ni-cols\";\nimport NiCompass from \"./nexture/ni-compass\";\nimport NiController from \"./nexture/ni-controller\";\nimport NiCopyright from \"./nexture/ni-copyright\";\nimport NiCpu from \"./nexture/ni-cpu\";\nimport NiCreditCard from \"./nexture/ni-credit-card\";\nimport NiCrop from \"./nexture/ni-crop\";\nimport NiCross from \"./nexture/ni-cross\";\nimport NiCrossFull from \"./nexture/ni-cross-full\";\nimport NiCrossHexagon from \"./nexture/ni-cross-hexagon\";\nimport NiCrossSquare from \"./nexture/ni-cross-square\";\nimport NiCrosshair from \"./nexture/ni-crosshair\";\nimport NiCrown from \"./nexture/ni-crown\";\nimport NiCursor from \"./nexture/ni-cursor\";\nimport NiDashboard from \"./nexture/ni-dashboard\";\nimport NiDatabase from \"./nexture/ni-database\";\nimport NiDevops from \"./nexture/ni-devops\";\nimport NiDiagram from \"./nexture/ni-diagram\";\nimport NiDice from \"./nexture/ni-dice\";\nimport NiDirectory from \"./nexture/ni-directory\";\nimport NiDocumentArchive from \"./nexture/ni-document-archive\";\nimport NiDocumentChart from \"./nexture/ni-document-chart\";\nimport NiDocumentCheck from \"./nexture/ni-document-check\";\nimport NiDocumentCode from \"./nexture/ni-document-code\";\nimport NiDocumentCross from \"./nexture/ni-document-cross\";\nimport NiDocumentFull from \"./nexture/ni-document-full\";\nimport NiDocumentImage from \"./nexture/ni-document-image\";\nimport NiDocumentMinus from \"./nexture/ni-document-minus\";\nimport NiDocumentNumber from \"./nexture/ni-document-number\";\nimport NiDocumentPlus from \"./nexture/ni-document-plus\";\nimport NiDocumentVideo from \"./nexture/ni-document-video\";\nimport NiDollar from \"./nexture/ni-dollar\";\nimport NiDollarSquare from \"./nexture/ni-dollar-square\";\nimport NiDotsSquare from \"./nexture/ni-dots-square\";\nimport NiDownloadCloud from \"./nexture/ni-download-cloud\";\nimport NiDragHorizontal from \"./nexture/ni-drag-horizontal\";\nimport NiDragVertical from \"./nexture/ni-drag-vertical\";\nimport NiDrink from \"./nexture/ni-drink\";\nimport NiDrop from \"./nexture/ni-drop\";\nimport NiDuplicate from \"./nexture/ni-duplicate\";\nimport NiEllipsisHorizontal from \"./nexture/ni-ellipsis-horizontal\";\nimport NiEllipsisVertical from \"./nexture/ni-ellipsis-vertical\";\nimport NiEmail from \"./nexture/ni-email\";\nimport NiEmailOpen from \"./nexture/ni-email-open\";\nimport NiEndDownSmall from \"./nexture/ni-end-down-small\";\nimport NiEndLeftSmall from \"./nexture/ni-end-left-small\";\nimport NiEndRightSmall from \"./nexture/ni-end-right-small\";\nimport NiEndUpSmall from \"./nexture/ni-end-up-small\";\nimport NiEnterDown from \"./nexture/ni-enter-down\";\nimport NiEnterLeft from \"./nexture/ni-enter-left\";\nimport NiEnterReverseDown from \"./nexture/ni-enter-reverse-down\";\nimport NiEnterReverseLeft from \"./nexture/ni-enter-reverse-left\";\nimport NiEnterReverseRight from \"./nexture/ni-enter-reverse-right\";\nimport NiEnterReverseUp from \"./nexture/ni-enter-reverse-up\";\nimport NiEnterRight from \"./nexture/ni-enter-right\";\nimport NiEnterUp from \"./nexture/ni-enter-up\";\nimport NiEquals from \"./nexture/ni-equals\";\nimport NiEqualsFull from \"./nexture/ni-equals-full\";\nimport NiEraser from \"./nexture/ni-eraser\";\nimport NiEuro from \"./nexture/ni-euro\";\nimport NiEuroSquare from \"./nexture/ni-euro-square\";\nimport NiExclamationHexagon from \"./nexture/ni-exclamation-hexagon\";\nimport NiExclamationSquare from \"./nexture/ni-exclamation-square\";\nimport NiExpand from \"./nexture/ni-expand\";\nimport NiExpandFull from \"./nexture/ni-expand-full\";\nimport NiExpandOut from \"./nexture/ni-expand-out\";\nimport NiExpandSquare from \"./nexture/ni-expand-square\";\nimport NiExternal from \"./nexture/ni-external\";\nimport NiEyeClose from \"./nexture/ni-eye-close\";\nimport NiEyeInactive from \"./nexture/ni-eye-inactive\";\nimport NiEyeOpen from \"./nexture/ni-eye-open\";\nimport NiFaceFrown from \"./nexture/ni-face-frown\";\nimport NiFaceFrownMore from \"./nexture/ni-face-frown-more\";\nimport NiFaceNeutral from \"./nexture/ni-face-neutral\";\nimport NiFaceSmile from \"./nexture/ni-face-smile\";\nimport NiFaceSmileMore from \"./nexture/ni-face-smile-more\";\nimport NiFemale from \"./nexture/ni-female\";\nimport NiFilter from \"./nexture/ni-filter\";\nimport NiFilterCross from \"./nexture/ni-filter-cross\";\nimport NiFilterMinus from \"./nexture/ni-filter-minus\";\nimport NiFilterPlus from \"./nexture/ni-filter-plus\";\nimport NiFingerprint from \"./nexture/ni-fingerprint\";\nimport NiFire from \"./nexture/ni-fire\";\nimport NiFirstAid from \"./nexture/ni-first-aid\";\nimport NiFitness from \"./nexture/ni-fitness\";\nimport NiFlag from \"./nexture/ni-flag\";\nimport NiFlash from \"./nexture/ni-flash\";\nimport NiFlask from \"./nexture/ni-flask\";\nimport NiFloppyDisk from \"./nexture/ni-floppy-disk\";\nimport NiFolder from \"./nexture/ni-folder\";\nimport NiFolderCheck from \"./nexture/ni-folder-check\";\nimport NiFolderCross from \"./nexture/ni-folder-cross\";\nimport NiFolderMinus from \"./nexture/ni-folder-minus\";\nimport NiFolderPlus from \"./nexture/ni-folder-plus\";\nimport NiForwardDownSmall from \"./nexture/ni-forward-down-small\";\nimport NiForwardLeftSmall from \"./nexture/ni-forward-left-small\";\nimport NiForwardRightSmall from \"./nexture/ni-forward-right-small\";\nimport NiForwardUpSmall from \"./nexture/ni-forward-up-small\";\nimport NiGay from \"./nexture/ni-gay\";\nimport NiGerm from \"./nexture/ni-germ\";\nimport NiGogo from \"./nexture/ni-gogo\";\nimport NiGold from \"./nexture/ni-gold\";\nimport NiGpu from \"./nexture/ni-gpu\";\nimport NiGraduation from \"./nexture/ni-graduation\";\nimport NiGroup from \"./nexture/ni-group\";\nimport NiHeadphones from \"./nexture/ni-headphones\";\nimport NiHeadset from \"./nexture/ni-headset\";\nimport NiHeadsetMic from \"./nexture/ni-headset-mic\";\nimport NiHealth from \"./nexture/ni-health\";\nimport NiHeart from \"./nexture/ni-heart\";\nimport NiHeartRate from \"./nexture/ni-heart-rate\";\nimport NiHearts from \"./nexture/ni-hearts\";\nimport NiHome from \"./nexture/ni-home\";\nimport NiInbox from \"./nexture/ni-inbox\";\nimport NiInfoSquare from \"./nexture/ni-info-square\";\nimport NiInjection from \"./nexture/ni-injection\";\nimport NiInput from \"./nexture/ni-input\";\nimport NiIntegration from \"./nexture/ni-integration\";\nimport NiInternal from \"./nexture/ni-internal\";\nimport NiIv from \"./nexture/ni-iv\";\nimport NiJoin from \"./nexture/ni-join\";\nimport NiKey from \"./nexture/ni-key\";\nimport NiKeyboard from \"./nexture/ni-keyboard\";\nimport NiKnobs from \"./nexture/ni-knobs\";\nimport NiLaptop from \"./nexture/ni-laptop\";\nimport NiLaw from \"./nexture/ni-law\";\nimport NiLayout from \"./nexture/ni-layout\";\nimport NiLike from \"./nexture/ni-like\";\nimport NiLink from \"./nexture/ni-link\";\nimport NiLinkBroken from \"./nexture/ni-link-broken\";\nimport NiList from \"./nexture/ni-list\";\nimport NiListCheck from \"./nexture/ni-list-check\";\nimport NiListChevronDown from \"./nexture/ni-list-chevron-down\";\nimport NiListCircle from \"./nexture/ni-list-circle\";\nimport NiListCross from \"./nexture/ni-list-cross\";\nimport NiListNumber from \"./nexture/ni-list-number\";\nimport NiListSquare from \"./nexture/ni-list-square\";\nimport NiLoader from \"./nexture/ni-loader\";\nimport NiLock from \"./nexture/ni-lock\";\nimport NiLuggage from \"./nexture/ni-luggage\";\nimport NiLungs from \"./nexture/ni-lungs\";\nimport NiMagicWand from \"./nexture/ni-magic-wand\";\nimport NiMale from \"./nexture/ni-male\";\nimport NiMap from \"./nexture/ni-map\";\nimport NiMasonary from \"./nexture/ni-masonary\";\nimport NiMedal from \"./nexture/ni-medal\";\nimport NiMenu from \"./nexture/ni-menu\";\nimport NiMenuLeft from \"./nexture/ni-menu-left\";\nimport NiMenuRight from \"./nexture/ni-menu-right\";\nimport NiMenuSplit from \"./nexture/ni-menu-split\";\nimport NiMenuSplitDot from \"./nexture/ni-menu-split-dot\";\nimport NiMenuSplitDotReverse from \"./nexture/ni-menu-split-dot-reverse\";\nimport NiMenuSplitReverse from \"./nexture/ni-menu-split-reverse\";\nimport NiMessage from \"./nexture/ni-message\";\nimport NiMessageCheck from \"./nexture/ni-message-check\";\nimport NiMessageCross from \"./nexture/ni-message-cross\";\nimport NiMessageDots from \"./nexture/ni-message-dots\";\nimport NiMessageFilled from \"./nexture/ni-message-filled\";\nimport NiMessageGrammar from \"./nexture/ni-message-grammar\";\nimport NiMessagePlus from \"./nexture/ni-message-plus\";\nimport NiMessages from \"./nexture/ni-messages\";\nimport NiMicrophone from \"./nexture/ni-microphone\";\nimport NiMinus from \"./nexture/ni-minus\";\nimport NiMinusFull from \"./nexture/ni-minus-full\";\nimport NiMinusSquare from \"./nexture/ni-minus-square\";\nimport NiMoney from \"./nexture/ni-money\";\nimport NiMoneyBag from \"./nexture/ni-money-bag\";\nimport NiMoon from \"./nexture/ni-moon\";\nimport NiMountain from \"./nexture/ni-mountain\";\nimport NiMouse from \"./nexture/ni-mouse\";\nimport NiMove from \"./nexture/ni-move\";\nimport NiMusic from \"./nexture/ni-music\";\nimport NiNetwork from \"./nexture/ni-network\";\nimport NiNext from \"./nexture/ni-next\";\nimport NiOxygen from \"./nexture/ni-oxygen\";\nimport NiPaintBucket from \"./nexture/ni-paint-bucket\";\nimport NiPaintRoller from \"./nexture/ni-paint-roller\";\nimport NiPalette from \"./nexture/ni-palette\";\nimport NiPaperclip from \"./nexture/ni-paperclip\";\nimport NiParentheses from \"./nexture/ni-parentheses\";\nimport NiPath from \"./nexture/ni-path\";\nimport NiPause from \"./nexture/ni-pause\";\nimport NiPen from \"./nexture/ni-pen\";\nimport NiPenSquare from \"./nexture/ni-pen-square\";\nimport NiPercent from \"./nexture/ni-percent\";\nimport NiPhone from \"./nexture/ni-phone\";\nimport NiPhoneHandset from \"./nexture/ni-phone-handset\";\nimport NiPhoneHandsetCheck from \"./nexture/ni-phone-handset-check\";\nimport NiPhoneHandsetOff from \"./nexture/ni-phone-handset-off\";\nimport NiPhoneHandsetOn from \"./nexture/ni-phone-handset-on\";\nimport NiPin from \"./nexture/ni-pin\";\nimport NiPinCheck from \"./nexture/ni-pin-check\";\nimport NiPinCross from \"./nexture/ni-pin-cross\";\nimport NiPinPlus from \"./nexture/ni-pin-plus\";\nimport NiPine from \"./nexture/ni-pine\";\nimport NiPivot from \"./nexture/ni-pivot\";\nimport NiPlane from \"./nexture/ni-plane\";\nimport NiPlay from \"./nexture/ni-play\";\nimport NiPlug from \"./nexture/ni-plug\";\nimport NiPlus from \"./nexture/ni-plus\";\nimport NiPlusFull from \"./nexture/ni-plus-full\";\nimport NiPlusSquare from \"./nexture/ni-plus-square\";\nimport NiPolitics from \"./nexture/ni-politics\";\nimport NiPound from \"./nexture/ni-pound\";\nimport NiPoundSquare from \"./nexture/ni-pound-square\";\nimport NiPower from \"./nexture/ni-power\";\nimport NiPresentation from \"./nexture/ni-presentation\";\nimport NiPrevious from \"./nexture/ni-previous\";\nimport NiPrinter from \"./nexture/ni-printer\";\nimport NiProgress from \"./nexture/ni-progress\";\nimport NiPullRequestClosed from \"./nexture/ni-pull-request-closed\";\nimport NiPullRequestDraft from \"./nexture/ni-pull-request-draft\";\nimport NiPullRequestMerged from \"./nexture/ni-pull-request-merged\";\nimport NiPullRequestOpen from \"./nexture/ni-pull-request-open\";\nimport NiPulse from \"./nexture/ni-pulse\";\nimport NiPushPin from \"./nexture/ni-push-pin\";\nimport NiPushPinLeft from \"./nexture/ni-push-pin-left\";\nimport NiPushPinRight from \"./nexture/ni-push-pin-right\";\nimport NiPuzzle from \"./nexture/ni-puzzle\";\nimport NiQuestionHexagon from \"./nexture/ni-question-hexagon\";\nimport NiRadio from \"./nexture/ni-radio\";\nimport NiRankFour from \"./nexture/ni-rank-four\";\nimport NiRankOne from \"./nexture/ni-rank-one\";\nimport NiRankThree from \"./nexture/ni-rank-three\";\nimport NiRankTwo from \"./nexture/ni-rank-two\";\nimport NiReceipt from \"./nexture/ni-receipt\";\nimport NiRecord from \"./nexture/ni-record\";\nimport NiRefresh from \"./nexture/ni-refresh\";\nimport NiReligion from \"./nexture/ni-religion\";\nimport NiResearch from \"./nexture/ni-research\";\nimport NiRevenue from \"./nexture/ni-revenue\";\nimport NiReverseLeft from \"./nexture/ni-reverse-left\";\nimport NiReverseRight from \"./nexture/ni-reverse-right\";\nimport NiRobot from \"./nexture/ni-robot\";\nimport NiRocket from \"./nexture/ni-rocket\";\nimport NiRouter from \"./nexture/ni-router\";\nimport NiRows from \"./nexture/ni-rows\";\nimport NiSafe from \"./nexture/ni-safe\";\nimport NiScale from \"./nexture/ni-scale\";\nimport NiScalpel from \"./nexture/ni-scalpel\";\nimport NiScissors from \"./nexture/ni-scissors\";\nimport NiScreen from \"./nexture/ni-screen\";\nimport NiScriptSub from \"./nexture/ni-script-sub\";\nimport NiScriptSuper from \"./nexture/ni-script-super\";\nimport NiSdCard from \"./nexture/ni-sd-card\";\nimport NiSearch from \"./nexture/ni-search\";\nimport NiSelect from \"./nexture/ni-select\";\nimport NiSendDown from \"./nexture/ni-send-down\";\nimport NiSendDownLeft from \"./nexture/ni-send-down-left\";\nimport NiSendDownRight from \"./nexture/ni-send-down-right\";\nimport NiSendLeft from \"./nexture/ni-send-left\";\nimport NiSendRight from \"./nexture/ni-send-right\";\nimport NiSendUp from \"./nexture/ni-send-up\";\nimport NiSendUpLeft from \"./nexture/ni-send-up-left\";\nimport NiSendUpRight from \"./nexture/ni-send-up-right\";\nimport NiServer from \"./nexture/ni-server\";\nimport NiSettings from \"./nexture/ni-settings\";\nimport NiShare from \"./nexture/ni-share\";\nimport NiShield from \"./nexture/ni-shield\";\nimport NiShieldCheck from \"./nexture/ni-shield-check\";\nimport NiShieldCross from \"./nexture/ni-shield-cross\";\nimport NiShrinkFull from \"./nexture/ni-shrink-full\";\nimport NiShrinkSquare from \"./nexture/ni-shrink-square\";\nimport NiShuffle from \"./nexture/ni-shuffle\";\nimport NiSign from \"./nexture/ni-sign\";\nimport NiSignalLeftRight from \"./nexture/ni-signal-left-right\";\nimport NiSignalRight from \"./nexture/ni-signal-right\";\nimport NiSignalUp from \"./nexture/ni-signal-up\";\nimport NiSigns from \"./nexture/ni-signs\";\nimport NiSlashHexagon from \"./nexture/ni-slash-hexagon\";\nimport NiSlider from \"./nexture/ni-slider\";\nimport NiSnow from \"./nexture/ni-snow\";\nimport NiSoundCross from \"./nexture/ni-sound-cross\";\nimport NiSoundOff from \"./nexture/ni-sound-off\";\nimport NiSoundOn from \"./nexture/ni-sound-on\";\nimport NiSoundPlus from \"./nexture/ni-sound-plus\";\nimport NiSparkle from \"./nexture/ni-sparkle\";\nimport NiSpinner from \"./nexture/ni-spinner\";\nimport NiSquare from \"./nexture/ni-square\";\nimport NiSquircle from \"./nexture/ni-squircle\";\nimport NiStar from \"./nexture/ni-star\";\nimport NiStars from \"./nexture/ni-stars\";\nimport NiStomach from \"./nexture/ni-stomach\";\nimport NiStopwatch from \"./nexture/ni-stopwatch\";\nimport NiStore from \"./nexture/ni-store\";\nimport NiStructure from \"./nexture/ni-structure\";\nimport NiSum from \"./nexture/ni-sum\";\nimport NiSun from \"./nexture/ni-sun\";\nimport NiSwap from \"./nexture/ni-swap\";\nimport NiSwitch from \"./nexture/ni-switch\";\nimport NiTablet from \"./nexture/ni-tablet\";\nimport NiTag from \"./nexture/ni-tag\";\nimport NiTelescope from \"./nexture/ni-telescope\";\nimport NiTemperature from \"./nexture/ni-temperature\";\nimport NiTent from \"./nexture/ni-tent\";\nimport NiTerminal from \"./nexture/ni-terminal\";\nimport NiTextBold from \"./nexture/ni-text-bold\";\nimport NiTextCenter from \"./nexture/ni-text-center\";\nimport NiTextFont from \"./nexture/ni-text-font\";\nimport NiTextItalic from \"./nexture/ni-text-italic\";\nimport NiTextJustify from \"./nexture/ni-text-justify\";\nimport NiTextLeft from \"./nexture/ni-text-left\";\nimport NiTextQuote from \"./nexture/ni-text-quote\";\nimport NiTextRight from \"./nexture/ni-text-right\";\nimport NiTextStrikethrough from \"./nexture/ni-text-strikethrough\";\nimport NiTextUnderline from \"./nexture/ni-text-underline\";\nimport NiTextarea from \"./nexture/ni-textarea\";\nimport NiTicket from \"./nexture/ni-ticket\";\nimport NiTimeline from \"./nexture/ni-timeline\";\nimport NiTooth from \"./nexture/ni-tooth\";\nimport NiToyBoat from \"./nexture/ni-toy-boat\";\nimport NiToySky from \"./nexture/ni-toy-sky\";\nimport NiToyStacking from \"./nexture/ni-toy-stacking\";\nimport NiTrade from \"./nexture/ni-trade\";\nimport NiTree from \"./nexture/ni-tree\";\nimport NiTrendDown from \"./nexture/ni-trend-down\";\nimport NiTrendUp from \"./nexture/ni-trend-up\";\nimport NiTriangleDown from \"./nexture/ni-triangle-down\";\nimport NiTriangleLeft from \"./nexture/ni-triangle-left\";\nimport NiTriangleRight from \"./nexture/ni-triangle-right\";\nimport NiTriangleUp from \"./nexture/ni-triangle-up\";\nimport NiTrophy from \"./nexture/ni-trophy\";\nimport NiTruck from \"./nexture/ni-truck\";\nimport NiTubes from \"./nexture/ni-tubes\";\nimport NiUngroup from \"./nexture/ni-ungroup\";\nimport NiUnlike from \"./nexture/ni-unlike\";\nimport NiUnlock from \"./nexture/ni-unlock\";\nimport NiUploadCloud from \"./nexture/ni-upload-cloud\";\nimport NiUser from \"./nexture/ni-user\";\nimport NiUserCheck from \"./nexture/ni-user-check\";\nimport NiUserCross from \"./nexture/ni-user-cross\";\nimport NiUserMinus from \"./nexture/ni-user-minus\";\nimport NiUserPlus from \"./nexture/ni-user-plus\";\nimport NiUsers from \"./nexture/ni-users\";\nimport NiVerified from \"./nexture/ni-verified\";\nimport NiWallet from \"./nexture/ni-wallet\";\nimport NiWalletCrypto from \"./nexture/ni-wallet-crypto\";\nimport NiWatch from \"./nexture/ni-watch\";\nimport NiWeightScale from \"./nexture/ni-weight-scale\";\nimport NiWind from \"./nexture/ni-wind\";\nimport NiWorld from \"./nexture/ni-world\";\nimport NiZoomIn from \"./nexture/ni-zoom-in\";\nimport NiZoomOut from \"./nexture/ni-zoom-out\";\n\nexport const IconMap = {\n NiAI,\n NiAirBalloon,\n NiAnchor,\n NiAnnouncement,\n NiAntenna,\n NiArchiveCheck,\n NiArchive,\n NiArrowCircleLeft,\n NiArrowCircleRight,\n NiArrowDownLeftSquare,\n NiArrowDownLeft,\n NiArrowDownRightSquare,\n NiArrowDownRight,\n NiArrowDownSquare,\n NiArrowDown,\n NiArrowHistory,\n NiArrowInDown,\n NiArrowInLeft,\n NiArrowInRight,\n NiArrowInUp,\n NiArrowLeftRight,\n NiArrowLeftSquare,\n NiArrowLeft,\n NiArrowOutDown,\n NiArrowOutLeft,\n NiArrowOutRight,\n NiArrowOutUp,\n NiArrowRightSquare,\n NiArrowRight,\n NiArrowUpDown,\n NiArrowUpLeftSquare,\n NiArrowUpLeft,\n NiArrowUpRightSquare,\n NiArrowUpRight,\n NiArrowUpSquare,\n NiArrowUp,\n NiAt,\n NiBadgeCheck,\n NiBadge,\n NiBag,\n NiBandAid,\n NiBarcode,\n NiBasket,\n NiBatteryCharging,\n NiBatteryEmpty,\n NiBatteryFull,\n NiBellInactive,\n NiBell,\n NiBinEmpty,\n NiBinFull,\n NiBloodCells,\n NiBluetooth,\n NiBook,\n NiBookmarkSingle,\n NiBookmark,\n NiBraces,\n NiBrackets,\n NiBrain,\n NiBrainCircuit,\n NiBriefcase,\n NiBrushArtSquare,\n NiBrushArt,\n NiBrush,\n NiBug,\n NiBuilding,\n NiBulbOff,\n NiBulbOn,\n NiButton,\n NiButtonGroup,\n NiButtonLarge,\n NiCake,\n NiCalendar,\n NiCalendarClock,\n NiCamera,\n NiCar,\n NiCartArrow,\n NiCartCross,\n NiCartEmpty,\n NiCartMinus,\n NiCartPlus,\n NiCatalog,\n NiCellsPlus,\n NiCells,\n NiChange,\n NiChartBar,\n NiChartCandleSticks,\n NiChartFunnel,\n NiChartHeatmap,\n NiChartLineBar,\n NiChartLine,\n NiChartPie,\n NiChartPolar,\n NiChartRadar,\n NiChartScatter,\n NiCheckSquare,\n NiCheck,\n NiCheckFull,\n NiChef,\n NiChevronDownSmall,\n NiChevronDown,\n NiChevronLeftRightReverseSmall,\n NiChevronLeftRightSmall,\n NiChevronLeftSmall,\n NiChevronLeft,\n NiChevronRightSmall,\n NiChevronRight,\n NiChevronUpDownReverseSmall,\n NiChevronUpDownSmall,\n NiChevronUpSmall,\n NiChevronUp,\n NiCholesterol,\n NiCircle,\n NiClipboard,\n NiClock,\n NiCloudPartly,\n NiCloudRain,\n NiCloudSnow,\n NiCloudThunder,\n NiCloud,\n NiCode,\n NiCoffee,\n NiCoin,\n NiCollapse,\n NiCollapseIn,\n NiCols,\n NiCompass,\n NiController,\n NiCopyright,\n NiCpu,\n NiCreditCard,\n NiCrop,\n NiCrossHexagon,\n NiCrossSquare,\n NiCross,\n NiCrossFull,\n NiCrosshair,\n NiCrown,\n NiCursor,\n NiDashboard,\n NiDatabase,\n NiDevops,\n NiDiagram,\n NiDice,\n NiDirectory,\n NiDocumentArchive,\n NiDocumentChart,\n NiDocumentCheck,\n NiDocumentCode,\n NiDocumentCross,\n NiDocumentFull,\n NiDocumentImage,\n NiDocumentMinus,\n NiDocumentNumber,\n NiDocumentPlus,\n NiDocumentVideo,\n NiDollarSquare,\n NiDollar,\n NiDotsSquare,\n NiDownloadCloud,\n NiDragHorizontal,\n NiDragVertical,\n NiDrink,\n NiDrop,\n NiDuplicate,\n NiEllipsisHorizontal,\n NiEllipsisVertical,\n NiEmailOpen,\n NiEmail,\n NiEndDownSmall,\n NiEndLeftSmall,\n NiEndRightSmall,\n NiEndUpSmall,\n NiEnterDown,\n NiEnterLeft,\n NiEnterReverseDown,\n NiEnterReverseLeft,\n NiEnterReverseRight,\n NiEnterReverseUp,\n NiEnterRight,\n NiEnterUp,\n NiEquals,\n NiEqualsFull,\n NiEraser,\n NiEuroSquare,\n NiEuro,\n NiExclamationHexagon,\n NiExclamationSquare,\n NiExpandOut,\n NiExpandSquare,\n NiExpandFull,\n NiExpand,\n NiExternal,\n NiEyeClose,\n NiEyeInactive,\n NiEyeOpen,\n NiFaceFrownMore,\n NiFaceFrown,\n NiFaceNeutral,\n NiFaceSmileMore,\n NiFaceSmile,\n NiFemale,\n NiFilterCross,\n NiFilterMinus,\n NiFilterPlus,\n NiFilter,\n NiFingerprint,\n NiFire,\n NiFirstAid,\n NiFitness,\n NiFlag,\n NiFlash,\n NiFlask,\n NiFloppyDisk,\n NiFolderCheck,\n NiFolderCross,\n NiFolderMinus,\n NiFolderPlus,\n NiFolder,\n NiForwardDownSmall,\n NiForwardLeftSmall,\n NiForwardRightSmall,\n NiForwardUpSmall,\n NiGay,\n NiGerm,\n NiGogo,\n NiGold,\n NiGpu,\n NiGroup,\n NiGraduation,\n NiHeadphones,\n NiHeadset,\n NiHeadsetMic,\n NiHealth,\n NiHeart,\n NiHeartRate,\n NiHearts,\n NiHome,\n NiInbox,\n NiInfoSquare,\n NiInjection,\n NiInput,\n NiIntegration,\n NiInternal,\n NiIv,\n NiJoin,\n NiKey,\n NiKeyboard,\n NiKnobs,\n NiLaptop,\n NiLayout,\n NiLaw,\n NiLike,\n NiLinkBroken,\n NiLink,\n NiListCheck,\n NiListChevronDown,\n NiListCircle,\n NiListCross,\n NiListNumber,\n NiListSquare,\n NiList,\n NiLungs,\n NiLoader,\n NiLock,\n NiLuggage,\n NiMagicWand,\n NiMale,\n NiMap,\n NiMasonary,\n NiMedal,\n NiMenu,\n NiMenuLeft,\n NiMenuRight,\n NiMenuSplitDotReverse,\n NiMenuSplitDot,\n NiMenuSplitReverse,\n NiMenuSplit,\n NiMessageCheck,\n NiMessageCross,\n NiMessageDots,\n NiMessageFilled,\n NiMessageGrammar,\n NiMessagePlus,\n NiMessage,\n NiMessages,\n NiMicrophone,\n NiMinus,\n NiMinusFull,\n NiMinusSquare,\n NiMoneyBag,\n NiMoney,\n NiMoon,\n NiMountain,\n NiMouse,\n NiMove,\n NiMusic,\n NiNetwork,\n NiNext,\n NiOxygen,\n NiPaintBucket,\n NiPaintRoller,\n NiPalette,\n NiPaperclip,\n NiParentheses,\n NiPath,\n NiPause,\n NiPenSquare,\n NiPen,\n NiPercent,\n NiPhoneHandsetCheck,\n NiPhoneHandsetOff,\n NiPhoneHandsetOn,\n NiPhoneHandset,\n NiPhone,\n NiPinCheck,\n NiPinCross,\n NiPinPlus,\n NiPin,\n NiPine,\n NiPivot,\n NiPlane,\n NiPlay,\n NiPlug,\n NiPlusSquare,\n NiPlus,\n NiPlusFull,\n NiPolitics,\n NiPoundSquare,\n NiPound,\n NiPower,\n NiPresentation,\n NiPrevious,\n NiPrinter,\n NiProgress,\n NiPullRequestClosed,\n NiPullRequestDraft,\n NiPullRequestMerged,\n NiPullRequestOpen,\n NiPulse,\n NiPushPin,\n NiPushPinLeft,\n NiPushPinRight,\n NiPuzzle,\n NiQuestionHexagon,\n NiRankOne,\n NiRankTwo,\n NiRankThree,\n NiRankFour,\n NiRadio,\n NiReceipt,\n NiRecord,\n NiRefresh,\n NiReligion,\n NiResearch,\n NiRevenue,\n NiReverseLeft,\n NiReverseRight,\n NiRobot,\n NiRocket,\n NiRouter,\n NiRows,\n NiSafe,\n NiScale,\n NiScalpel,\n NiScissors,\n NiScreen,\n NiScriptSub,\n NiScriptSuper,\n NiSdCard,\n NiSearch,\n NiSelect,\n NiSendDownLeft,\n NiSendDownRight,\n NiSendDown,\n NiSendLeft,\n NiSendRight,\n NiSendUpLeft,\n NiSendUpRight,\n NiSendUp,\n NiServer,\n NiSettings,\n NiShare,\n NiShieldCheck,\n NiShieldCross,\n NiShield,\n NiShrinkSquare,\n NiShrinkFull,\n NiShuffle,\n NiSign,\n NiSignalLeftRight,\n NiSignalRight,\n NiSignalUp,\n NiSigns,\n NiSlashHexagon,\n NiSlider,\n NiSnow,\n NiSoundCross,\n NiSoundOff,\n NiSoundOn,\n NiSoundPlus,\n NiSparkle,\n NiSpinner,\n NiSquare,\n NiSquircle,\n NiStar,\n NiStars,\n NiStopwatch,\n NiStore,\n NiStomach,\n NiStructure,\n NiSum,\n NiSun,\n NiSwap,\n NiSwitch,\n NiTablet,\n NiTag,\n NiTelescope,\n NiTemperature,\n NiTent,\n NiTerminal,\n NiTextBold,\n NiTextCenter,\n NiTextFont,\n NiTextItalic,\n NiTextJustify,\n NiTextLeft,\n NiTextQuote,\n NiTextRight,\n NiTextStrikethrough,\n NiTextUnderline,\n NiTextarea,\n NiTicket,\n NiTimeline,\n NiTooth,\n NiToyBoat,\n NiToySky,\n NiToyStacking,\n NiTrade,\n NiTree,\n NiTrendDown,\n NiTrendUp,\n NiTriangleDown,\n NiTriangleLeft,\n NiTriangleRight,\n NiTriangleUp,\n NiTrophy,\n NiTruck,\n NiTubes,\n NiUngroup,\n NiUnlike,\n NiUnlock,\n NiUploadCloud,\n NiUserCheck,\n NiUserCross,\n NiUserMinus,\n NiUserPlus,\n NiUser,\n NiUsers,\n NiVerified,\n NiWalletCrypto,\n NiWallet,\n NiWatch,\n NiWeightScale,\n NiWind,\n NiWorld,\n NiZoomIn,\n NiZoomOut,\n};\n\nexport type IconName = keyof typeof IconMap;\nexport type IconSize = \"large\" | \"medium\" | \"small\" | \"tiny\" | number;\nexport type IconVariant = \"outlined\" | \"contained\";\n\nexport type NextureIconsProps = {\n variant?: IconVariant;\n className?: string;\n size?: IconSize;\n strokeWidth?: number;\n oneTone?: boolean;\n};\n\nexport type NextureIconsPropsComponent = NextureIconsProps & {\n icon: IconName;\n};\n\nconst NextureIcons: React.FC<NextureIconsPropsComponent> = ({\n icon,\n size = 20,\n variant = \"outlined\",\n className,\n strokeWidth = 1.5,\n oneTone = false,\n}) => {\n const IconComponent = IconMap[icon];\n if (!IconComponent) {\n console.warn(`Icon \"${icon}\" not found in IconMap.`);\n return null;\n }\n return (\n <IconComponent variant={variant} size={size} className={className} strokeWidth={strokeWidth} oneTone={oneTone} />\n );\n};\n\nexport const sizeHelper = (size: NextureIconsProps[\"size\"]) => {\n if (typeof size === \"number\") {\n return size;\n } else if (size === \"large\") {\n return 24;\n } else if (size === \"small\" || size === \"tiny\") {\n return 16;\n } else {\n return 20;\n }\n};\n\nexport const strokeSizeHelper = (size: number) => {\n if (size === 32) {\n return 1.15;\n } else if (size >= 20) {\n return 1.5;\n } else {\n return 1.75;\n }\n};\n\nexport default NextureIcons;\n","import type { ReactNode } from \"react\";\nimport { Box, Typography } from \"@mui/material\";\n\nimport { NiArchive } from \"../../icons/nexture\";\n\ninterface EmptyStateProps {\n icon?: ReactNode;\n title?: string;\n description?: string;\n /** Grow to fill (and vertically centre within) a flex-column parent — e.g. a dashboard tile. */\n fill?: boolean;\n}\n\n/**\n * The shared \"nothing here yet\" panel.\n *\n * Promoted from the plugins rather than designed here: this 32-line file was identical in four of\n * the ten repos (`timesheets`, `projects`, `legal`, `helpdesk`). \"Empty states look different in\n * every app\" is a complaint no lint rule can answer - only one implementation can - so this is it,\n * and `coreconnect/no-local-empty-state` stops a fifth being written.\n *\n * `description` is defaulted rather than coalesced, so a caller passing `\"\"` gets no description at\n * all. A filtered list showing \"No results\" wants a heading and nothing else.\n */\nexport function EmptyState({\n icon = <NiArchive className=\"text-text-disabled\" size=\"large\" />,\n title = \"No items yet\",\n description = \"Create your first item to get started\",\n fill = false,\n}: EmptyStateProps) {\n return (\n <Box className={`flex flex-col items-center justify-center py-12 text-center ${fill ? \"flex-1\" : \"\"}`}>\n <Box className=\"mb-3\">{icon}</Box>\n <Typography variant=\"body1\" className=\"text-text-secondary\">\n {title}\n </Typography>\n {description ? (\n <Typography variant=\"body2\" className=\"text-text-disabled mt-1\">\n {description}\n </Typography>\n ) : null}\n </Box>\n );\n}\n","import { Dialog as MuiDialog, type DialogProps } from \"@mui/material\";\n\n/**\n * MUI `Dialog` with the scroll-lock + focus-restore overrides plugin surfaces\n * need (AB#4808): MUI's defaults reset the page to top when a dialog opened from\n * below the fold closes. Everything else is the stock `Dialog` — this is the one\n * `components/ui` wrapper that isn't a pure re-export.\n */\nexport function Dialog(props: DialogProps) {\n return <MuiDialog disableScrollLock disableRestoreFocus {...props} />;\n}\n","import { memo, useCallback, useEffect, useId, useRef, useState } from \"react\";\nimport { FilledInput, FormControl, IconButton, InputAdornment, InputLabel } from \"@mui/material\";\n\nimport { NiCross, NiSearch } from \"../../icons/nexture\";\n\ninterface DebouncedSearchInputProps {\n value?: string;\n onChange: (value: string) => void;\n label?: string;\n delay?: number;\n className?: string;\n}\n\n/**\n * Self-contained search input that manages its own typing state.\n * Only calls `onChange` after a debounce, preventing expensive parent re-renders\n * (e.g. DataGrid) on every keystroke.\n *\n * Promoted here from `sales` and `timesheets`, where the file was byte-identical in both and a\n * third search field had been hand-mirrored from it in a shared toolbar. \"Search bars don't look\n * the same\" is not a problem a lint rule can fix - only one implementation can - so this is the\n * implementation, and `coreconnect/no-local-search-input` is the backstop that stops the next\n * plugin writing a fourth.\n *\n * Class composition uses the package's existing join idiom rather than a `cn`/tailwind-merge\n * helper, which keeps `plugin-ui` free of new runtime dependencies. No caller passes a conflicting\n * utility class today, so tailwind-merge's conflict resolution is unexercised; a caller that needs\n * it should override via `sx` instead of racing class order.\n */\nexport const DebouncedSearchInput = memo(function DebouncedSearchInput({\n value = \"\",\n onChange,\n label = \"Search\",\n delay = 400,\n className,\n}: DebouncedSearchInputProps) {\n const [localValue, setLocalValue] = useState(value);\n // Associate the InputLabel with the FilledInput — a bare FormControl+InputLabel+Input\n // doesn't auto-link them (unlike TextField), leaving the label without a `for` target.\n const inputId = useId();\n const onChangeRef = useRef(onChange);\n onChangeRef.current = onChange;\n const lastReportedRef = useRef(value);\n const isFirstRender = useRef(true);\n\n // Sync external value changes (e.g. clear from parent)\n useEffect(() => {\n setLocalValue(value);\n lastReportedRef.current = value;\n }, [value]);\n\n // Debounce: notify parent only after typing pauses (skip initial mount)\n useEffect(() => {\n if (isFirstRender.current) {\n isFirstRender.current = false;\n return;\n }\n if (localValue === lastReportedRef.current) return;\n const timer = setTimeout(() => {\n lastReportedRef.current = localValue;\n onChangeRef.current(localValue);\n }, delay);\n return () => clearTimeout(timer);\n }, [localValue, delay]);\n\n const handleClear = useCallback(() => {\n setLocalValue(\"\");\n lastReportedRef.current = \"\";\n onChangeRef.current(\"\");\n }, []);\n\n const classes = (...parts: (string | false | undefined)[]) => parts.filter(Boolean).join(\" \");\n\n return (\n <FormControl variant=\"filled\" size=\"medium\" className={classes(\"surface mb-0 w-full\", className)}>\n <InputLabel htmlFor={inputId}>{label}</InputLabel>\n <FilledInput\n id={inputId}\n value={localValue}\n onChange={(e) => setLocalValue(e.target.value)}\n endAdornment={\n <>\n <InputAdornment position=\"end\" className={classes(localValue === \"\" && \"hidden\")}>\n <IconButton edge=\"end\" onClick={handleClear} aria-label=\"Clear search\">\n <NiCross size=\"medium\" className=\"text-text-disabled\" />\n </IconButton>\n </InputAdornment>\n <InputAdornment position=\"end\" className={classes(localValue !== \"\" && \"hidden\")} aria-hidden>\n <IconButton edge=\"end\" disabled tabIndex={-1}>\n <NiSearch size=\"medium\" className=\"text-text-disabled\" />\n </IconButton>\n </InputAdornment>\n </>\n }\n />\n </FormControl>\n );\n});\n","import type { ReactNode } from \"react\";\nimport {\n Button,\n CircularProgress,\n Dialog,\n DialogActions,\n DialogContent,\n DialogContentText,\n DialogTitle,\n} from \"../ui\";\n\nexport interface ConfirmActionLabels {\n title: string;\n description?: ReactNode;\n btnCancel?: string;\n btnConfirm?: string;\n btnLoading?: string;\n}\n\ninterface ConfirmActionDialogProps {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n onConfirm: () => void;\n isLoading?: boolean;\n labels: ConfirmActionLabels;\n icon?: ReactNode;\n confirmVariant?: \"default\" | \"destructive\";\n className?: string;\n /** Optional body content rendered between the description and footer (e.g. a Textarea). */\n children?: ReactNode;\n /** Additional disable condition for the confirm button (e.g. empty required field). */\n disableConfirm?: boolean;\n}\n\n/**\n * Generic action confirmation dialog.\n * Use `labels` to customise title, description and button text.\n * `labels.description` accepts a string or any ReactNode (e.g. JSX with <strong>).\n *\n * Pass `children` to render additional body content (e.g. a Textarea) between the\n * description and the footer. Use `disableConfirm` to conditionally disable the confirm\n * button (e.g. when a required field is empty).\n *\n * For delete confirmations, prefer `ConfirmDeleteDialog` instead.\n */\nexport function ConfirmActionDialog({\n open,\n onOpenChange,\n onConfirm,\n isLoading = false,\n labels,\n icon,\n confirmVariant = \"default\",\n children,\n disableConfirm,\n}: ConfirmActionDialogProps) {\n const description = labels.description ?? \"Are you sure you want to continue?\";\n const btnCancel = labels.btnCancel ?? \"Cancel\";\n const btnConfirm = labels.btnConfirm ?? \"Confirm\";\n const btnLoading = labels.btnLoading ?? \"Processing...\";\n\n const handleClose = () => {\n if (!isLoading) onOpenChange(false);\n };\n\n return (\n <Dialog open={open} onClose={handleClose} maxWidth=\"xs\" fullWidth role=\"alertdialog\">\n <DialogTitle className=\"flex items-center gap-2\">\n {icon}\n {labels.title}\n </DialogTitle>\n <DialogContent>\n {typeof description === \"string\" ? (\n <DialogContentText>{description}</DialogContentText>\n ) : (\n <DialogContentText component=\"div\">{description}</DialogContentText>\n )}\n {children}\n </DialogContent>\n <DialogActions>\n <Button onClick={handleClose} disabled={isLoading}>\n {btnCancel}\n </Button>\n <Button\n variant=\"contained\"\n color={confirmVariant === \"destructive\" ? \"error\" : \"primary\"}\n onClick={onConfirm}\n disabled={isLoading || disableConfirm}\n >\n {isLoading ? (\n <>\n <CircularProgress size={16} color=\"inherit\" className=\"mr-2\" />\n {btnLoading}\n </>\n ) : (\n btnConfirm\n )}\n </Button>\n </DialogActions>\n </Dialog>\n );\n}\n","import type { ReactNode } from \"react\";\nimport {\n Box,\n Button,\n CircularProgress,\n Dialog,\n DialogActions,\n DialogContent,\n DialogContentText,\n DialogTitle,\n} from \"../ui\";\nimport { NiBinEmpty } from \"../../icons\";\n\nexport interface ConfirmDeleteLabels {\n title?: string;\n description?: ReactNode;\n btnCancel?: string;\n btnConfirm?: string;\n btnDeleting?: string;\n}\n\ninterface ConfirmDeleteDialogProps {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n onConfirm: () => void;\n isDeleting: boolean;\n labels?: ConfirmDeleteLabels;\n className?: string;\n}\n\n/**\n * Generic delete confirmation dialog.\n * Use `labels` to customise title, description and button text.\n * `labels.description` accepts a string or any ReactNode (e.g. JSX with <strong>).\n */\nexport function ConfirmDeleteDialog({\n open,\n onOpenChange,\n onConfirm,\n isDeleting,\n labels,\n}: ConfirmDeleteDialogProps) {\n const title = labels?.title ?? \"Delete?\";\n const description = labels?.description ?? \"Are you sure? This action cannot be undone.\";\n const btnCancel = labels?.btnCancel ?? \"Cancel\";\n const btnConfirm = labels?.btnConfirm ?? \"Delete\";\n const btnDeleting = labels?.btnDeleting ?? \"Deleting...\";\n\n const handleClose = () => {\n if (!isDeleting) onOpenChange(false);\n };\n\n return (\n <Dialog open={open} onClose={handleClose} maxWidth=\"xs\" fullWidth role=\"alertdialog\">\n <DialogTitle className=\"flex items-center gap-2\">\n <Box component=\"span\" sx={{ color: \"error.main\", display: \"inline-flex\" }}>\n <NiBinEmpty size=\"medium\" />\n </Box>\n {title}\n </DialogTitle>\n <DialogContent>\n {typeof description === \"string\" ? (\n <DialogContentText>{description}</DialogContentText>\n ) : (\n <DialogContentText component=\"div\">{description}</DialogContentText>\n )}\n </DialogContent>\n <DialogActions>\n <Button onClick={handleClose} disabled={isDeleting}>\n {btnCancel}\n </Button>\n <Button variant=\"contained\" color=\"error\" onClick={onConfirm} disabled={isDeleting}>\n {isDeleting ? (\n <>\n <CircularProgress size={16} color=\"inherit\" className=\"mr-2\" />\n {btnDeleting}\n </>\n ) : (\n btnConfirm\n )}\n </Button>\n </DialogActions>\n </Dialog>\n );\n}\n","/**\n * Dialog-state hooks shipped alongside the shared confirmation dialogs\n * (`ConfirmActionDialog` / `ConfirmDeleteDialog`), so a plugin's lifted\n * `hooks/common/utility/useConfirmDialog` alias resolves here instead of each\n * plugin re-porting the same open/close/reason boilerplate from the monolith.\n *\n * Pure React state — no host bridge needed; safe in mock/dev and inside the host.\n */\nimport { useCallback, useState } from \"react\";\n\n/**\n * Boolean open/close state for a confirm dialog. Replaces the\n * `const [xOpen, setXOpen] = useState(false)` + inline open/close arrows that detail pages\n * repeated per dialog.\n */\nexport function useConfirmDialog() {\n const [isOpen, setIsOpen] = useState(false);\n const open = useCallback(() => setIsOpen(true), []);\n const close = useCallback(() => setIsOpen(false), []);\n return { isOpen, open, close };\n}\n\n/**\n * Confirm dialog carrying a target payload (e.g. the row being acted on). `isOpen` is derived\n * from whether a target is set; `close()` clears it. Replaces the\n * `const [xTarget, setXTarget] = useState<T | null>(null)` pattern in the list pages.\n */\nexport function useTargetDialog<T>() {\n const [target, setTarget] = useState<T | null>(null);\n const open = useCallback((value: T) => setTarget(value), []);\n const close = useCallback(() => setTarget(null), []);\n return { target, isOpen: target !== null, open, close };\n}\n\n/**\n * Confirm dialog with a free-text reason (e.g. reject/dispute). `close()` resets the reason so\n * the next open starts blank. Replaces the per-page `xOpen` + `reason` state + reset handler.\n */\nexport function useReasonDialog() {\n const [isOpen, setIsOpen] = useState(false);\n const [reason, setReason] = useState(\"\");\n const open = useCallback(() => setIsOpen(true), []);\n const close = useCallback(() => {\n setIsOpen(false);\n setReason(\"\");\n }, []);\n return { isOpen, reason, setReason, open, close };\n}\n","/**\n * Host toast bridge — the ergonomic surface a lifted monolith `useToast()`\n * expects, shipped alongside the other shared composites so a plugin's\n * `components/shared/*` (and its `use-toast` alias) resolve here.\n *\n * PlatformReact pages can't import the host's toaster (it's an app-global\n * singleton, not in the host module registry), so these dispatch the\n * `ethisys:toast` CustomEvent the host's toast listener (`useExtensionToast`)\n * forwards to its toaster — the same wire contract as the lower-level\n * `@ethisyscore/components-react` `showToast` primitive (kept self-contained\n * here to avoid a load-bearing cross-package import for a one-line dispatch).\n * Outside a host that wired the listener (mock/dev), every call is a harmless\n * no-op, so a plugin keeps its lifted `showSuccessToast(...)` call sites.\n */\ntype ToastVariant = \"default\" | \"success\" | \"error\" | \"warning\";\n\nfunction dispatchToast(title: string, description: string | undefined, variant: ToastVariant): void {\n if (typeof window === \"undefined\" || title.length === 0) {\n return;\n }\n window.dispatchEvent(new CustomEvent(\"ethisys:toast\", { detail: { title, description, variant } }));\n}\n\nexport function showSuccessToast(title: string, description?: string): void {\n dispatchToast(title, description, \"success\");\n}\n\nexport function showErrorToast(title: string, description?: string): void {\n dispatchToast(title, description, \"error\");\n}\n\nexport function showWarningToast(title: string, description?: string): void {\n dispatchToast(title, description, \"warning\");\n}\n\n/**\n * Options accepted by the `toast(...)` returned from {@link useToast}. Both `title`\n * and `description` are optional, but at least one must be set — `toast({ description })`\n * shows the description as the message (mirroring the monolith); `toast({})` is a no-op.\n */\nexport interface ToastOptions {\n /** Primary line. Falls back to {@link ToastOptions.description} when absent/empty. */\n title?: string;\n /** Secondary line — or the message itself when no `title` is given. */\n description?: string;\n /** `\"destructive\"`/`\"error\"` → error; `\"warning\"`/`\"success\"` map directly; else default. */\n variant?: string;\n}\n\n/**\n * Hook mirror of the monolith's `useToast()` surface, so a lifted\n * `const { toast } = useToast()` (and `showSuccessToast`/`showErrorToast`) keeps\n * working unchanged once `@/hooks/common/utility/use-toast` is aliased here.\n */\nexport function useToast() {\n return {\n toast: (opts: ToastOptions): void => {\n const variant: ToastVariant =\n opts.variant === \"destructive\" || opts.variant === \"error\"\n ? \"error\"\n : opts.variant === \"warning\"\n ? \"warning\"\n : opts.variant === \"success\"\n ? \"success\"\n : \"default\";\n // `title` is the primary line; fall back to `description` so `toast({ description })`\n // shows it (mirroring the monolith) instead of silently no-op'ing. Both absent → no-op.\n if (opts.title) {\n dispatchToast(opts.title, opts.description, variant);\n } else if (opts.description) {\n dispatchToast(opts.description, undefined, variant);\n }\n },\n showSuccessToast,\n showErrorToast,\n showWarningToast,\n };\n}\n"]}
1
+ {"version":3,"sources":["../../../src/icons/nexture/ni-archive.tsx","../../../src/icons/nexture/ni-bin-empty.tsx","../../../src/icons/nexture/ni-cross.tsx","../../../src/icons/nexture/ni-search.tsx","../../../src/icons/nexture-icons.tsx","../../../src/components/shared/EmptyState.tsx","../../../src/components/shared/InProgressBanner.tsx","../../../src/components/ui/Dialog.tsx","../../../src/components/ui/DebouncedSearchInput.tsx","../../../src/components/shared/ConfirmActionDialog.tsx","../../../src/components/shared/ConfirmDeleteDialog.tsx","../../../src/components/shared/useConfirmDialog.ts","../../../src/components/shared/toast.ts"],"names":["jsxs","jsx","Box","Typography","Alert","AlertTitle","LinearProgress","MuiDialog","memo","DebouncedSearchInput","useState","useId","useRef","useEffect","useCallback","FormControl","InputLabel","FilledInput","Fragment","InputAdornment","IconButton","DialogTitle","DialogContent","DialogContentText","DialogActions","Button","CircularProgress"],"mappings":"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","file":"index.cjs","sourcesContent":["import { NextureIconsProps, sizeHelper, strokeSizeHelper } from \"../nexture-icons\";\n\nexport default function NiArchive({\n className,\n variant = \"outlined\",\n size = \"medium\",\n oneTone = false,\n}: NextureIconsProps) {\n const iconSize = sizeHelper(size);\n const iconStrokeWidth = strokeSizeHelper(iconSize);\n\n if (variant === \"outlined\") {\n return (\n <svg\n width={iconSize}\n height={iconSize}\n className={className}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M22 7V5.71496C22 4.17371 20.8321 2.88321 19.2985 2.72985L17.9702 2.59702C14 2.2 10 2.2 6.02978 2.59702L4.70149 2.72985C3.16788 2.88321 2 4.17371 2 5.71496V7C2 8.10457 2.89543 9 4 9H20C21.1046 9 22 8.10457 22 7Z\"\n stroke=\"currentColor\"\n strokeWidth={iconStrokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M4.53333 9.5L4.4768 9.74619C3.83435 12.544 3.8494 15.4543 4.51997 18.2455V18.2455C4.85389 19.6354 5.95655 20.7108 7.35451 21.009V21.009C10.4171 21.6623 13.5829 21.6623 16.6455 21.009V21.009C18.0434 20.7108 19.1461 19.6354 19.48 18.2455V18.2455C20.1506 15.4543 20.1657 12.544 19.5232 9.74618L19.4667 9.5\"\n stroke=\"currentColor\"\n strokeWidth={iconStrokeWidth}\n strokeLinecap=\"round\"\n />\n <path\n opacity={oneTone ? 1 : 0.6}\n d=\"M14.0945 13.9189C14.3504 13.9701 14.5682 14.1365 14.6849 14.3698V14.3698C14.8833 14.7665 14.8833 15.2335 14.6849 15.6302V15.6302C14.5682 15.8635 14.3504 16.0299 14.0945 16.0811L13.8853 16.1229C12.6408 16.3718 11.3592 16.3718 10.1147 16.1229L9.90546 16.0811C9.64963 16.0299 9.43176 15.8635 9.31508 15.6302V15.6302C9.11673 15.2335 9.11673 14.7665 9.31508 14.3698V14.3698C9.43176 14.1365 9.64963 13.9701 9.90546 13.9189L10.1147 13.8771C11.3592 13.6282 12.6408 13.6282 13.8853 13.8771L14.0945 13.9189Z\"\n stroke=\"currentColor\"\n strokeWidth={iconStrokeWidth}\n />\n </svg>\n );\n } else {\n return (\n <svg\n width={iconSize}\n height={iconSize}\n className={className}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M5.95508 1.85031C9.9749 1.44833 14.0251 1.44833 18.0449 1.85031L19.373 1.98312C21.2897 2.17479 22.7495 3.78844 22.75 5.71457V6.99972C22.75 7.86931 22.345 8.64326 21.7148 9.14719C21.1107 7.71812 19.7022 6.75088 18.1025 6.7507H5.89746C4.29778 6.75078 2.8884 7.71735 2.28418 9.14621C1.65469 8.64226 1.25 7.86881 1.25 6.99972V5.71457C1.2505 3.78844 2.71028 2.17479 4.62695 1.98312L5.95508 1.85031Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M18.1028 8.25C19.2525 8.25003 20.2447 9.05777 20.4778 10.1836C20.9988 12.7045 20.957 15.3105 20.3557 17.8135L20.2092 18.4219C19.8078 20.0924 18.4823 21.3837 16.802 21.7422C13.6364 22.4174 10.3641 22.4174 7.19849 21.7422C5.51812 21.3837 4.19273 20.0925 3.79126 18.4219L3.64478 17.8135C3.04349 15.3105 3.00171 12.7045 3.52271 10.1836C3.75577 9.05776 4.74793 8.25 5.89771 8.25H18.1028ZM14.0334 13.1406C12.6922 12.8724 11.3103 12.8725 9.96899 13.1406L9.75903 13.1826C9.27649 13.2792 8.86496 13.5931 8.64477 14.0332C8.34086 14.641 8.34086 15.357 8.64477 15.9648C8.86494 16.405 9.27646 16.7188 9.75903 16.8154L9.96899 16.8574C11.3103 17.1255 12.6922 17.1257 14.0334 16.8574L14.2424 16.8154C14.7249 16.7187 15.1366 16.4049 15.3567 15.9648C15.6604 15.3571 15.6604 14.6409 15.3567 14.0332C15.1366 13.5931 14.7249 13.2793 14.2424 13.1826L14.0334 13.1406Z\"\n fill=\"currentColor\"\n />\n <path\n opacity={oneTone ? 0 : 0.4}\n d=\"M9.96866 13.1406C11.3101 12.8724 12.6917 12.8723 14.0331 13.1406L14.2421 13.1826C14.7247 13.2792 15.1362 13.593 15.3563 14.0332C15.6602 14.641 15.6602 15.357 15.3563 15.9648C15.1362 16.405 14.7247 16.7188 14.2421 16.8154L14.0331 16.8574C12.6917 17.1257 11.3101 17.1256 9.96866 16.8574L9.7587 16.8154C9.27607 16.7188 8.86459 16.4051 8.64444 15.9648C8.34052 15.357 8.34052 14.641 8.64444 14.0332C8.86461 13.593 9.27611 13.2792 9.7587 13.1826L9.96866 13.1406Z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n }\n}\n","import { NextureIconsProps, sizeHelper, strokeSizeHelper } from \"../nexture-icons\";\n\nexport default function NiBinEmpty({ className, variant = \"outlined\", size = \"medium\" }: NextureIconsProps) {\n const iconSize = sizeHelper(size);\n const iconStrokeWidth = strokeSizeHelper(iconSize);\n if (variant === \"outlined\") {\n return (\n <svg\n width={iconSize}\n height={iconSize}\n className={className}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M6 6L5.48806 9.58357C5.16413 11.8511 5.14395 14.1516 5.42806 16.4245L5.51601 17.1281C5.80316 19.4253 7.56538 21.2609 9.84894 21.6415V21.6415C11.2732 21.8789 12.7268 21.8789 14.1511 21.6415V21.6415C16.4346 21.2609 18.1968 19.4253 18.484 17.1281L18.5719 16.4245C18.856 14.1516 18.8359 11.8511 18.5119 9.58357L18 6\"\n stroke=\"currentColor\"\n strokeWidth={iconStrokeWidth}\n strokeLinecap=\"round\"\n />\n <path\n d=\"M15 5L14.9062 4.43717C14.7408 3.4451 14.6582 2.94906 14.3711 2.60286C14.2462 2.45218 14.0957 2.32469 13.9265 2.22623C13.5378 2 13.035 2 12.0292 2L11.9708 2C10.965 2 10.4622 2 10.0735 2.22623C9.90431 2.32469 9.75381 2.45219 9.62888 2.60286C9.34182 2.94906 9.25915 3.4451 9.09381 4.43717L9 5\"\n stroke=\"currentColor\"\n strokeWidth={iconStrokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M20 6L18.2017 5.77522C14.0833 5.26041 9.91673 5.26041 5.79826 5.77522L4 6\"\n stroke=\"currentColor\"\n strokeWidth={iconStrokeWidth}\n strokeLinecap=\"round\"\n />\n </svg>\n );\n } else {\n return (\n <svg\n width={iconSize}\n height={iconSize}\n className={className}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M9.74018 5.12304C9.6721 5.53152 9.28536 5.80813 8.8769 5.74023C8.46843 5.67215 8.19181 5.28541 8.25971 4.87695L8.35444 4.31347C8.43472 3.83178 8.50246 3.41913 8.59077 3.08593C8.68246 2.74003 8.81179 2.41337 9.0517 2.12402C9.23282 1.90562 9.45102 1.72085 9.69623 1.57812C10.0211 1.38906 10.3644 1.31483 10.7206 1.28125C11.0639 1.24892 11.4822 1.25 11.9706 1.25L12.0292 1.25C12.5177 1.25 12.936 1.24892 13.2792 1.28125C13.6355 1.31483 13.9788 1.38906 14.3037 1.57812C14.5489 1.72085 14.7671 1.90562 14.9482 2.12402C15.1881 2.41337 15.3174 2.74003 15.4091 3.08593C15.4974 3.41913 15.5652 3.83177 15.6455 4.31347L15.7402 4.87695L15.749 4.95312C15.7732 5.33241 15.506 5.6764 15.123 5.74023C14.74 5.80389 14.3763 5.56494 14.2763 5.19824L14.2597 5.12304L14.166 4.56054C14.081 4.05049 14.025 3.71896 13.9589 3.46972C13.8964 3.23378 13.8409 3.13889 13.7939 3.08203C13.7252 2.99916 13.6418 2.92817 13.5488 2.87402C13.4849 2.83695 13.3818 2.79831 13.1386 2.77539C12.8819 2.75121 12.5462 2.75 12.0292 2.75L11.9706 2.75C11.4537 2.75 11.1179 2.75121 10.8613 2.77539C10.6181 2.79831 10.515 2.83695 10.4511 2.87402C10.3581 2.92817 10.2747 2.99916 10.206 3.08203C10.1589 3.13889 10.1035 3.23378 10.041 3.46972C9.97489 3.71896 9.91894 4.05049 9.83393 4.56054L9.74018 5.12304Z\"\n fill=\"currentColor\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M5.94819 5.00114C9.96612 4.51861 14.0279 4.51807 18.0459 5.00016C18.1288 5.01011 18.212 5.02008 18.2949 5.03043L20.0927 5.25504L20.1689 5.26872C20.5391 5.35382 20.792 5.70788 20.7441 6.09293C20.6958 6.47814 20.3633 6.75806 19.9834 6.74918L19.9072 6.7443L18.8447 6.61051L19.2548 9.4777C19.5881 11.8107 19.6086 14.1783 19.3164 16.5168L19.2285 17.2209C18.9001 19.8471 16.8851 21.9459 14.2744 22.381C12.7685 22.632 11.2314 22.632 9.72554 22.381C7.11486 21.9458 5.09978 19.8471 4.77144 17.2209L4.68355 16.5168C4.39132 14.1783 4.41185 11.8107 4.74507 9.4777L5.15425 6.61051L4.09273 6.7443L4.01655 6.74918C3.63657 6.75805 3.30414 6.47813 3.25581 6.09293C3.20471 5.68211 3.49633 5.30642 3.90718 5.25504L5.70503 5.03043C5.78598 5.02032 5.86721 5.01086 5.94819 5.00114Z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n }\n}\n","import { NextureIconsProps, sizeHelper, strokeSizeHelper } from \"../nexture-icons\";\n\nexport default function NiCross({ className, variant = \"outlined\", size = \"medium\" }: NextureIconsProps) {\n const iconSize = sizeHelper(size);\n const iconStrokeWidth = strokeSizeHelper(iconSize);\n\n if (variant === \"outlined\") {\n return (\n <svg\n width={iconSize}\n height={iconSize}\n className={className}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M8.00016 8L12.0001 12M12.0001 12L16 16.0002M12.0001 12L16 8.00015M12.0001 12L8 16.0002\"\n stroke=\"currentColor\"\n strokeWidth={iconStrokeWidth}\n strokeLinecap=\"round\"\n />\n </svg>\n );\n } else {\n return (\n <svg\n width={iconSize}\n height={iconSize}\n className={className}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M15.4698 7.46963C15.7626 7.17684 16.2374 7.17684 16.5303 7.46963C16.8232 7.7625 16.8231 8.23728 16.5303 8.53018L13.0606 11.9999L16.5303 15.4696C16.8232 15.7625 16.8231 16.2373 16.5303 16.5302C16.2557 16.8048 15.821 16.8223 15.5264 16.5819L15.4698 16.5302L12 13.0604L8.53032 16.5302C8.23743 16.8231 7.76267 16.8231 7.46977 16.5302C7.17697 16.2373 7.17691 15.7625 7.46977 15.4696L10.9395 11.9999L7.46977 8.53018L7.41801 8.47354C7.1778 8.17898 7.19527 7.74421 7.46977 7.46963C7.76264 7.17676 8.23742 7.17682 8.53032 7.46963L12 10.9394L15.4698 7.46963Z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n }\n}\n","import { NextureIconsProps, sizeHelper, strokeSizeHelper } from \"../nexture-icons\";\n\nexport default function NiSearch({\n className,\n variant = \"outlined\",\n size = \"medium\",\n oneTone = false,\n}: NextureIconsProps) {\n const iconSize = sizeHelper(size);\n const iconStrokeWidth = strokeSizeHelper(iconSize);\n if (variant === \"outlined\") {\n return (\n <svg\n width={iconSize}\n height={iconSize}\n className={className}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n opacity={oneTone ? 1 : 0.6}\n d=\"M22 22L18.5 18.5\"\n stroke=\"currentColor\"\n strokeWidth={iconStrokeWidth}\n strokeLinecap=\"round\"\n />\n <circle cx=\"11.5\" cy=\"11.5\" r=\"9.5\" stroke=\"currentColor\" strokeWidth={iconStrokeWidth} />\n </svg>\n );\n } else {\n return (\n <svg\n width={iconSize}\n height={iconSize}\n className={className}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n opacity={oneTone ? 1 : 0.4}\n d=\"M19.0303 17.9697C18.7374 17.6768 18.2627 17.6768 17.9698 17.9697C17.6769 18.2626 17.6769 18.7373 17.9698 19.0302L21.4698 22.5302C21.7627 22.8231 22.2374 22.8231 22.5303 22.5302C22.8232 22.2373 22.8232 21.7626 22.5303 21.4697L19.0303 17.9697Z\"\n fill=\"currentColor\"\n />\n <path\n d=\"M11.5 1.25C17.1609 1.25 21.75 5.83908 21.75 11.5C21.75 17.1609 17.1609 21.75 11.5 21.75C5.83908 21.75 1.25 17.1609 1.25 11.5C1.25 5.83908 5.83908 1.25 11.5 1.25Z\"\n fill=\"currentColor\"\n />\n </svg>\n );\n }\n}\n","import NiAI from \"./nexture/ni-ai\";\nimport NiAirBalloon from \"./nexture/ni-air-balloon\";\nimport NiAnchor from \"./nexture/ni-anchor\";\nimport NiAnnouncement from \"./nexture/ni-announcement\";\nimport NiAntenna from \"./nexture/ni-antenna\";\nimport NiArchive from \"./nexture/ni-archive\";\nimport NiArchiveCheck from \"./nexture/ni-archive-check\";\nimport NiArrowCircleLeft from \"./nexture/ni-arrow-circle-left\";\nimport NiArrowCircleRight from \"./nexture/ni-arrow-circle-right\";\nimport NiArrowDown from \"./nexture/ni-arrow-down\";\nimport NiArrowDownLeft from \"./nexture/ni-arrow-down-left\";\nimport NiArrowDownLeftSquare from \"./nexture/ni-arrow-down-left-square\";\nimport NiArrowDownRight from \"./nexture/ni-arrow-down-right\";\nimport NiArrowDownRightSquare from \"./nexture/ni-arrow-down-right-square\";\nimport NiArrowDownSquare from \"./nexture/ni-arrow-down-square\";\nimport NiArrowHistory from \"./nexture/ni-arrow-history\";\nimport NiArrowInDown from \"./nexture/ni-arrow-in-down\";\nimport NiArrowInLeft from \"./nexture/ni-arrow-in-left\";\nimport NiArrowInRight from \"./nexture/ni-arrow-in-right\";\nimport NiArrowInUp from \"./nexture/ni-arrow-in-up\";\nimport NiArrowLeft from \"./nexture/ni-arrow-left\";\nimport NiArrowLeftRight from \"./nexture/ni-arrow-left-right\";\nimport NiArrowLeftSquare from \"./nexture/ni-arrow-left-square\";\nimport NiArrowOutDown from \"./nexture/ni-arrow-out-down\";\nimport NiArrowOutLeft from \"./nexture/ni-arrow-out-left\";\nimport NiArrowOutRight from \"./nexture/ni-arrow-out-right\";\nimport NiArrowOutUp from \"./nexture/ni-arrow-out-up\";\nimport NiArrowRight from \"./nexture/ni-arrow-right\";\nimport NiArrowRightSquare from \"./nexture/ni-arrow-right-square\";\nimport NiArrowUp from \"./nexture/ni-arrow-up\";\nimport NiArrowUpDown from \"./nexture/ni-arrow-up-down\";\nimport NiArrowUpLeft from \"./nexture/ni-arrow-up-left\";\nimport NiArrowUpLeftSquare from \"./nexture/ni-arrow-up-left-square\";\nimport NiArrowUpRight from \"./nexture/ni-arrow-up-right\";\nimport NiArrowUpRightSquare from \"./nexture/ni-arrow-up-right-square\";\nimport NiArrowUpSquare from \"./nexture/ni-arrow-up-square\";\nimport NiAt from \"./nexture/ni-at\";\nimport NiBadge from \"./nexture/ni-badge\";\nimport NiBadgeCheck from \"./nexture/ni-badge-check\";\nimport NiBag from \"./nexture/ni-bag\";\nimport NiBandAid from \"./nexture/ni-band-aid\";\nimport NiBarcode from \"./nexture/ni-barcode\";\nimport NiBasket from \"./nexture/ni-basket\";\nimport NiBatteryCharging from \"./nexture/ni-battery-charging\";\nimport NiBatteryEmpty from \"./nexture/ni-battery-empty\";\nimport NiBatteryFull from \"./nexture/ni-battery-full\";\nimport NiBell from \"./nexture/ni-bell\";\nimport NiBellInactive from \"./nexture/ni-bell-inactive\";\nimport NiBinEmpty from \"./nexture/ni-bin-empty\";\nimport NiBinFull from \"./nexture/ni-bin-full\";\nimport NiBloodCells from \"./nexture/ni-blood-cells\";\nimport NiBluetooth from \"./nexture/ni-bluetooth\";\nimport NiBook from \"./nexture/ni-book\";\nimport NiBookmark from \"./nexture/ni-bookmark\";\nimport NiBookmarkSingle from \"./nexture/ni-bookmark-single\";\nimport NiBraces from \"./nexture/ni-braces\";\nimport NiBrackets from \"./nexture/ni-brackets\";\nimport NiBrain from \"./nexture/ni-brain\";\nimport NiBrainCircuit from \"./nexture/ni-brain-circuit\";\nimport NiBriefcase from \"./nexture/ni-briefcase\";\nimport NiBrush from \"./nexture/ni-brush\";\nimport NiBrushArt from \"./nexture/ni-brush-art\";\nimport NiBrushArtSquare from \"./nexture/ni-brush-art-square\";\nimport NiBug from \"./nexture/ni-bug\";\nimport NiBuilding from \"./nexture/ni-building\";\nimport NiBulbOff from \"./nexture/ni-bulb-off\";\nimport NiBulbOn from \"./nexture/ni-bulb-on\";\nimport NiButton from \"./nexture/ni-button\";\nimport NiButtonGroup from \"./nexture/ni-button-group\";\nimport NiButtonLarge from \"./nexture/ni-button-large\";\nimport NiCake from \"./nexture/ni-cake\";\nimport NiCalendar from \"./nexture/ni-calendar\";\nimport NiCalendarClock from \"./nexture/ni-calendar-clock\";\nimport NiCamera from \"./nexture/ni-camera\";\nimport NiCar from \"./nexture/ni-car\";\nimport NiCartArrow from \"./nexture/ni-cart-arrow\";\nimport NiCartCross from \"./nexture/ni-cart-cross\";\nimport NiCartEmpty from \"./nexture/ni-cart-empty\";\nimport NiCartMinus from \"./nexture/ni-cart-minus\";\nimport NiCartPlus from \"./nexture/ni-cart-plus\";\nimport NiCatalog from \"./nexture/ni-catalog\";\nimport NiCells from \"./nexture/ni-cells\";\nimport NiCellsPlus from \"./nexture/ni-cells-plus\";\nimport NiChange from \"./nexture/ni-change\";\nimport NiChartBar from \"./nexture/ni-chart-bar\";\nimport NiChartCandleSticks from \"./nexture/ni-chart-candle-sticks\";\nimport NiChartFunnel from \"./nexture/ni-chart-funnel\";\nimport NiChartHeatmap from \"./nexture/ni-chart-heatmap\";\nimport NiChartLine from \"./nexture/ni-chart-line\";\nimport NiChartLineBar from \"./nexture/ni-chart-line-bar\";\nimport NiChartPie from \"./nexture/ni-chart-pie\";\nimport NiChartPolar from \"./nexture/ni-chart-polar\";\nimport NiChartRadar from \"./nexture/ni-chart-radar\";\nimport NiChartScatter from \"./nexture/ni-chart-scatter\";\nimport NiCheck from \"./nexture/ni-check\";\nimport NiCheckFull from \"./nexture/ni-check-full\";\nimport NiCheckSquare from \"./nexture/ni-check-square\";\nimport NiChef from \"./nexture/ni-chef\";\nimport NiChevronDown from \"./nexture/ni-chevron-down\";\nimport NiChevronDownSmall from \"./nexture/ni-chevron-down-small\";\nimport NiChevronLeft from \"./nexture/ni-chevron-left\";\nimport NiChevronLeftRightReverseSmall from \"./nexture/ni-chevron-left-right-reverse-small\";\nimport NiChevronLeftRightSmall from \"./nexture/ni-chevron-left-right-small\";\nimport NiChevronLeftSmall from \"./nexture/ni-chevron-left-small\";\nimport NiChevronRight from \"./nexture/ni-chevron-right\";\nimport NiChevronRightSmall from \"./nexture/ni-chevron-right-small\";\nimport NiChevronUp from \"./nexture/ni-chevron-up\";\nimport NiChevronUpDownReverseSmall from \"./nexture/ni-chevron-up-down-reverse-small\";\nimport NiChevronUpDownSmall from \"./nexture/ni-chevron-up-down-small\";\nimport NiChevronUpSmall from \"./nexture/ni-chevron-up-small\";\nimport NiCholesterol from \"./nexture/ni-cholesterol\";\nimport NiCircle from \"./nexture/ni-circle\";\nimport NiClipboard from \"./nexture/ni-clipboard\";\nimport NiClock from \"./nexture/ni-clock\";\nimport NiCloud from \"./nexture/ni-cloud\";\nimport NiCloudPartly from \"./nexture/ni-cloud-partly\";\nimport NiCloudRain from \"./nexture/ni-cloud-rain\";\nimport NiCloudSnow from \"./nexture/ni-cloud-snow\";\nimport NiCloudThunder from \"./nexture/ni-cloud-thunder\";\nimport NiCode from \"./nexture/ni-code\";\nimport NiCoffee from \"./nexture/ni-coffee\";\nimport NiCoin from \"./nexture/ni-coin\";\nimport NiCollapse from \"./nexture/ni-collapse\";\nimport NiCollapseIn from \"./nexture/ni-collapse-in\";\nimport NiCols from \"./nexture/ni-cols\";\nimport NiCompass from \"./nexture/ni-compass\";\nimport NiController from \"./nexture/ni-controller\";\nimport NiCopyright from \"./nexture/ni-copyright\";\nimport NiCpu from \"./nexture/ni-cpu\";\nimport NiCreditCard from \"./nexture/ni-credit-card\";\nimport NiCrop from \"./nexture/ni-crop\";\nimport NiCross from \"./nexture/ni-cross\";\nimport NiCrossFull from \"./nexture/ni-cross-full\";\nimport NiCrossHexagon from \"./nexture/ni-cross-hexagon\";\nimport NiCrossSquare from \"./nexture/ni-cross-square\";\nimport NiCrosshair from \"./nexture/ni-crosshair\";\nimport NiCrown from \"./nexture/ni-crown\";\nimport NiCursor from \"./nexture/ni-cursor\";\nimport NiDashboard from \"./nexture/ni-dashboard\";\nimport NiDatabase from \"./nexture/ni-database\";\nimport NiDevops from \"./nexture/ni-devops\";\nimport NiDiagram from \"./nexture/ni-diagram\";\nimport NiDice from \"./nexture/ni-dice\";\nimport NiDirectory from \"./nexture/ni-directory\";\nimport NiDocumentArchive from \"./nexture/ni-document-archive\";\nimport NiDocumentChart from \"./nexture/ni-document-chart\";\nimport NiDocumentCheck from \"./nexture/ni-document-check\";\nimport NiDocumentCode from \"./nexture/ni-document-code\";\nimport NiDocumentCross from \"./nexture/ni-document-cross\";\nimport NiDocumentFull from \"./nexture/ni-document-full\";\nimport NiDocumentImage from \"./nexture/ni-document-image\";\nimport NiDocumentMinus from \"./nexture/ni-document-minus\";\nimport NiDocumentNumber from \"./nexture/ni-document-number\";\nimport NiDocumentPlus from \"./nexture/ni-document-plus\";\nimport NiDocumentVideo from \"./nexture/ni-document-video\";\nimport NiDollar from \"./nexture/ni-dollar\";\nimport NiDollarSquare from \"./nexture/ni-dollar-square\";\nimport NiDotsSquare from \"./nexture/ni-dots-square\";\nimport NiDownloadCloud from \"./nexture/ni-download-cloud\";\nimport NiDragHorizontal from \"./nexture/ni-drag-horizontal\";\nimport NiDragVertical from \"./nexture/ni-drag-vertical\";\nimport NiDrink from \"./nexture/ni-drink\";\nimport NiDrop from \"./nexture/ni-drop\";\nimport NiDuplicate from \"./nexture/ni-duplicate\";\nimport NiEllipsisHorizontal from \"./nexture/ni-ellipsis-horizontal\";\nimport NiEllipsisVertical from \"./nexture/ni-ellipsis-vertical\";\nimport NiEmail from \"./nexture/ni-email\";\nimport NiEmailOpen from \"./nexture/ni-email-open\";\nimport NiEndDownSmall from \"./nexture/ni-end-down-small\";\nimport NiEndLeftSmall from \"./nexture/ni-end-left-small\";\nimport NiEndRightSmall from \"./nexture/ni-end-right-small\";\nimport NiEndUpSmall from \"./nexture/ni-end-up-small\";\nimport NiEnterDown from \"./nexture/ni-enter-down\";\nimport NiEnterLeft from \"./nexture/ni-enter-left\";\nimport NiEnterReverseDown from \"./nexture/ni-enter-reverse-down\";\nimport NiEnterReverseLeft from \"./nexture/ni-enter-reverse-left\";\nimport NiEnterReverseRight from \"./nexture/ni-enter-reverse-right\";\nimport NiEnterReverseUp from \"./nexture/ni-enter-reverse-up\";\nimport NiEnterRight from \"./nexture/ni-enter-right\";\nimport NiEnterUp from \"./nexture/ni-enter-up\";\nimport NiEquals from \"./nexture/ni-equals\";\nimport NiEqualsFull from \"./nexture/ni-equals-full\";\nimport NiEraser from \"./nexture/ni-eraser\";\nimport NiEuro from \"./nexture/ni-euro\";\nimport NiEuroSquare from \"./nexture/ni-euro-square\";\nimport NiExclamationHexagon from \"./nexture/ni-exclamation-hexagon\";\nimport NiExclamationSquare from \"./nexture/ni-exclamation-square\";\nimport NiExpand from \"./nexture/ni-expand\";\nimport NiExpandFull from \"./nexture/ni-expand-full\";\nimport NiExpandOut from \"./nexture/ni-expand-out\";\nimport NiExpandSquare from \"./nexture/ni-expand-square\";\nimport NiExternal from \"./nexture/ni-external\";\nimport NiEyeClose from \"./nexture/ni-eye-close\";\nimport NiEyeInactive from \"./nexture/ni-eye-inactive\";\nimport NiEyeOpen from \"./nexture/ni-eye-open\";\nimport NiFaceFrown from \"./nexture/ni-face-frown\";\nimport NiFaceFrownMore from \"./nexture/ni-face-frown-more\";\nimport NiFaceNeutral from \"./nexture/ni-face-neutral\";\nimport NiFaceSmile from \"./nexture/ni-face-smile\";\nimport NiFaceSmileMore from \"./nexture/ni-face-smile-more\";\nimport NiFemale from \"./nexture/ni-female\";\nimport NiFilter from \"./nexture/ni-filter\";\nimport NiFilterCross from \"./nexture/ni-filter-cross\";\nimport NiFilterMinus from \"./nexture/ni-filter-minus\";\nimport NiFilterPlus from \"./nexture/ni-filter-plus\";\nimport NiFingerprint from \"./nexture/ni-fingerprint\";\nimport NiFire from \"./nexture/ni-fire\";\nimport NiFirstAid from \"./nexture/ni-first-aid\";\nimport NiFitness from \"./nexture/ni-fitness\";\nimport NiFlag from \"./nexture/ni-flag\";\nimport NiFlash from \"./nexture/ni-flash\";\nimport NiFlask from \"./nexture/ni-flask\";\nimport NiFloppyDisk from \"./nexture/ni-floppy-disk\";\nimport NiFolder from \"./nexture/ni-folder\";\nimport NiFolderCheck from \"./nexture/ni-folder-check\";\nimport NiFolderCross from \"./nexture/ni-folder-cross\";\nimport NiFolderMinus from \"./nexture/ni-folder-minus\";\nimport NiFolderPlus from \"./nexture/ni-folder-plus\";\nimport NiForwardDownSmall from \"./nexture/ni-forward-down-small\";\nimport NiForwardLeftSmall from \"./nexture/ni-forward-left-small\";\nimport NiForwardRightSmall from \"./nexture/ni-forward-right-small\";\nimport NiForwardUpSmall from \"./nexture/ni-forward-up-small\";\nimport NiGay from \"./nexture/ni-gay\";\nimport NiGerm from \"./nexture/ni-germ\";\nimport NiGogo from \"./nexture/ni-gogo\";\nimport NiGold from \"./nexture/ni-gold\";\nimport NiGpu from \"./nexture/ni-gpu\";\nimport NiGraduation from \"./nexture/ni-graduation\";\nimport NiGroup from \"./nexture/ni-group\";\nimport NiHeadphones from \"./nexture/ni-headphones\";\nimport NiHeadset from \"./nexture/ni-headset\";\nimport NiHeadsetMic from \"./nexture/ni-headset-mic\";\nimport NiHealth from \"./nexture/ni-health\";\nimport NiHeart from \"./nexture/ni-heart\";\nimport NiHeartRate from \"./nexture/ni-heart-rate\";\nimport NiHearts from \"./nexture/ni-hearts\";\nimport NiHome from \"./nexture/ni-home\";\nimport NiInbox from \"./nexture/ni-inbox\";\nimport NiInfoSquare from \"./nexture/ni-info-square\";\nimport NiInjection from \"./nexture/ni-injection\";\nimport NiInput from \"./nexture/ni-input\";\nimport NiIntegration from \"./nexture/ni-integration\";\nimport NiInternal from \"./nexture/ni-internal\";\nimport NiIv from \"./nexture/ni-iv\";\nimport NiJoin from \"./nexture/ni-join\";\nimport NiKey from \"./nexture/ni-key\";\nimport NiKeyboard from \"./nexture/ni-keyboard\";\nimport NiKnobs from \"./nexture/ni-knobs\";\nimport NiLaptop from \"./nexture/ni-laptop\";\nimport NiLaw from \"./nexture/ni-law\";\nimport NiLayout from \"./nexture/ni-layout\";\nimport NiLike from \"./nexture/ni-like\";\nimport NiLink from \"./nexture/ni-link\";\nimport NiLinkBroken from \"./nexture/ni-link-broken\";\nimport NiList from \"./nexture/ni-list\";\nimport NiListCheck from \"./nexture/ni-list-check\";\nimport NiListChevronDown from \"./nexture/ni-list-chevron-down\";\nimport NiListCircle from \"./nexture/ni-list-circle\";\nimport NiListCross from \"./nexture/ni-list-cross\";\nimport NiListNumber from \"./nexture/ni-list-number\";\nimport NiListSquare from \"./nexture/ni-list-square\";\nimport NiLoader from \"./nexture/ni-loader\";\nimport NiLock from \"./nexture/ni-lock\";\nimport NiLuggage from \"./nexture/ni-luggage\";\nimport NiLungs from \"./nexture/ni-lungs\";\nimport NiMagicWand from \"./nexture/ni-magic-wand\";\nimport NiMale from \"./nexture/ni-male\";\nimport NiMap from \"./nexture/ni-map\";\nimport NiMasonary from \"./nexture/ni-masonary\";\nimport NiMedal from \"./nexture/ni-medal\";\nimport NiMenu from \"./nexture/ni-menu\";\nimport NiMenuLeft from \"./nexture/ni-menu-left\";\nimport NiMenuRight from \"./nexture/ni-menu-right\";\nimport NiMenuSplit from \"./nexture/ni-menu-split\";\nimport NiMenuSplitDot from \"./nexture/ni-menu-split-dot\";\nimport NiMenuSplitDotReverse from \"./nexture/ni-menu-split-dot-reverse\";\nimport NiMenuSplitReverse from \"./nexture/ni-menu-split-reverse\";\nimport NiMessage from \"./nexture/ni-message\";\nimport NiMessageCheck from \"./nexture/ni-message-check\";\nimport NiMessageCross from \"./nexture/ni-message-cross\";\nimport NiMessageDots from \"./nexture/ni-message-dots\";\nimport NiMessageFilled from \"./nexture/ni-message-filled\";\nimport NiMessageGrammar from \"./nexture/ni-message-grammar\";\nimport NiMessagePlus from \"./nexture/ni-message-plus\";\nimport NiMessages from \"./nexture/ni-messages\";\nimport NiMicrophone from \"./nexture/ni-microphone\";\nimport NiMinus from \"./nexture/ni-minus\";\nimport NiMinusFull from \"./nexture/ni-minus-full\";\nimport NiMinusSquare from \"./nexture/ni-minus-square\";\nimport NiMoney from \"./nexture/ni-money\";\nimport NiMoneyBag from \"./nexture/ni-money-bag\";\nimport NiMoon from \"./nexture/ni-moon\";\nimport NiMountain from \"./nexture/ni-mountain\";\nimport NiMouse from \"./nexture/ni-mouse\";\nimport NiMove from \"./nexture/ni-move\";\nimport NiMusic from \"./nexture/ni-music\";\nimport NiNetwork from \"./nexture/ni-network\";\nimport NiNext from \"./nexture/ni-next\";\nimport NiOxygen from \"./nexture/ni-oxygen\";\nimport NiPaintBucket from \"./nexture/ni-paint-bucket\";\nimport NiPaintRoller from \"./nexture/ni-paint-roller\";\nimport NiPalette from \"./nexture/ni-palette\";\nimport NiPaperclip from \"./nexture/ni-paperclip\";\nimport NiParentheses from \"./nexture/ni-parentheses\";\nimport NiPath from \"./nexture/ni-path\";\nimport NiPause from \"./nexture/ni-pause\";\nimport NiPen from \"./nexture/ni-pen\";\nimport NiPenSquare from \"./nexture/ni-pen-square\";\nimport NiPercent from \"./nexture/ni-percent\";\nimport NiPhone from \"./nexture/ni-phone\";\nimport NiPhoneHandset from \"./nexture/ni-phone-handset\";\nimport NiPhoneHandsetCheck from \"./nexture/ni-phone-handset-check\";\nimport NiPhoneHandsetOff from \"./nexture/ni-phone-handset-off\";\nimport NiPhoneHandsetOn from \"./nexture/ni-phone-handset-on\";\nimport NiPin from \"./nexture/ni-pin\";\nimport NiPinCheck from \"./nexture/ni-pin-check\";\nimport NiPinCross from \"./nexture/ni-pin-cross\";\nimport NiPinPlus from \"./nexture/ni-pin-plus\";\nimport NiPine from \"./nexture/ni-pine\";\nimport NiPivot from \"./nexture/ni-pivot\";\nimport NiPlane from \"./nexture/ni-plane\";\nimport NiPlay from \"./nexture/ni-play\";\nimport NiPlug from \"./nexture/ni-plug\";\nimport NiPlus from \"./nexture/ni-plus\";\nimport NiPlusFull from \"./nexture/ni-plus-full\";\nimport NiPlusSquare from \"./nexture/ni-plus-square\";\nimport NiPolitics from \"./nexture/ni-politics\";\nimport NiPound from \"./nexture/ni-pound\";\nimport NiPoundSquare from \"./nexture/ni-pound-square\";\nimport NiPower from \"./nexture/ni-power\";\nimport NiPresentation from \"./nexture/ni-presentation\";\nimport NiPrevious from \"./nexture/ni-previous\";\nimport NiPrinter from \"./nexture/ni-printer\";\nimport NiProgress from \"./nexture/ni-progress\";\nimport NiPullRequestClosed from \"./nexture/ni-pull-request-closed\";\nimport NiPullRequestDraft from \"./nexture/ni-pull-request-draft\";\nimport NiPullRequestMerged from \"./nexture/ni-pull-request-merged\";\nimport NiPullRequestOpen from \"./nexture/ni-pull-request-open\";\nimport NiPulse from \"./nexture/ni-pulse\";\nimport NiPushPin from \"./nexture/ni-push-pin\";\nimport NiPushPinLeft from \"./nexture/ni-push-pin-left\";\nimport NiPushPinRight from \"./nexture/ni-push-pin-right\";\nimport NiPuzzle from \"./nexture/ni-puzzle\";\nimport NiQuestionHexagon from \"./nexture/ni-question-hexagon\";\nimport NiRadio from \"./nexture/ni-radio\";\nimport NiRankFour from \"./nexture/ni-rank-four\";\nimport NiRankOne from \"./nexture/ni-rank-one\";\nimport NiRankThree from \"./nexture/ni-rank-three\";\nimport NiRankTwo from \"./nexture/ni-rank-two\";\nimport NiReceipt from \"./nexture/ni-receipt\";\nimport NiRecord from \"./nexture/ni-record\";\nimport NiRefresh from \"./nexture/ni-refresh\";\nimport NiReligion from \"./nexture/ni-religion\";\nimport NiResearch from \"./nexture/ni-research\";\nimport NiRevenue from \"./nexture/ni-revenue\";\nimport NiReverseLeft from \"./nexture/ni-reverse-left\";\nimport NiReverseRight from \"./nexture/ni-reverse-right\";\nimport NiRobot from \"./nexture/ni-robot\";\nimport NiRocket from \"./nexture/ni-rocket\";\nimport NiRouter from \"./nexture/ni-router\";\nimport NiRows from \"./nexture/ni-rows\";\nimport NiSafe from \"./nexture/ni-safe\";\nimport NiScale from \"./nexture/ni-scale\";\nimport NiScalpel from \"./nexture/ni-scalpel\";\nimport NiScissors from \"./nexture/ni-scissors\";\nimport NiScreen from \"./nexture/ni-screen\";\nimport NiScriptSub from \"./nexture/ni-script-sub\";\nimport NiScriptSuper from \"./nexture/ni-script-super\";\nimport NiSdCard from \"./nexture/ni-sd-card\";\nimport NiSearch from \"./nexture/ni-search\";\nimport NiSelect from \"./nexture/ni-select\";\nimport NiSendDown from \"./nexture/ni-send-down\";\nimport NiSendDownLeft from \"./nexture/ni-send-down-left\";\nimport NiSendDownRight from \"./nexture/ni-send-down-right\";\nimport NiSendLeft from \"./nexture/ni-send-left\";\nimport NiSendRight from \"./nexture/ni-send-right\";\nimport NiSendUp from \"./nexture/ni-send-up\";\nimport NiSendUpLeft from \"./nexture/ni-send-up-left\";\nimport NiSendUpRight from \"./nexture/ni-send-up-right\";\nimport NiServer from \"./nexture/ni-server\";\nimport NiSettings from \"./nexture/ni-settings\";\nimport NiShare from \"./nexture/ni-share\";\nimport NiShield from \"./nexture/ni-shield\";\nimport NiShieldCheck from \"./nexture/ni-shield-check\";\nimport NiShieldCross from \"./nexture/ni-shield-cross\";\nimport NiShrinkFull from \"./nexture/ni-shrink-full\";\nimport NiShrinkSquare from \"./nexture/ni-shrink-square\";\nimport NiShuffle from \"./nexture/ni-shuffle\";\nimport NiSign from \"./nexture/ni-sign\";\nimport NiSignalLeftRight from \"./nexture/ni-signal-left-right\";\nimport NiSignalRight from \"./nexture/ni-signal-right\";\nimport NiSignalUp from \"./nexture/ni-signal-up\";\nimport NiSigns from \"./nexture/ni-signs\";\nimport NiSlashHexagon from \"./nexture/ni-slash-hexagon\";\nimport NiSlider from \"./nexture/ni-slider\";\nimport NiSnow from \"./nexture/ni-snow\";\nimport NiSoundCross from \"./nexture/ni-sound-cross\";\nimport NiSoundOff from \"./nexture/ni-sound-off\";\nimport NiSoundOn from \"./nexture/ni-sound-on\";\nimport NiSoundPlus from \"./nexture/ni-sound-plus\";\nimport NiSparkle from \"./nexture/ni-sparkle\";\nimport NiSpinner from \"./nexture/ni-spinner\";\nimport NiSquare from \"./nexture/ni-square\";\nimport NiSquircle from \"./nexture/ni-squircle\";\nimport NiStar from \"./nexture/ni-star\";\nimport NiStars from \"./nexture/ni-stars\";\nimport NiStomach from \"./nexture/ni-stomach\";\nimport NiStopwatch from \"./nexture/ni-stopwatch\";\nimport NiStore from \"./nexture/ni-store\";\nimport NiStructure from \"./nexture/ni-structure\";\nimport NiSum from \"./nexture/ni-sum\";\nimport NiSun from \"./nexture/ni-sun\";\nimport NiSwap from \"./nexture/ni-swap\";\nimport NiSwitch from \"./nexture/ni-switch\";\nimport NiTablet from \"./nexture/ni-tablet\";\nimport NiTag from \"./nexture/ni-tag\";\nimport NiTelescope from \"./nexture/ni-telescope\";\nimport NiTemperature from \"./nexture/ni-temperature\";\nimport NiTent from \"./nexture/ni-tent\";\nimport NiTerminal from \"./nexture/ni-terminal\";\nimport NiTextBold from \"./nexture/ni-text-bold\";\nimport NiTextCenter from \"./nexture/ni-text-center\";\nimport NiTextFont from \"./nexture/ni-text-font\";\nimport NiTextItalic from \"./nexture/ni-text-italic\";\nimport NiTextJustify from \"./nexture/ni-text-justify\";\nimport NiTextLeft from \"./nexture/ni-text-left\";\nimport NiTextQuote from \"./nexture/ni-text-quote\";\nimport NiTextRight from \"./nexture/ni-text-right\";\nimport NiTextStrikethrough from \"./nexture/ni-text-strikethrough\";\nimport NiTextUnderline from \"./nexture/ni-text-underline\";\nimport NiTextarea from \"./nexture/ni-textarea\";\nimport NiTicket from \"./nexture/ni-ticket\";\nimport NiTimeline from \"./nexture/ni-timeline\";\nimport NiTooth from \"./nexture/ni-tooth\";\nimport NiToyBoat from \"./nexture/ni-toy-boat\";\nimport NiToySky from \"./nexture/ni-toy-sky\";\nimport NiToyStacking from \"./nexture/ni-toy-stacking\";\nimport NiTrade from \"./nexture/ni-trade\";\nimport NiTree from \"./nexture/ni-tree\";\nimport NiTrendDown from \"./nexture/ni-trend-down\";\nimport NiTrendUp from \"./nexture/ni-trend-up\";\nimport NiTriangleDown from \"./nexture/ni-triangle-down\";\nimport NiTriangleLeft from \"./nexture/ni-triangle-left\";\nimport NiTriangleRight from \"./nexture/ni-triangle-right\";\nimport NiTriangleUp from \"./nexture/ni-triangle-up\";\nimport NiTrophy from \"./nexture/ni-trophy\";\nimport NiTruck from \"./nexture/ni-truck\";\nimport NiTubes from \"./nexture/ni-tubes\";\nimport NiUngroup from \"./nexture/ni-ungroup\";\nimport NiUnlike from \"./nexture/ni-unlike\";\nimport NiUnlock from \"./nexture/ni-unlock\";\nimport NiUploadCloud from \"./nexture/ni-upload-cloud\";\nimport NiUser from \"./nexture/ni-user\";\nimport NiUserCheck from \"./nexture/ni-user-check\";\nimport NiUserCross from \"./nexture/ni-user-cross\";\nimport NiUserMinus from \"./nexture/ni-user-minus\";\nimport NiUserPlus from \"./nexture/ni-user-plus\";\nimport NiUsers from \"./nexture/ni-users\";\nimport NiVerified from \"./nexture/ni-verified\";\nimport NiWallet from \"./nexture/ni-wallet\";\nimport NiWalletCrypto from \"./nexture/ni-wallet-crypto\";\nimport NiWatch from \"./nexture/ni-watch\";\nimport NiWeightScale from \"./nexture/ni-weight-scale\";\nimport NiWind from \"./nexture/ni-wind\";\nimport NiWorld from \"./nexture/ni-world\";\nimport NiZoomIn from \"./nexture/ni-zoom-in\";\nimport NiZoomOut from \"./nexture/ni-zoom-out\";\n\nexport const IconMap = {\n NiAI,\n NiAirBalloon,\n NiAnchor,\n NiAnnouncement,\n NiAntenna,\n NiArchiveCheck,\n NiArchive,\n NiArrowCircleLeft,\n NiArrowCircleRight,\n NiArrowDownLeftSquare,\n NiArrowDownLeft,\n NiArrowDownRightSquare,\n NiArrowDownRight,\n NiArrowDownSquare,\n NiArrowDown,\n NiArrowHistory,\n NiArrowInDown,\n NiArrowInLeft,\n NiArrowInRight,\n NiArrowInUp,\n NiArrowLeftRight,\n NiArrowLeftSquare,\n NiArrowLeft,\n NiArrowOutDown,\n NiArrowOutLeft,\n NiArrowOutRight,\n NiArrowOutUp,\n NiArrowRightSquare,\n NiArrowRight,\n NiArrowUpDown,\n NiArrowUpLeftSquare,\n NiArrowUpLeft,\n NiArrowUpRightSquare,\n NiArrowUpRight,\n NiArrowUpSquare,\n NiArrowUp,\n NiAt,\n NiBadgeCheck,\n NiBadge,\n NiBag,\n NiBandAid,\n NiBarcode,\n NiBasket,\n NiBatteryCharging,\n NiBatteryEmpty,\n NiBatteryFull,\n NiBellInactive,\n NiBell,\n NiBinEmpty,\n NiBinFull,\n NiBloodCells,\n NiBluetooth,\n NiBook,\n NiBookmarkSingle,\n NiBookmark,\n NiBraces,\n NiBrackets,\n NiBrain,\n NiBrainCircuit,\n NiBriefcase,\n NiBrushArtSquare,\n NiBrushArt,\n NiBrush,\n NiBug,\n NiBuilding,\n NiBulbOff,\n NiBulbOn,\n NiButton,\n NiButtonGroup,\n NiButtonLarge,\n NiCake,\n NiCalendar,\n NiCalendarClock,\n NiCamera,\n NiCar,\n NiCartArrow,\n NiCartCross,\n NiCartEmpty,\n NiCartMinus,\n NiCartPlus,\n NiCatalog,\n NiCellsPlus,\n NiCells,\n NiChange,\n NiChartBar,\n NiChartCandleSticks,\n NiChartFunnel,\n NiChartHeatmap,\n NiChartLineBar,\n NiChartLine,\n NiChartPie,\n NiChartPolar,\n NiChartRadar,\n NiChartScatter,\n NiCheckSquare,\n NiCheck,\n NiCheckFull,\n NiChef,\n NiChevronDownSmall,\n NiChevronDown,\n NiChevronLeftRightReverseSmall,\n NiChevronLeftRightSmall,\n NiChevronLeftSmall,\n NiChevronLeft,\n NiChevronRightSmall,\n NiChevronRight,\n NiChevronUpDownReverseSmall,\n NiChevronUpDownSmall,\n NiChevronUpSmall,\n NiChevronUp,\n NiCholesterol,\n NiCircle,\n NiClipboard,\n NiClock,\n NiCloudPartly,\n NiCloudRain,\n NiCloudSnow,\n NiCloudThunder,\n NiCloud,\n NiCode,\n NiCoffee,\n NiCoin,\n NiCollapse,\n NiCollapseIn,\n NiCols,\n NiCompass,\n NiController,\n NiCopyright,\n NiCpu,\n NiCreditCard,\n NiCrop,\n NiCrossHexagon,\n NiCrossSquare,\n NiCross,\n NiCrossFull,\n NiCrosshair,\n NiCrown,\n NiCursor,\n NiDashboard,\n NiDatabase,\n NiDevops,\n NiDiagram,\n NiDice,\n NiDirectory,\n NiDocumentArchive,\n NiDocumentChart,\n NiDocumentCheck,\n NiDocumentCode,\n NiDocumentCross,\n NiDocumentFull,\n NiDocumentImage,\n NiDocumentMinus,\n NiDocumentNumber,\n NiDocumentPlus,\n NiDocumentVideo,\n NiDollarSquare,\n NiDollar,\n NiDotsSquare,\n NiDownloadCloud,\n NiDragHorizontal,\n NiDragVertical,\n NiDrink,\n NiDrop,\n NiDuplicate,\n NiEllipsisHorizontal,\n NiEllipsisVertical,\n NiEmailOpen,\n NiEmail,\n NiEndDownSmall,\n NiEndLeftSmall,\n NiEndRightSmall,\n NiEndUpSmall,\n NiEnterDown,\n NiEnterLeft,\n NiEnterReverseDown,\n NiEnterReverseLeft,\n NiEnterReverseRight,\n NiEnterReverseUp,\n NiEnterRight,\n NiEnterUp,\n NiEquals,\n NiEqualsFull,\n NiEraser,\n NiEuroSquare,\n NiEuro,\n NiExclamationHexagon,\n NiExclamationSquare,\n NiExpandOut,\n NiExpandSquare,\n NiExpandFull,\n NiExpand,\n NiExternal,\n NiEyeClose,\n NiEyeInactive,\n NiEyeOpen,\n NiFaceFrownMore,\n NiFaceFrown,\n NiFaceNeutral,\n NiFaceSmileMore,\n NiFaceSmile,\n NiFemale,\n NiFilterCross,\n NiFilterMinus,\n NiFilterPlus,\n NiFilter,\n NiFingerprint,\n NiFire,\n NiFirstAid,\n NiFitness,\n NiFlag,\n NiFlash,\n NiFlask,\n NiFloppyDisk,\n NiFolderCheck,\n NiFolderCross,\n NiFolderMinus,\n NiFolderPlus,\n NiFolder,\n NiForwardDownSmall,\n NiForwardLeftSmall,\n NiForwardRightSmall,\n NiForwardUpSmall,\n NiGay,\n NiGerm,\n NiGogo,\n NiGold,\n NiGpu,\n NiGroup,\n NiGraduation,\n NiHeadphones,\n NiHeadset,\n NiHeadsetMic,\n NiHealth,\n NiHeart,\n NiHeartRate,\n NiHearts,\n NiHome,\n NiInbox,\n NiInfoSquare,\n NiInjection,\n NiInput,\n NiIntegration,\n NiInternal,\n NiIv,\n NiJoin,\n NiKey,\n NiKeyboard,\n NiKnobs,\n NiLaptop,\n NiLayout,\n NiLaw,\n NiLike,\n NiLinkBroken,\n NiLink,\n NiListCheck,\n NiListChevronDown,\n NiListCircle,\n NiListCross,\n NiListNumber,\n NiListSquare,\n NiList,\n NiLungs,\n NiLoader,\n NiLock,\n NiLuggage,\n NiMagicWand,\n NiMale,\n NiMap,\n NiMasonary,\n NiMedal,\n NiMenu,\n NiMenuLeft,\n NiMenuRight,\n NiMenuSplitDotReverse,\n NiMenuSplitDot,\n NiMenuSplitReverse,\n NiMenuSplit,\n NiMessageCheck,\n NiMessageCross,\n NiMessageDots,\n NiMessageFilled,\n NiMessageGrammar,\n NiMessagePlus,\n NiMessage,\n NiMessages,\n NiMicrophone,\n NiMinus,\n NiMinusFull,\n NiMinusSquare,\n NiMoneyBag,\n NiMoney,\n NiMoon,\n NiMountain,\n NiMouse,\n NiMove,\n NiMusic,\n NiNetwork,\n NiNext,\n NiOxygen,\n NiPaintBucket,\n NiPaintRoller,\n NiPalette,\n NiPaperclip,\n NiParentheses,\n NiPath,\n NiPause,\n NiPenSquare,\n NiPen,\n NiPercent,\n NiPhoneHandsetCheck,\n NiPhoneHandsetOff,\n NiPhoneHandsetOn,\n NiPhoneHandset,\n NiPhone,\n NiPinCheck,\n NiPinCross,\n NiPinPlus,\n NiPin,\n NiPine,\n NiPivot,\n NiPlane,\n NiPlay,\n NiPlug,\n NiPlusSquare,\n NiPlus,\n NiPlusFull,\n NiPolitics,\n NiPoundSquare,\n NiPound,\n NiPower,\n NiPresentation,\n NiPrevious,\n NiPrinter,\n NiProgress,\n NiPullRequestClosed,\n NiPullRequestDraft,\n NiPullRequestMerged,\n NiPullRequestOpen,\n NiPulse,\n NiPushPin,\n NiPushPinLeft,\n NiPushPinRight,\n NiPuzzle,\n NiQuestionHexagon,\n NiRankOne,\n NiRankTwo,\n NiRankThree,\n NiRankFour,\n NiRadio,\n NiReceipt,\n NiRecord,\n NiRefresh,\n NiReligion,\n NiResearch,\n NiRevenue,\n NiReverseLeft,\n NiReverseRight,\n NiRobot,\n NiRocket,\n NiRouter,\n NiRows,\n NiSafe,\n NiScale,\n NiScalpel,\n NiScissors,\n NiScreen,\n NiScriptSub,\n NiScriptSuper,\n NiSdCard,\n NiSearch,\n NiSelect,\n NiSendDownLeft,\n NiSendDownRight,\n NiSendDown,\n NiSendLeft,\n NiSendRight,\n NiSendUpLeft,\n NiSendUpRight,\n NiSendUp,\n NiServer,\n NiSettings,\n NiShare,\n NiShieldCheck,\n NiShieldCross,\n NiShield,\n NiShrinkSquare,\n NiShrinkFull,\n NiShuffle,\n NiSign,\n NiSignalLeftRight,\n NiSignalRight,\n NiSignalUp,\n NiSigns,\n NiSlashHexagon,\n NiSlider,\n NiSnow,\n NiSoundCross,\n NiSoundOff,\n NiSoundOn,\n NiSoundPlus,\n NiSparkle,\n NiSpinner,\n NiSquare,\n NiSquircle,\n NiStar,\n NiStars,\n NiStopwatch,\n NiStore,\n NiStomach,\n NiStructure,\n NiSum,\n NiSun,\n NiSwap,\n NiSwitch,\n NiTablet,\n NiTag,\n NiTelescope,\n NiTemperature,\n NiTent,\n NiTerminal,\n NiTextBold,\n NiTextCenter,\n NiTextFont,\n NiTextItalic,\n NiTextJustify,\n NiTextLeft,\n NiTextQuote,\n NiTextRight,\n NiTextStrikethrough,\n NiTextUnderline,\n NiTextarea,\n NiTicket,\n NiTimeline,\n NiTooth,\n NiToyBoat,\n NiToySky,\n NiToyStacking,\n NiTrade,\n NiTree,\n NiTrendDown,\n NiTrendUp,\n NiTriangleDown,\n NiTriangleLeft,\n NiTriangleRight,\n NiTriangleUp,\n NiTrophy,\n NiTruck,\n NiTubes,\n NiUngroup,\n NiUnlike,\n NiUnlock,\n NiUploadCloud,\n NiUserCheck,\n NiUserCross,\n NiUserMinus,\n NiUserPlus,\n NiUser,\n NiUsers,\n NiVerified,\n NiWalletCrypto,\n NiWallet,\n NiWatch,\n NiWeightScale,\n NiWind,\n NiWorld,\n NiZoomIn,\n NiZoomOut,\n};\n\nexport type IconName = keyof typeof IconMap;\nexport type IconSize = \"large\" | \"medium\" | \"small\" | \"tiny\" | number;\nexport type IconVariant = \"outlined\" | \"contained\";\n\nexport type NextureIconsProps = {\n variant?: IconVariant;\n className?: string;\n size?: IconSize;\n strokeWidth?: number;\n oneTone?: boolean;\n};\n\nexport type NextureIconsPropsComponent = NextureIconsProps & {\n icon: IconName;\n};\n\nconst NextureIcons: React.FC<NextureIconsPropsComponent> = ({\n icon,\n size = 20,\n variant = \"outlined\",\n className,\n strokeWidth = 1.5,\n oneTone = false,\n}) => {\n const IconComponent = IconMap[icon];\n if (!IconComponent) {\n console.warn(`Icon \"${icon}\" not found in IconMap.`);\n return null;\n }\n return (\n <IconComponent variant={variant} size={size} className={className} strokeWidth={strokeWidth} oneTone={oneTone} />\n );\n};\n\nexport const sizeHelper = (size: NextureIconsProps[\"size\"]) => {\n if (typeof size === \"number\") {\n return size;\n } else if (size === \"large\") {\n return 24;\n } else if (size === \"small\" || size === \"tiny\") {\n return 16;\n } else {\n return 20;\n }\n};\n\nexport const strokeSizeHelper = (size: number) => {\n if (size === 32) {\n return 1.15;\n } else if (size >= 20) {\n return 1.5;\n } else {\n return 1.75;\n }\n};\n\nexport default NextureIcons;\n","import type { ReactNode } from \"react\";\nimport { Box, Typography } from \"@mui/material\";\n\nimport { NiArchive } from \"../../icons/nexture\";\n\ninterface EmptyStateProps {\n icon?: ReactNode;\n title?: string;\n description?: string;\n /** Grow to fill (and vertically centre within) a flex-column parent — e.g. a dashboard tile. */\n fill?: boolean;\n}\n\n/**\n * The shared \"nothing here yet\" panel.\n *\n * Promoted from the plugins rather than designed here: this 32-line file was identical in four of\n * the ten repos (`timesheets`, `projects`, `legal`, `helpdesk`). \"Empty states look different in\n * every app\" is a complaint no lint rule can answer - only one implementation can - so this is it,\n * and `coreconnect/no-local-empty-state` stops a fifth being written.\n *\n * `description` is defaulted rather than coalesced, so a caller passing `\"\"` gets no description at\n * all. A filtered list showing \"No results\" wants a heading and nothing else.\n */\nexport function EmptyState({\n icon = <NiArchive className=\"text-text-disabled\" size=\"large\" />,\n title = \"No items yet\",\n description = \"Create your first item to get started\",\n fill = false,\n}: EmptyStateProps) {\n return (\n <Box className={`flex flex-col items-center justify-center py-12 text-center ${fill ? \"flex-1\" : \"\"}`}>\n <Box className=\"mb-3\">{icon}</Box>\n <Typography variant=\"body1\" className=\"text-text-secondary\">\n {title}\n </Typography>\n {description ? (\n <Typography variant=\"body2\" className=\"text-text-disabled mt-1\">\n {description}\n </Typography>\n ) : null}\n </Box>\n );\n}\n","import type { ReactNode } from \"react\";\nimport type { SxProps, Theme } from \"@mui/material\";\nimport { Alert, AlertTitle, Box, LinearProgress, Typography } from \"@mui/material\";\n\ninterface InProgressBannerProps {\n /**\n * What is happening, as a short noun phrase: \"Importing repository history\", \"Working on a fix\".\n * Not \"In progress\" - a banner whose title says nothing is a banner nobody reads twice.\n */\n title: string;\n /**\n * The detail beneath the bar. A caption row, or several. Plain strings are wrapped in the\n * canonical caption typography; elements are rendered as given, so a caller can mix links and\n * per-item rows.\n */\n children?: ReactNode;\n /**\n * Percentage complete, when the operation reports a real current-of-total. OMIT IT otherwise -\n * the bar goes indeterminate, which is honest. A fabricated percentage that sticks at 90% is\n * worse than a moving bar, so there is deliberately no default.\n */\n value?: number;\n /** A control for the banner itself - minimise, dismiss, retry. Rendered in the Alert's action slot. */\n action?: ReactNode;\n /** Escape hatch for layout only. The banner already spaces itself; see the note below. */\n sx?: SxProps<Theme>;\n}\n\n/**\n * The shared \"this is still running\" banner - the counterpart of {@link EmptyState}, and the reason\n * both belong here rather than in each plugin.\n *\n * <p><b>Promoted from three hand-written copies</b>: the tech plugin's repo-import indicator, the\n * self-healing fix-run banner, and the monolith's own `OperationGlobalBanner`. The\n * `height: 6, borderRadius: 3` bar was byte-identical in all three and repeated in ten more places\n * across the HR, projects, sales and tech plugins, several with comments apologising for it. That\n * pair of magic numbers is now in one file.</p>\n *\n * <p><b>Why a shared component and not a documented shape.</b> A surface with no in-progress state\n * does not stay silent - it renders its EMPTY state instead, which claims the operation finished\n * and produced nothing. That defect shipped twice in one week on one page (engineering-skills\n * UX-113): an operator was told \"No suggested fix - this run has not produced a diff\" eight seconds\n * into a run that went on to propose one. A rule describing the right markup did not stop the\n * second occurrence; one implementation can.</p>\n *\n * <p><b>It spaces ITSELF</b> (`mb: 2` by default), which is load-bearing rather than cosmetic. Two\n * of the three copies inherited their spacing from a parent's flex `gap`, and a banner that depends\n * on its parent's layout cannot be moved between pages - which is what kept them separate copies.\n * Pass `sx` to override.</p>\n *\n * <p><b>Render nothing when there is no outstanding work.</b> This component does not decide that;\n * the caller does, by not rendering it. There is deliberately no \"all clear\" state - a permanently\n * present banner becomes furniture and stops being read.</p>\n *\n * <p><b>`icon={false}`</b> because the bar is the icon. Keeping the severity icon as well gave the\n * banner two competing focal points.</p>\n */\nexport function InProgressBanner({ title, children, value, action, sx }: InProgressBannerProps) {\n return (\n <Alert severity=\"info\" icon={false} action={action} sx={{ mb: 2, ...sx }}>\n <AlertTitle>{title}</AlertTitle>\n <Box sx={{ display: \"flex\", flexDirection: \"column\", gap: 1, mt: 0.5 }}>\n <LinearProgress\n variant={typeof value === \"number\" ? \"determinate\" : \"indeterminate\"}\n value={value}\n sx={{ height: 6, borderRadius: 3 }}\n />\n {typeof children === \"string\" ? (\n <Typography variant=\"caption\" color=\"text.secondary\">\n {children}\n </Typography>\n ) : (\n children\n )}\n </Box>\n </Alert>\n );\n}\n","import { Dialog as MuiDialog, type DialogProps } from \"@mui/material\";\n\n/**\n * MUI `Dialog` with the scroll-lock + focus-restore overrides plugin surfaces\n * need (AB#4808): MUI's defaults reset the page to top when a dialog opened from\n * below the fold closes. Everything else is the stock `Dialog` — this is the one\n * `components/ui` wrapper that isn't a pure re-export.\n */\nexport function Dialog(props: DialogProps) {\n return <MuiDialog disableScrollLock disableRestoreFocus {...props} />;\n}\n","import { memo, useCallback, useEffect, useId, useRef, useState } from \"react\";\nimport { FilledInput, FormControl, IconButton, InputAdornment, InputLabel } from \"@mui/material\";\n\nimport { NiCross, NiSearch } from \"../../icons/nexture\";\n\ninterface DebouncedSearchInputProps {\n value?: string;\n onChange: (value: string) => void;\n label?: string;\n delay?: number;\n className?: string;\n}\n\n/**\n * Self-contained search input that manages its own typing state.\n * Only calls `onChange` after a debounce, preventing expensive parent re-renders\n * (e.g. DataGrid) on every keystroke.\n *\n * Promoted here from `sales` and `timesheets`, where the file was byte-identical in both and a\n * third search field had been hand-mirrored from it in a shared toolbar. \"Search bars don't look\n * the same\" is not a problem a lint rule can fix - only one implementation can - so this is the\n * implementation, and `coreconnect/no-local-search-input` is the backstop that stops the next\n * plugin writing a fourth.\n *\n * Class composition uses the package's existing join idiom rather than a `cn`/tailwind-merge\n * helper, which keeps `plugin-ui` free of new runtime dependencies. No caller passes a conflicting\n * utility class today, so tailwind-merge's conflict resolution is unexercised; a caller that needs\n * it should override via `sx` instead of racing class order.\n */\nexport const DebouncedSearchInput = memo(function DebouncedSearchInput({\n value = \"\",\n onChange,\n label = \"Search\",\n delay = 400,\n className,\n}: DebouncedSearchInputProps) {\n const [localValue, setLocalValue] = useState(value);\n // Associate the InputLabel with the FilledInput — a bare FormControl+InputLabel+Input\n // doesn't auto-link them (unlike TextField), leaving the label without a `for` target.\n const inputId = useId();\n const onChangeRef = useRef(onChange);\n onChangeRef.current = onChange;\n const lastReportedRef = useRef(value);\n const isFirstRender = useRef(true);\n\n // Sync external value changes (e.g. clear from parent)\n useEffect(() => {\n setLocalValue(value);\n lastReportedRef.current = value;\n }, [value]);\n\n // Debounce: notify parent only after typing pauses (skip initial mount)\n useEffect(() => {\n if (isFirstRender.current) {\n isFirstRender.current = false;\n return;\n }\n if (localValue === lastReportedRef.current) return;\n const timer = setTimeout(() => {\n lastReportedRef.current = localValue;\n onChangeRef.current(localValue);\n }, delay);\n return () => clearTimeout(timer);\n }, [localValue, delay]);\n\n const handleClear = useCallback(() => {\n setLocalValue(\"\");\n lastReportedRef.current = \"\";\n onChangeRef.current(\"\");\n }, []);\n\n const classes = (...parts: (string | false | undefined)[]) => parts.filter(Boolean).join(\" \");\n\n return (\n <FormControl variant=\"filled\" size=\"medium\" className={classes(\"surface mb-0 w-full\", className)}>\n <InputLabel htmlFor={inputId}>{label}</InputLabel>\n <FilledInput\n id={inputId}\n value={localValue}\n onChange={(e) => setLocalValue(e.target.value)}\n endAdornment={\n <>\n <InputAdornment position=\"end\" className={classes(localValue === \"\" && \"hidden\")}>\n <IconButton edge=\"end\" onClick={handleClear} aria-label=\"Clear search\">\n <NiCross size=\"medium\" className=\"text-text-disabled\" />\n </IconButton>\n </InputAdornment>\n <InputAdornment position=\"end\" className={classes(localValue !== \"\" && \"hidden\")} aria-hidden>\n <IconButton edge=\"end\" disabled tabIndex={-1}>\n <NiSearch size=\"medium\" className=\"text-text-disabled\" />\n </IconButton>\n </InputAdornment>\n </>\n }\n />\n </FormControl>\n );\n});\n","import type { ReactNode } from \"react\";\nimport {\n Button,\n CircularProgress,\n Dialog,\n DialogActions,\n DialogContent,\n DialogContentText,\n DialogTitle,\n} from \"../ui\";\n\nexport interface ConfirmActionLabels {\n title: string;\n description?: ReactNode;\n btnCancel?: string;\n btnConfirm?: string;\n btnLoading?: string;\n}\n\ninterface ConfirmActionDialogProps {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n onConfirm: () => void;\n isLoading?: boolean;\n labels: ConfirmActionLabels;\n icon?: ReactNode;\n confirmVariant?: \"default\" | \"destructive\";\n className?: string;\n /** Optional body content rendered between the description and footer (e.g. a Textarea). */\n children?: ReactNode;\n /** Additional disable condition for the confirm button (e.g. empty required field). */\n disableConfirm?: boolean;\n}\n\n/**\n * Generic action confirmation dialog.\n * Use `labels` to customise title, description and button text.\n * `labels.description` accepts a string or any ReactNode (e.g. JSX with <strong>).\n *\n * Pass `children` to render additional body content (e.g. a Textarea) between the\n * description and the footer. Use `disableConfirm` to conditionally disable the confirm\n * button (e.g. when a required field is empty).\n *\n * For delete confirmations, prefer `ConfirmDeleteDialog` instead.\n */\nexport function ConfirmActionDialog({\n open,\n onOpenChange,\n onConfirm,\n isLoading = false,\n labels,\n icon,\n confirmVariant = \"default\",\n children,\n disableConfirm,\n}: ConfirmActionDialogProps) {\n const description = labels.description ?? \"Are you sure you want to continue?\";\n const btnCancel = labels.btnCancel ?? \"Cancel\";\n const btnConfirm = labels.btnConfirm ?? \"Confirm\";\n const btnLoading = labels.btnLoading ?? \"Processing...\";\n\n const handleClose = () => {\n if (!isLoading) onOpenChange(false);\n };\n\n return (\n <Dialog open={open} onClose={handleClose} maxWidth=\"xs\" fullWidth role=\"alertdialog\">\n <DialogTitle className=\"flex items-center gap-2\">\n {icon}\n {labels.title}\n </DialogTitle>\n <DialogContent>\n {typeof description === \"string\" ? (\n <DialogContentText>{description}</DialogContentText>\n ) : (\n <DialogContentText component=\"div\">{description}</DialogContentText>\n )}\n {children}\n </DialogContent>\n <DialogActions>\n <Button onClick={handleClose} disabled={isLoading}>\n {btnCancel}\n </Button>\n <Button\n variant=\"contained\"\n color={confirmVariant === \"destructive\" ? \"error\" : \"primary\"}\n onClick={onConfirm}\n disabled={isLoading || disableConfirm}\n >\n {isLoading ? (\n <>\n <CircularProgress size={16} color=\"inherit\" className=\"mr-2\" />\n {btnLoading}\n </>\n ) : (\n btnConfirm\n )}\n </Button>\n </DialogActions>\n </Dialog>\n );\n}\n","import type { ReactNode } from \"react\";\nimport {\n Box,\n Button,\n CircularProgress,\n Dialog,\n DialogActions,\n DialogContent,\n DialogContentText,\n DialogTitle,\n} from \"../ui\";\nimport { NiBinEmpty } from \"../../icons\";\n\nexport interface ConfirmDeleteLabels {\n title?: string;\n description?: ReactNode;\n btnCancel?: string;\n btnConfirm?: string;\n btnDeleting?: string;\n}\n\ninterface ConfirmDeleteDialogProps {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n onConfirm: () => void;\n isDeleting: boolean;\n labels?: ConfirmDeleteLabels;\n className?: string;\n}\n\n/**\n * Generic delete confirmation dialog.\n * Use `labels` to customise title, description and button text.\n * `labels.description` accepts a string or any ReactNode (e.g. JSX with <strong>).\n */\nexport function ConfirmDeleteDialog({\n open,\n onOpenChange,\n onConfirm,\n isDeleting,\n labels,\n}: ConfirmDeleteDialogProps) {\n const title = labels?.title ?? \"Delete?\";\n const description = labels?.description ?? \"Are you sure? This action cannot be undone.\";\n const btnCancel = labels?.btnCancel ?? \"Cancel\";\n const btnConfirm = labels?.btnConfirm ?? \"Delete\";\n const btnDeleting = labels?.btnDeleting ?? \"Deleting...\";\n\n const handleClose = () => {\n if (!isDeleting) onOpenChange(false);\n };\n\n return (\n <Dialog open={open} onClose={handleClose} maxWidth=\"xs\" fullWidth role=\"alertdialog\">\n <DialogTitle className=\"flex items-center gap-2\">\n <Box component=\"span\" sx={{ color: \"error.main\", display: \"inline-flex\" }}>\n <NiBinEmpty size=\"medium\" />\n </Box>\n {title}\n </DialogTitle>\n <DialogContent>\n {typeof description === \"string\" ? (\n <DialogContentText>{description}</DialogContentText>\n ) : (\n <DialogContentText component=\"div\">{description}</DialogContentText>\n )}\n </DialogContent>\n <DialogActions>\n <Button onClick={handleClose} disabled={isDeleting}>\n {btnCancel}\n </Button>\n <Button variant=\"contained\" color=\"error\" onClick={onConfirm} disabled={isDeleting}>\n {isDeleting ? (\n <>\n <CircularProgress size={16} color=\"inherit\" className=\"mr-2\" />\n {btnDeleting}\n </>\n ) : (\n btnConfirm\n )}\n </Button>\n </DialogActions>\n </Dialog>\n );\n}\n","/**\n * Dialog-state hooks shipped alongside the shared confirmation dialogs\n * (`ConfirmActionDialog` / `ConfirmDeleteDialog`), so a plugin's lifted\n * `hooks/common/utility/useConfirmDialog` alias resolves here instead of each\n * plugin re-porting the same open/close/reason boilerplate from the monolith.\n *\n * Pure React state — no host bridge needed; safe in mock/dev and inside the host.\n */\nimport { useCallback, useState } from \"react\";\n\n/**\n * Boolean open/close state for a confirm dialog. Replaces the\n * `const [xOpen, setXOpen] = useState(false)` + inline open/close arrows that detail pages\n * repeated per dialog.\n */\nexport function useConfirmDialog() {\n const [isOpen, setIsOpen] = useState(false);\n const open = useCallback(() => setIsOpen(true), []);\n const close = useCallback(() => setIsOpen(false), []);\n return { isOpen, open, close };\n}\n\n/**\n * Confirm dialog carrying a target payload (e.g. the row being acted on). `isOpen` is derived\n * from whether a target is set; `close()` clears it. Replaces the\n * `const [xTarget, setXTarget] = useState<T | null>(null)` pattern in the list pages.\n */\nexport function useTargetDialog<T>() {\n const [target, setTarget] = useState<T | null>(null);\n const open = useCallback((value: T) => setTarget(value), []);\n const close = useCallback(() => setTarget(null), []);\n return { target, isOpen: target !== null, open, close };\n}\n\n/**\n * Confirm dialog with a free-text reason (e.g. reject/dispute). `close()` resets the reason so\n * the next open starts blank. Replaces the per-page `xOpen` + `reason` state + reset handler.\n */\nexport function useReasonDialog() {\n const [isOpen, setIsOpen] = useState(false);\n const [reason, setReason] = useState(\"\");\n const open = useCallback(() => setIsOpen(true), []);\n const close = useCallback(() => {\n setIsOpen(false);\n setReason(\"\");\n }, []);\n return { isOpen, reason, setReason, open, close };\n}\n","/**\n * Host toast bridge — the ergonomic surface a lifted monolith `useToast()`\n * expects, shipped alongside the other shared composites so a plugin's\n * `components/shared/*` (and its `use-toast` alias) resolve here.\n *\n * PlatformReact pages can't import the host's toaster (it's an app-global\n * singleton, not in the host module registry), so these dispatch the\n * `ethisys:toast` CustomEvent the host's toast listener (`useExtensionToast`)\n * forwards to its toaster — the same wire contract as the lower-level\n * `@ethisyscore/components-react` `showToast` primitive (kept self-contained\n * here to avoid a load-bearing cross-package import for a one-line dispatch).\n * Outside a host that wired the listener (mock/dev), every call is a harmless\n * no-op, so a plugin keeps its lifted `showSuccessToast(...)` call sites.\n */\ntype ToastVariant = \"default\" | \"success\" | \"error\" | \"warning\";\n\nfunction dispatchToast(title: string, description: string | undefined, variant: ToastVariant): void {\n if (typeof window === \"undefined\" || title.length === 0) {\n return;\n }\n window.dispatchEvent(new CustomEvent(\"ethisys:toast\", { detail: { title, description, variant } }));\n}\n\nexport function showSuccessToast(title: string, description?: string): void {\n dispatchToast(title, description, \"success\");\n}\n\nexport function showErrorToast(title: string, description?: string): void {\n dispatchToast(title, description, \"error\");\n}\n\nexport function showWarningToast(title: string, description?: string): void {\n dispatchToast(title, description, \"warning\");\n}\n\n/**\n * Options accepted by the `toast(...)` returned from {@link useToast}. Both `title`\n * and `description` are optional, but at least one must be set — `toast({ description })`\n * shows the description as the message (mirroring the monolith); `toast({})` is a no-op.\n */\nexport interface ToastOptions {\n /** Primary line. Falls back to {@link ToastOptions.description} when absent/empty. */\n title?: string;\n /** Secondary line — or the message itself when no `title` is given. */\n description?: string;\n /** `\"destructive\"`/`\"error\"` → error; `\"warning\"`/`\"success\"` map directly; else default. */\n variant?: string;\n}\n\n/**\n * Hook mirror of the monolith's `useToast()` surface, so a lifted\n * `const { toast } = useToast()` (and `showSuccessToast`/`showErrorToast`) keeps\n * working unchanged once `@/hooks/common/utility/use-toast` is aliased here.\n */\nexport function useToast() {\n return {\n toast: (opts: ToastOptions): void => {\n const variant: ToastVariant =\n opts.variant === \"destructive\" || opts.variant === \"error\"\n ? \"error\"\n : opts.variant === \"warning\"\n ? \"warning\"\n : opts.variant === \"success\"\n ? \"success\"\n : \"default\";\n // `title` is the primary line; fall back to `description` so `toast({ description })`\n // shows it (mirroring the monolith) instead of silently no-op'ing. Both absent → no-op.\n if (opts.title) {\n dispatchToast(opts.title, opts.description, variant);\n } else if (opts.description) {\n dispatchToast(opts.description, undefined, variant);\n }\n },\n showSuccessToast,\n showErrorToast,\n showWarningToast,\n };\n}\n"]}
@@ -1,5 +1,6 @@
1
1
  import * as react from 'react';
2
2
  import { ReactNode } from 'react';
3
+ import { SxProps, Theme } from '@mui/material';
3
4
 
4
5
  interface EmptyStateProps {
5
6
  icon?: ReactNode;
@@ -21,6 +22,60 @@ interface EmptyStateProps {
21
22
  */
22
23
  declare function EmptyState({ icon, title, description, fill, }: EmptyStateProps): react.JSX.Element;
23
24
 
25
+ interface InProgressBannerProps {
26
+ /**
27
+ * What is happening, as a short noun phrase: "Importing repository history", "Working on a fix".
28
+ * Not "In progress" - a banner whose title says nothing is a banner nobody reads twice.
29
+ */
30
+ title: string;
31
+ /**
32
+ * The detail beneath the bar. A caption row, or several. Plain strings are wrapped in the
33
+ * canonical caption typography; elements are rendered as given, so a caller can mix links and
34
+ * per-item rows.
35
+ */
36
+ children?: ReactNode;
37
+ /**
38
+ * Percentage complete, when the operation reports a real current-of-total. OMIT IT otherwise -
39
+ * the bar goes indeterminate, which is honest. A fabricated percentage that sticks at 90% is
40
+ * worse than a moving bar, so there is deliberately no default.
41
+ */
42
+ value?: number;
43
+ /** A control for the banner itself - minimise, dismiss, retry. Rendered in the Alert's action slot. */
44
+ action?: ReactNode;
45
+ /** Escape hatch for layout only. The banner already spaces itself; see the note below. */
46
+ sx?: SxProps<Theme>;
47
+ }
48
+ /**
49
+ * The shared "this is still running" banner - the counterpart of {@link EmptyState}, and the reason
50
+ * both belong here rather than in each plugin.
51
+ *
52
+ * <p><b>Promoted from three hand-written copies</b>: the tech plugin's repo-import indicator, the
53
+ * self-healing fix-run banner, and the monolith's own `OperationGlobalBanner`. The
54
+ * `height: 6, borderRadius: 3` bar was byte-identical in all three and repeated in ten more places
55
+ * across the HR, projects, sales and tech plugins, several with comments apologising for it. That
56
+ * pair of magic numbers is now in one file.</p>
57
+ *
58
+ * <p><b>Why a shared component and not a documented shape.</b> A surface with no in-progress state
59
+ * does not stay silent - it renders its EMPTY state instead, which claims the operation finished
60
+ * and produced nothing. That defect shipped twice in one week on one page (engineering-skills
61
+ * UX-113): an operator was told "No suggested fix - this run has not produced a diff" eight seconds
62
+ * into a run that went on to propose one. A rule describing the right markup did not stop the
63
+ * second occurrence; one implementation can.</p>
64
+ *
65
+ * <p><b>It spaces ITSELF</b> (`mb: 2` by default), which is load-bearing rather than cosmetic. Two
66
+ * of the three copies inherited their spacing from a parent's flex `gap`, and a banner that depends
67
+ * on its parent's layout cannot be moved between pages - which is what kept them separate copies.
68
+ * Pass `sx` to override.</p>
69
+ *
70
+ * <p><b>Render nothing when there is no outstanding work.</b> This component does not decide that;
71
+ * the caller does, by not rendering it. There is deliberately no "all clear" state - a permanently
72
+ * present banner becomes furniture and stops being read.</p>
73
+ *
74
+ * <p><b>`icon={false}`</b> because the bar is the icon. Keeping the severity icon as well gave the
75
+ * banner two competing focal points.</p>
76
+ */
77
+ declare function InProgressBanner({ title, children, value, action, sx }: InProgressBannerProps): react.JSX.Element;
78
+
24
79
  interface ConfirmActionLabels {
25
80
  title: string;
26
81
  description?: ReactNode;
@@ -138,4 +193,4 @@ declare function useToast(): {
138
193
  showWarningToast: typeof showWarningToast;
139
194
  };
140
195
 
141
- export { ConfirmActionDialog, type ConfirmActionLabels, ConfirmDeleteDialog, type ConfirmDeleteLabels, EmptyState, type ToastOptions, showErrorToast, showSuccessToast, showWarningToast, useConfirmDialog, useReasonDialog, useTargetDialog, useToast };
196
+ export { ConfirmActionDialog, type ConfirmActionLabels, ConfirmDeleteDialog, type ConfirmDeleteLabels, EmptyState, InProgressBanner, type ToastOptions, showErrorToast, showSuccessToast, showWarningToast, useConfirmDialog, useReasonDialog, useTargetDialog, useToast };