@iqworksai/common-components 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (195) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/README.md +398 -0
  3. package/dist/.gitkeep +3 -0
  4. package/dist/components/Alert/Alert.stories.d.ts +14 -0
  5. package/dist/components/Alert/Alert.stories.d.ts.map +1 -0
  6. package/dist/components/Alert/index.d.ts +15 -0
  7. package/dist/components/Alert/index.d.ts.map +1 -0
  8. package/dist/components/CSVImporter/CSVImporter.stories.d.ts +10 -0
  9. package/dist/components/CSVImporter/CSVImporter.stories.d.ts.map +1 -0
  10. package/dist/components/CSVImporter/helpers.d.ts +8 -0
  11. package/dist/components/CSVImporter/helpers.d.ts.map +1 -0
  12. package/dist/components/CSVImporter/index.d.ts +15 -0
  13. package/dist/components/CSVImporter/index.d.ts.map +1 -0
  14. package/dist/components/Charts/ChartHeader/ChartHeader.stories.d.ts +9 -0
  15. package/dist/components/Charts/ChartHeader/ChartHeader.stories.d.ts.map +1 -0
  16. package/dist/components/Charts/ChartHeader/index.d.ts +10 -0
  17. package/dist/components/Charts/ChartHeader/index.d.ts.map +1 -0
  18. package/dist/components/Charts/CustomLegends/CustomLegends.stories.d.ts +10 -0
  19. package/dist/components/Charts/CustomLegends/CustomLegends.stories.d.ts.map +1 -0
  20. package/dist/components/Charts/CustomLegends/index.d.ts +13 -0
  21. package/dist/components/Charts/CustomLegends/index.d.ts.map +1 -0
  22. package/dist/components/Charts/DonutChart/DonutChart.stories.d.ts +10 -0
  23. package/dist/components/Charts/DonutChart/DonutChart.stories.d.ts.map +1 -0
  24. package/dist/components/Charts/DonutChart/index.d.ts +21 -0
  25. package/dist/components/Charts/DonutChart/index.d.ts.map +1 -0
  26. package/dist/components/Charts/GaugeChart/GaugeChart.stories.d.ts +10 -0
  27. package/dist/components/Charts/GaugeChart/GaugeChart.stories.d.ts.map +1 -0
  28. package/dist/components/Charts/GaugeChart/index.d.ts +47 -0
  29. package/dist/components/Charts/GaugeChart/index.d.ts.map +1 -0
  30. package/dist/components/Charts/GeoChart/GeoChart.stories.d.ts +9 -0
  31. package/dist/components/Charts/GeoChart/GeoChart.stories.d.ts.map +1 -0
  32. package/dist/components/Charts/GeoChart/index.d.ts +35 -0
  33. package/dist/components/Charts/GeoChart/index.d.ts.map +1 -0
  34. package/dist/components/Charts/HorizontalBarChart/HorizontalBarChart.stories.d.ts +11 -0
  35. package/dist/components/Charts/HorizontalBarChart/HorizontalBarChart.stories.d.ts.map +1 -0
  36. package/dist/components/Charts/HorizontalBarChart/index.d.ts +12 -0
  37. package/dist/components/Charts/HorizontalBarChart/index.d.ts.map +1 -0
  38. package/dist/components/Charts/NoDataChart/NoDataChart.stories.d.ts +9 -0
  39. package/dist/components/Charts/NoDataChart/NoDataChart.stories.d.ts.map +1 -0
  40. package/dist/components/Charts/NoDataChart/index.d.ts +8 -0
  41. package/dist/components/Charts/NoDataChart/index.d.ts.map +1 -0
  42. package/dist/components/Charts/PieChart/PieChart.stories.d.ts +10 -0
  43. package/dist/components/Charts/PieChart/PieChart.stories.d.ts.map +1 -0
  44. package/dist/components/Charts/PieChart/index.d.ts +22 -0
  45. package/dist/components/Charts/PieChart/index.d.ts.map +1 -0
  46. package/dist/components/Charts/StorageChart/StorageChart.stories.d.ts +10 -0
  47. package/dist/components/Charts/StorageChart/StorageChart.stories.d.ts.map +1 -0
  48. package/dist/components/Charts/StorageChart/index.d.ts +11 -0
  49. package/dist/components/Charts/StorageChart/index.d.ts.map +1 -0
  50. package/dist/components/Charts/VerticalBarChart/VerticalBarChart.stories.d.ts +9 -0
  51. package/dist/components/Charts/VerticalBarChart/VerticalBarChart.stories.d.ts.map +1 -0
  52. package/dist/components/Charts/VerticalBarChart/index.d.ts +15 -0
  53. package/dist/components/Charts/VerticalBarChart/index.d.ts.map +1 -0
  54. package/dist/components/ConfidenceScoreTooltip/ConfidenceScoreTooltip.stories.d.ts +10 -0
  55. package/dist/components/ConfidenceScoreTooltip/ConfidenceScoreTooltip.stories.d.ts.map +1 -0
  56. package/dist/components/ConfidenceScoreTooltip/index.d.ts +16 -0
  57. package/dist/components/ConfidenceScoreTooltip/index.d.ts.map +1 -0
  58. package/dist/components/ConfirmationModal/ConfirmationModal.stories.d.ts +10 -0
  59. package/dist/components/ConfirmationModal/ConfirmationModal.stories.d.ts.map +1 -0
  60. package/dist/components/ConfirmationModal/index.d.ts +16 -0
  61. package/dist/components/ConfirmationModal/index.d.ts.map +1 -0
  62. package/dist/components/CountryBox/CountryBox.stories.d.ts +9 -0
  63. package/dist/components/CountryBox/CountryBox.stories.d.ts.map +1 -0
  64. package/dist/components/CountryBox/index.d.ts +9 -0
  65. package/dist/components/CountryBox/index.d.ts.map +1 -0
  66. package/dist/components/Dropdown/Dropdown.stories.d.ts +9 -0
  67. package/dist/components/Dropdown/Dropdown.stories.d.ts.map +1 -0
  68. package/dist/components/Dropdown/index.d.ts +14 -0
  69. package/dist/components/Dropdown/index.d.ts.map +1 -0
  70. package/dist/components/ErrorBoundary/ComponentErrorBoundary.d.ts +19 -0
  71. package/dist/components/ErrorBoundary/ComponentErrorBoundary.d.ts.map +1 -0
  72. package/dist/components/ErrorBoundary/ErrorBoundary.stories.d.ts +10 -0
  73. package/dist/components/ErrorBoundary/ErrorBoundary.stories.d.ts.map +1 -0
  74. package/dist/components/ErrorBoundary/index.d.ts +29 -0
  75. package/dist/components/ErrorBoundary/index.d.ts.map +1 -0
  76. package/dist/components/FileTypeIcon/FileTypeIcon.stories.d.ts +9 -0
  77. package/dist/components/FileTypeIcon/FileTypeIcon.stories.d.ts.map +1 -0
  78. package/dist/components/FileTypeIcon/index.d.ts +9 -0
  79. package/dist/components/FileTypeIcon/index.d.ts.map +1 -0
  80. package/dist/components/ImagePreviewModal/ImagePreviewModal.stories.d.ts +12 -0
  81. package/dist/components/ImagePreviewModal/ImagePreviewModal.stories.d.ts.map +1 -0
  82. package/dist/components/ImagePreviewModal/index.d.ts +23 -0
  83. package/dist/components/ImagePreviewModal/index.d.ts.map +1 -0
  84. package/dist/components/InstallUpdateLoader/InstallUpdateLoader.stories.d.ts +11 -0
  85. package/dist/components/InstallUpdateLoader/InstallUpdateLoader.stories.d.ts.map +1 -0
  86. package/dist/components/InstallUpdateLoader/index.d.ts +11 -0
  87. package/dist/components/InstallUpdateLoader/index.d.ts.map +1 -0
  88. package/dist/components/Loader/Loader.stories.d.ts +10 -0
  89. package/dist/components/Loader/Loader.stories.d.ts.map +1 -0
  90. package/dist/components/Loader/index.d.ts +9 -0
  91. package/dist/components/Loader/index.d.ts.map +1 -0
  92. package/dist/components/Modal/Modal.stories.d.ts +12 -0
  93. package/dist/components/Modal/Modal.stories.d.ts.map +1 -0
  94. package/dist/components/Modal/index.d.ts +23 -0
  95. package/dist/components/Modal/index.d.ts.map +1 -0
  96. package/dist/components/MultiSelect/MultiSelect.stories.d.ts +11 -0
  97. package/dist/components/MultiSelect/MultiSelect.stories.d.ts.map +1 -0
  98. package/dist/components/MultiSelect/index.d.ts +37 -0
  99. package/dist/components/MultiSelect/index.d.ts.map +1 -0
  100. package/dist/components/NoActiveAttributeWarning/NoActiveAttributeWarning.stories.d.ts +9 -0
  101. package/dist/components/NoActiveAttributeWarning/NoActiveAttributeWarning.stories.d.ts.map +1 -0
  102. package/dist/components/NoActiveAttributeWarning/index.d.ts +8 -0
  103. package/dist/components/NoActiveAttributeWarning/index.d.ts.map +1 -0
  104. package/dist/components/ResourceUsageBadge/ResourceUsageBadge.stories.d.ts +11 -0
  105. package/dist/components/ResourceUsageBadge/ResourceUsageBadge.stories.d.ts.map +1 -0
  106. package/dist/components/ResourceUsageBadge/index.d.ts +13 -0
  107. package/dist/components/ResourceUsageBadge/index.d.ts.map +1 -0
  108. package/dist/components/RiskScoreLabel/RiskScoreLabel.stories.d.ts +12 -0
  109. package/dist/components/RiskScoreLabel/RiskScoreLabel.stories.d.ts.map +1 -0
  110. package/dist/components/RiskScoreLabel/index.d.ts +9 -0
  111. package/dist/components/RiskScoreLabel/index.d.ts.map +1 -0
  112. package/dist/components/ShowMultiData/ShowMultiData.stories.d.ts +10 -0
  113. package/dist/components/ShowMultiData/ShowMultiData.stories.d.ts.map +1 -0
  114. package/dist/components/ShowMultiData/index.d.ts +15 -0
  115. package/dist/components/ShowMultiData/index.d.ts.map +1 -0
  116. package/dist/components/StatusBadge/StatusBadge.stories.d.ts +15 -0
  117. package/dist/components/StatusBadge/StatusBadge.stories.d.ts.map +1 -0
  118. package/dist/components/StatusBadge/index.d.ts +24 -0
  119. package/dist/components/StatusBadge/index.d.ts.map +1 -0
  120. package/dist/components/Table/Table.stories.d.ts +20 -0
  121. package/dist/components/Table/Table.stories.d.ts.map +1 -0
  122. package/dist/components/Table/index.d.ts +43 -0
  123. package/dist/components/Table/index.d.ts.map +1 -0
  124. package/dist/components/TaskResult/TaskResult.stories.d.ts +10 -0
  125. package/dist/components/TaskResult/TaskResult.stories.d.ts.map +1 -0
  126. package/dist/components/TaskResult/index.d.ts +27 -0
  127. package/dist/components/TaskResult/index.d.ts.map +1 -0
  128. package/dist/components/Timer/Timer.stories.d.ts +10 -0
  129. package/dist/components/Timer/Timer.stories.d.ts.map +1 -0
  130. package/dist/components/Timer/index.d.ts +11 -0
  131. package/dist/components/Timer/index.d.ts.map +1 -0
  132. package/dist/components/Toast/Toast.stories.d.ts +13 -0
  133. package/dist/components/Toast/Toast.stories.d.ts.map +1 -0
  134. package/dist/components/Toast/index.d.ts +12 -0
  135. package/dist/components/Toast/index.d.ts.map +1 -0
  136. package/dist/components/ToggleSwitch/ToggleSwitch.stories.d.ts +12 -0
  137. package/dist/components/ToggleSwitch/ToggleSwitch.stories.d.ts.map +1 -0
  138. package/dist/components/ToggleSwitch/index.d.ts +12 -0
  139. package/dist/components/ToggleSwitch/index.d.ts.map +1 -0
  140. package/dist/components/ToolTip/ToolTip.stories.d.ts +13 -0
  141. package/dist/components/ToolTip/ToolTip.stories.d.ts.map +1 -0
  142. package/dist/components/ToolTip/index.d.ts +12 -0
  143. package/dist/components/ToolTip/index.d.ts.map +1 -0
  144. package/dist/constants/enums.d.ts +54 -0
  145. package/dist/constants/enums.d.ts.map +1 -0
  146. package/dist/constants/statusBadgeClasses.d.ts +2 -0
  147. package/dist/constants/statusBadgeClasses.d.ts.map +1 -0
  148. package/dist/context/ContextProvider.d.ts +33 -0
  149. package/dist/context/ContextProvider.d.ts.map +1 -0
  150. package/dist/context/ContextProvider.stories.d.ts +9 -0
  151. package/dist/context/ContextProvider.stories.d.ts.map +1 -0
  152. package/dist/context/LoaderContext.d.ts +13 -0
  153. package/dist/context/LoaderContext.d.ts.map +1 -0
  154. package/dist/context/LoaderContext.stories.d.ts +8 -0
  155. package/dist/context/LoaderContext.stories.d.ts.map +1 -0
  156. package/dist/context/ThemeContext.d.ts +51 -0
  157. package/dist/context/ThemeContext.d.ts.map +1 -0
  158. package/dist/context/ThemeContext.stories.d.ts +11 -0
  159. package/dist/context/ThemeContext.stories.d.ts.map +1 -0
  160. package/dist/context/ToastContext.d.ts +39 -0
  161. package/dist/context/ToastContext.d.ts.map +1 -0
  162. package/dist/context/ToastContext.stories.d.ts +9 -0
  163. package/dist/context/ToastContext.stories.d.ts.map +1 -0
  164. package/dist/hooks/useApiCache.d.ts +26 -0
  165. package/dist/hooks/useApiCache.d.ts.map +1 -0
  166. package/dist/hooks/useAssetPath.d.ts +28 -0
  167. package/dist/hooks/useAssetPath.d.ts.map +1 -0
  168. package/dist/hooks/useBodyScrollLock.d.ts +6 -0
  169. package/dist/hooks/useBodyScrollLock.d.ts.map +1 -0
  170. package/dist/hooks/useClickOutside.d.ts +13 -0
  171. package/dist/hooks/useClickOutside.d.ts.map +1 -0
  172. package/dist/hooks/useDebounce.d.ts +8 -0
  173. package/dist/hooks/useDebounce.d.ts.map +1 -0
  174. package/dist/hooks/useFilterCache.d.ts +26 -0
  175. package/dist/hooks/useFilterCache.d.ts.map +1 -0
  176. package/dist/hooks/useReduxHook.d.ts +19 -0
  177. package/dist/hooks/useReduxHook.d.ts.map +1 -0
  178. package/dist/index.cjs +168 -0
  179. package/dist/index.d.ts +56 -0
  180. package/dist/index.d.ts.map +1 -0
  181. package/dist/index.mjs +29076 -0
  182. package/dist/style.css +1 -0
  183. package/dist/types/table.d.ts +59 -0
  184. package/dist/types/table.d.ts.map +1 -0
  185. package/dist/utils/classNames.d.ts +16 -0
  186. package/dist/utils/classNames.d.ts.map +1 -0
  187. package/dist/utils/formatBytes.d.ts +8 -0
  188. package/dist/utils/formatBytes.d.ts.map +1 -0
  189. package/dist/utils/memoUtils.d.ts +13 -0
  190. package/dist/utils/memoUtils.d.ts.map +1 -0
  191. package/dist/utils/riskScore.d.ts +11 -0
  192. package/dist/utils/riskScore.d.ts.map +1 -0
  193. package/dist/utils/statusConfig.d.ts +14 -0
  194. package/dist/utils/statusConfig.d.ts.map +1 -0
  195. package/package.json +124 -0
package/dist/style.css ADDED
@@ -0,0 +1 @@
1
+ .loader{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.subtitle{max-width:-moz-fit-content;max-width:fit-content;padding:2px 5px;border-radius:8px;font-size:12px}.footer-button{font-size:14px}.modal-body{overflow-y:auto;overflow-x:hidden;width:100%;word-break:break-word;flex:1 1 auto;min-height:0;scrollbar-width:thin;scrollbar-color:var(--brand-light) var(--hover-bg-color)}.modal-body::-webkit-scrollbar{width:8px}.modal-body::-webkit-scrollbar-track{background:var(--hover-bg-color);border-radius:4px}.modal-body::-webkit-scrollbar-thumb{background:var(--brand-light);border-radius:4px}.modal-body::-webkit-scrollbar-thumb:hover{background:var(--brand-orange)}@media (max-width: 640px){.modal-body{max-height:60vh}}@media (min-width: 641px) and (max-width: 1024px){.modal-body{max-height:65vh}}.modal,.bg-white.rounded-lg{box-shadow:0 2px 8px #00000014;background-color:var(--bg-color);border-radius:.5rem;border:1px solid var(--border-color)}html.dark .modal,html.dark .bg-white.rounded-lg{background-color:var(--bg-color);border:1px solid var(--border-color)}.toast{position:fixed;top:20px;left:50%;transform:translate(-50%);z-index:9999;display:flex;align-items:center;padding:12px 16px;border-radius:8px;box-shadow:0 4px 12px #0000001a;background:var(--bg-color);min-width:350px;max-width:90vw;width:auto;animation:slideIn .3s ease-out,fadeIn .3s ease-out;transition:all .2s ease;border:1px solid var(--border-color)}html.dark .toast{background:var(--bg-color);box-shadow:0 2px 12px #1e3a8a59,0 1.5px 4px #00000073;border:1px solid var(--border-color)}.toast:hover{box-shadow:0 8px 15px #0000001a,0 6px 10px #00000014;border-color:var(--brand-orange)}html.dark .toast:hover{box-shadow:0 8px 20px #00000073,0 6px 14px #00000040;border-color:var(--brand-orange)}.toast-icon{margin-right:12px;display:flex;align-items:center}.toast-message{flex:1;font-size:14px;line-height:1.4;white-space:nowrap;overflow:visible;min-width:0;color:var(--text-color)}html.dark .toast-message{color:var(--text-color)}.toast-close-button{background:none;border:none;padding:4px;cursor:pointer;opacity:.6;transition:opacity .2s;display:flex;align-items:center;margin-left:12px;color:var(--secondary-text-color)}html.dark .toast-close-button{color:var(--secondary-text-color)}.toast-close-button:hover{opacity:1}.toast-success{border-left:4px solid #10b981}.toast-success .toast-icon{color:#10b981}.toast-info{border-left:4px solid var(--brand-orange)}.toast-info .toast-icon{color:var(--brand-orange)}.toast-error{border-left:4px solid #ef4444}.toast-error .toast-icon{color:#ef4444}.toast-warning{border-left:4px solid #f59e0b}.toast-warning .toast-icon{color:#f59e0b}@keyframes slideIn{0%{transform:translate(-50%,-120%)}to{transform:translate(-50%)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.tooltip-wrapper{display:inline-block;cursor:inherit}.tooltip{position:absolute;background:var(--brand-dark);color:#fff;padding:5px 10px;border-radius:4px;font-size:12px;font-weight:500;white-space:nowrap;opacity:0;visibility:hidden;transition:opacity .2s ease-in-out,transform .2s ease-in-out;z-index:10000;border:1px solid var(--border-color)}html.dark .tooltip{background:var(--hover-bg-color);color:var(--text-color);border:1px solid var(--border-color)}.tooltip.fixed-width{width:300px;white-space:normal;text-align:left}.tooltip-arrow{position:absolute;width:10px;height:10px;background:var(--brand-dark);transform:rotate(45deg)}html.dark .tooltip-arrow{background:var(--hover-bg-color)}.tooltip.show{opacity:1}.toggle-switch{position:relative;display:inline-flex;height:1rem;width:1.75rem;border-radius:9999px;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;align-items:center;outline:none}.toggle-on,html.dark .toggle-switch.toggle-on{background-color:var(--brand-orange)}.toggle-off,html.dark .toggle-switch.toggle-off{background-color:var(--border-color)}.toggle-knob{position:absolute;display:inline-block;height:.75rem;width:.75rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));border-radius:9999px;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;top:2px;background-color:#fff}html.dark .toggle-knob{background-color:#fff}.knob-on{transform:translate(12px)}.knob-off{transform:translate(4px)}.table-container{min-height:40px;max-height:660px;overflow-y:auto;overflow-x:auto;background-color:var(--bg-color)}.dark .table-container{background-color:var(--bg-color)}.table-header{padding:8px 10px;font-size:14px;font-weight:600;color:var(--text-color, #3a3a3a)}.dark .table-header{background-color:var(--brand-dark-secondary)}.table-header[data-sortable=true]{cursor:pointer}.table-header.checkbox{text-align:center;vertical-align:middle}tr[data-clickable=true]{cursor:pointer}tr[data-clickable=true] .bulk-actions-select,tr[data-clickable=true] .bulk-actions-select *,.bulk-actions-select,.bulk-actions-select *{cursor:pointer!important}.table-header.checkbox input{display:block;margin:0 auto}.table-padding.checkbox{text-align:center;vertical-align:middle}.table-padding.checkbox input{display:block;margin:0 auto}.table-header,.table-padding{vertical-align:middle}.checkbox{padding:8px 5px 8px 10px!important}.table-padding{padding:8px 10px}.table-data{font-size:14px;font-weight:400;color:var(--secondary-text-color, #67768b);border-bottom:1px solid var(--border-color, rgba(0, 0, 0, .12))}tr:hover{background-color:var(--brand-light)!important}.dark tr:hover{background-color:var(--hover-bg-color)!important}.dark .table-data{color:#d1d5db;border-bottom:1px solid var(--border-color)}.pagination-content{font-size:13px;line-height:20px;color:var(--text-color, #3a3a3a)}.dark .pagination-content{color:var(--text-color, #f3f4f6)}tbody td{vertical-align:top}.table-header:last-child,.table-padding:last-child{right:0;z-index:20;width:40px}.right-fixed{z-index:20;text-align:left;width:50px}.id-column{width:30px}.dark .filters:hover,.dark .toggle-delete:hover{background-color:var(--hover-bg-color)!important}.confidence-tooltip-wrapper{display:inline-block;cursor:inherit}.confidence-tooltip{position:absolute;background:var(--bg-color);color:var(--text-color);padding:12px;border-radius:6px;font-size:12px;white-space:normal;opacity:0;visibility:hidden;transition:opacity .2s ease-in-out,transform .2s ease-in-out;z-index:10000;border:1px solid var(--border-color);box-shadow:0 4px 12px #00000026;min-width:250px;max-width:400px}html.dark .confidence-tooltip{background:var(--bg-color);color:var(--text-color);border:1px solid var(--border-color);box-shadow:0 4px 12px #0000004d}.confidence-tooltip-arrow{position:absolute;width:10px;height:10px;background:var(--bg-color);transform:rotate(45deg);border:1px solid var(--border-color)}html.dark .confidence-tooltip-arrow{background:var(--bg-color);border-color:var(--border-color)}.confidence-tooltip-content{display:flex;flex-direction:column;gap:8px}.confidence-tooltip-header{border-bottom:1px solid var(--border-color);padding-bottom:8px;margin-bottom:8px}.confidence-tooltip-body{display:flex;flex-direction:column;gap:8px}.confidence-score-section,.classification-reason-section,.sample-data-section,.confidence-reason-section{padding:4px 0}.confidence-score-section{font-weight:500}.sample-data-section{margin-top:4px}.confidence-reason-section{margin-top:4px;padding-top:8px;border-top:1px solid var(--border-color)}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}button:focus-visible{outline:2px solid var(--brand-orange, #ff6503);outline-offset:2px}button:focus:not(:focus-visible){outline:none}input,textarea,select{outline:none!important;--tw-ring-color: transparent !important;--tw-ring-offset-color: transparent !important;--tw-ring-shadow: 0 0 #0000 !important}input[type=text]:focus:not(.react-select-container input):not(.react-select__input input),input[type=email]:focus,input[type=password]:focus,input[type=number]:focus,input[type=tel]:focus,input[type=url]:focus,input[type=search]:focus,input[type=date]:focus,input[type=time]:focus,input[type=datetime-local]:focus,textarea:focus,select:focus:not(.react-select__control select){outline:none!important;border-color:var(--brand-orange, #ff6503)!important;box-shadow:0 0 0 1px var(--brand-orange, #ff6503)!important;--tw-ring-color: transparent !important;--tw-ring-shadow: 0 0 #0000 !important}.react-select-container input,.react-select-container input:focus,.react-select__input input,.react-select__input input:focus{outline:none!important;border:none!important;box-shadow:none!important;--tw-ring-color: transparent !important;--tw-ring-shadow: 0 0 #0000 !important}body,html{margin:0;padding:0;font-family:var(--font-family, "Rubik", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);height:100%;background-color:var(--app-bg-color, #ffffff);color:var(--text-color, #3a3a3a)}h1,h2,h3,h4,h5,h6{font-family:var(--font-family-heading, "Afacad", "Rubik", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);color:var(--text-color, #3a3a3a)}html.dark,html.dark body{background-color:var(--app-bg-color-dark, #111111);color:var(--text-color, #f9fafb)}html.dark h1,html.dark h2,html.dark h3,html.dark h4,html.dark h5,html.dark h6{color:var(--text-color, #f9fafb)}.container{width:100%}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.visible{visibility:visible}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.-left-1{left:-.25rem}.-top-1{top:-.25rem}.bottom-0{bottom:0}.left-0{left:0}.right-4{right:1rem}.top-0{top:0}.top-4{top:1rem}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\[1000\]{z-index:1000}.z-\[40\]{z-index:40}.z-\[99990\]{z-index:99990}.z-\[9999\]{z-index:9999}.-m-2{margin:-.5rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-8{margin-top:2rem;margin-bottom:2rem}.mb-0{margin-bottom:0}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-0{margin-left:0}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-1{height:.25rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-16{height:4rem}.h-2{height:.5rem}.h-3{height:.75rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-64{height:16rem}.h-8{height:2rem}.h-\[30px\]{height:30px}.h-full{height:100%}.max-h-60{max-height:15rem}.max-h-\[300px\]{max-height:300px}.max-h-\[400px\]{max-height:400px}.max-h-\[60vh\]{max-height:60vh}.max-h-\[70vh\]{max-height:70vh}.max-h-\[90vh\]{max-height:90vh}.min-h-screen{min-height:100vh}.w-10{width:2.5rem}.w-11\/12{width:91.666667%}.w-12{width:3rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\/3{width:66.666667%}.w-3{width:.75rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-8{width:2rem}.w-\[10rem\]{width:10rem}.w-\[95\%\]{width:95%}.w-full{width:100%}.w-max{width:-moz-max-content;width:max-content}.min-w-0{min-width:0px}.min-w-24{min-width:6rem}.min-w-\[120px\]{min-width:120px}.min-w-\[320px\]{min-width:320px}.min-w-full{min-width:100%}.max-w-2xl{max-width:42rem}.max-w-36{max-width:9rem}.max-w-3xl{max-width:48rem}.max-w-\[600px\]{max-width:600px}.max-w-\[78vw\]{max-width:78vw}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-screen-2xl{max-width:1536px}.max-w-screen-lg{max-width:1024px}.max-w-xl{max-width:36rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.flex-shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.table-auto{table-layout:auto}.border-collapse{border-collapse:collapse}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-help{cursor:help}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize{resize:both}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.25rem * var(--tw-space-x-reverse));margin-left:calc(.25rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.75rem * var(--tw-space-x-reverse));margin-left:calc(.75rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-ellipsis{text-overflow:ellipsis}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-sm{border-radius:.125rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-l-4{border-left-width:4px}.border-t{border-top-width:1px}.border-\[var\(--border-color\)\]{border-color:var(--border-color)}.border-amber-200{--tw-border-opacity: 1;border-color:rgb(253 230 138 / var(--tw-border-opacity, 1))}.border-brand-primary{border-color:var(--brand-orange, #ff6503)}.border-gray-300{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1))}.border-gray-500{--tw-border-opacity: 1;border-color:rgb(107 114 128 / var(--tw-border-opacity, 1))}.border-green-200{--tw-border-opacity: 1;border-color:rgb(187 247 208 / var(--tw-border-opacity, 1))}.border-red-200{--tw-border-opacity: 1;border-color:rgb(254 202 202 / var(--tw-border-opacity, 1))}.border-red-600{--tw-border-opacity: 1;border-color:rgb(220 38 38 / var(--tw-border-opacity, 1))}.border-transparent{border-color:transparent}.border-yellow-200{--tw-border-opacity: 1;border-color:rgb(254 240 138 / var(--tw-border-opacity, 1))}.border-yellow-400{--tw-border-opacity: 1;border-color:rgb(250 204 21 / var(--tw-border-opacity, 1))}.bg-amber-50{--tw-bg-opacity: 1;background-color:rgb(255 251 235 / var(--tw-bg-opacity, 1))}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1))}.bg-black\/40{background-color:#0006}.bg-black\/50{background-color:#00000080}.bg-black\/80{background-color:#000c}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.bg-blue-600{--tw-bg-opacity: 1;background-color:rgb(37 99 235 / var(--tw-bg-opacity, 1))}.bg-brand-primary{background-color:var(--brand-orange, #ff6503)}.bg-brand-surface-subtle{background-color:var(--brand-light, #dae0e8)}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.bg-gray-50{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.bg-gray-500{--tw-bg-opacity: 1;background-color:rgb(107 114 128 / var(--tw-bg-opacity, 1))}.bg-gray-600{--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity, 1))}.bg-gray-900{--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity, 1))}.bg-green-100{--tw-bg-opacity: 1;background-color:rgb(220 252 231 / var(--tw-bg-opacity, 1))}.bg-green-50{--tw-bg-opacity: 1;background-color:rgb(240 253 244 / var(--tw-bg-opacity, 1))}.bg-green-500{--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity, 1))}.bg-green-600{--tw-bg-opacity: 1;background-color:rgb(22 163 74 / var(--tw-bg-opacity, 1))}.bg-orange-100{--tw-bg-opacity: 1;background-color:rgb(255 237 213 / var(--tw-bg-opacity, 1))}.bg-orange-500{--tw-bg-opacity: 1;background-color:rgb(249 115 22 / var(--tw-bg-opacity, 1))}.bg-purple-100{--tw-bg-opacity: 1;background-color:rgb(243 232 255 / var(--tw-bg-opacity, 1))}.bg-red-100{--tw-bg-opacity: 1;background-color:rgb(254 226 226 / var(--tw-bg-opacity, 1))}.bg-red-50{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.bg-red-600{--tw-bg-opacity: 1;background-color:rgb(220 38 38 / var(--tw-bg-opacity, 1))}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-yellow-100{--tw-bg-opacity: 1;background-color:rgb(254 249 195 / var(--tw-bg-opacity, 1))}.bg-yellow-200{--tw-bg-opacity: 1;background-color:rgb(254 240 138 / var(--tw-bg-opacity, 1))}.bg-yellow-50{--tw-bg-opacity: 1;background-color:rgb(254 252 232 / var(--tw-bg-opacity, 1))}.bg-yellow-500{--tw-bg-opacity: 1;background-color:rgb(234 179 8 / var(--tw-bg-opacity, 1))}.bg-yellow-600{--tw-bg-opacity: 1;background-color:rgb(202 138 4 / var(--tw-bg-opacity, 1))}.bg-opacity-50{--tw-bg-opacity: .5}.bg-opacity-75{--tw-bg-opacity: .75}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.\!p-0{padding:0!important}.p-0{padding:0}.p-2{padding:.5rem}.p-20{padding:5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.p-\[1\.25rem\]{padding:1.25rem}.px-0{padding-left:0;padding-right:0}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-\[3px\]{padding-left:3px;padding-right:3px}.py-0{padding-top:0;padding-bottom:0}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-1{padding-bottom:.25rem}.pb-4{padding-bottom:1rem}.pt-5{padding-top:1.25rem}.pt-6{padding-top:1.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.font-sans{font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji"}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[18px\]{font-size:18px}.text-\[1rem\]{font-size:1rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-\[600\]{font-weight:600}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.leading-6{line-height:1.5rem}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.text-amber-500{--tw-text-opacity: 1;color:rgb(245 158 11 / var(--tw-text-opacity, 1))}.text-amber-800{--tw-text-opacity: 1;color:rgb(146 64 14 / var(--tw-text-opacity, 1))}.text-blue-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.text-blue-700{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.text-gray-800{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity, 1))}.text-green-500{--tw-text-opacity: 1;color:rgb(34 197 94 / var(--tw-text-opacity, 1))}.text-green-600{--tw-text-opacity: 1;color:rgb(22 163 74 / var(--tw-text-opacity, 1))}.text-green-700{--tw-text-opacity: 1;color:rgb(21 128 61 / var(--tw-text-opacity, 1))}.text-green-800{--tw-text-opacity: 1;color:rgb(22 101 52 / var(--tw-text-opacity, 1))}.text-orange-700{--tw-text-opacity: 1;color:rgb(194 65 12 / var(--tw-text-opacity, 1))}.text-purple-700{--tw-text-opacity: 1;color:rgb(126 34 206 / var(--tw-text-opacity, 1))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.text-red-700{--tw-text-opacity: 1;color:rgb(185 28 28 / var(--tw-text-opacity, 1))}.text-red-800{--tw-text-opacity: 1;color:rgb(153 27 27 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-yellow-500{--tw-text-opacity: 1;color:rgb(234 179 8 / var(--tw-text-opacity, 1))}.text-yellow-600{--tw-text-opacity: 1;color:rgb(202 138 4 / var(--tw-text-opacity, 1))}.text-yellow-700{--tw-text-opacity: 1;color:rgb(161 98 7 / var(--tw-text-opacity, 1))}.text-yellow-800{--tw-text-opacity: 1;color:rgb(133 77 14 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.placeholder-gray-400::-moz-placeholder{--tw-placeholder-opacity: 1;color:rgb(156 163 175 / var(--tw-placeholder-opacity, 1))}.placeholder-gray-400::placeholder{--tw-placeholder-opacity: 1;color:rgb(156 163 175 / var(--tw-placeholder-opacity, 1))}.opacity-50{opacity:.5}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-500{transition-duration:.5s}*:focus{outline-color:var(--brand-orange, #ff6503)}:root{--brand-primary: #0b86cf;--brand-light: #e6f4fa;--brand-orange: #ff6503;--text-color: #1a1a1a}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--hover-bg-color, #f3f4f6);border-radius:5px}::-webkit-scrollbar-thumb{background:var(--brand-light, #dae0e8);border-radius:5px;border:2px solid var(--hover-bg-color, #f3f4f6)}::-webkit-scrollbar-thumb:hover{background:var(--brand-orange, #ff6503)}::-webkit-scrollbar-corner{background:var(--hover-bg-color, #f3f4f6)}*{scrollbar-width:thin;scrollbar-color:var(--brand-light, #dae0e8) var(--hover-bg-color, #f3f4f6)}html.dark ::-webkit-scrollbar-track{background:var(--hover-bg-color, #4b4b4b)}html.dark ::-webkit-scrollbar-thumb{background:var(--border-color, #4b5563);border:2px solid var(--hover-bg-color, #4b4b4b)}html.dark ::-webkit-scrollbar-thumb:hover{background:var(--brand-orange, #ff6503)}.bg-brand-primary{background-color:var(--brand-orange, #ff6503);color:#fff}.bg-brand-primary:hover{background-color:#e65a03!important}.bg-brand-primary:focus{background-color:var(--brand-orange, #ff6503);outline:2px solid var(--brand-orange, #ff6503);outline-offset:2px}.bg-brand-primary:active{background-color:#cc5202}.bg-brand-surface{background-color:var(--bg-color, #ffffff)}.bg-brand-surface-subtle{background-color:var(--brand-light, #dae0e8)!important;color:var(--brand-dark, #3a3a3a)!important}.bg-brand-surface-subtle *{color:var(--brand-dark, #3a3a3a)!important}.border-brand-primary{border-color:var(--brand-orange, #ff6503)!important}.text-brand-primary{color:var(--brand-orange, #ff6503)}.text-secondary{color:var(--secondary-text-color, #6b7280)}.hover-color-brand-orange:hover{color:var(--brand-orange, #ff6503)}.hoverable-bg:hover{background-color:var(--hover-bg-color, #f3f4f6)}.storybook-wrapper{background-color:var(--app-bg-color, #ffffff)}html.dark .storybook-wrapper{background-color:var(--app-bg-color-dark, #111111)}.checked\:relative:checked{position:relative}.checked\:border-\[\#0b86cf\]:checked{--tw-border-opacity: 1;border-color:rgb(11 134 207 / var(--tw-border-opacity, 1))}.checked\:bg-brand-primary:checked{background-color:var(--brand-orange, #ff6503)}.checked\:after\:absolute:checked:after{content:var(--tw-content);position:absolute}.checked\:after\:left-1\/2:checked:after{content:var(--tw-content);left:50%}.checked\:after\:top-1\/2:checked:after{content:var(--tw-content);top:50%}.checked\:after\:-translate-x-1\/2:checked:after{content:var(--tw-content);--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.checked\:after\:-translate-y-1\/2:checked:after{content:var(--tw-content);--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.checked\:after\:text-xs:checked:after{content:var(--tw-content);font-size:.75rem;line-height:1rem}.checked\:after\:font-bold:checked:after{content:var(--tw-content);font-weight:700}.checked\:after\:text-white:checked:after{content:var(--tw-content);--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.checked\:after\:content-\[\'✔\'\]:checked:after{--tw-content: "✔";content:var(--tw-content)}.hover\:bg-blue-700:hover{--tw-bg-opacity: 1;background-color:rgb(29 78 216 / var(--tw-bg-opacity, 1))}.hover\:bg-brand-surface-subtle:hover{background-color:var(--brand-light, #dae0e8)}.hover\:bg-gray-100:hover{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-700:hover{--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity, 1))}.hover\:bg-green-700:hover{--tw-bg-opacity: 1;background-color:rgb(21 128 61 / var(--tw-bg-opacity, 1))}.hover\:bg-red-200:hover{--tw-bg-opacity: 1;background-color:rgb(254 202 202 / var(--tw-bg-opacity, 1))}.hover\:bg-red-700:hover{--tw-bg-opacity: 1;background-color:rgb(185 28 28 / var(--tw-bg-opacity, 1))}.hover\:bg-yellow-700:hover{--tw-bg-opacity: 1;background-color:rgb(161 98 7 / var(--tw-bg-opacity, 1))}.hover\:bg-opacity-50:hover{--tw-bg-opacity: .5}.hover\:bg-opacity-90:hover{--tw-bg-opacity: .9}.hover\:opacity-80:hover{opacity:.8}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-\[var\(--brand-orange\)\]:focus{--tw-ring-color: var(--brand-orange)}.focus\:ring-red-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(239 68 68 / var(--tw-ring-opacity, 1))}.focus\:ring-yellow-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(234 179 8 / var(--tw-ring-opacity, 1))}.focus\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-65:disabled{opacity:.65}.dark\:border-amber-700:is(.dark *){--tw-border-opacity: 1;border-color:rgb(180 83 9 / var(--tw-border-opacity, 1))}.dark\:border-gray-500:is(.dark *){--tw-border-opacity: 1;border-color:rgb(107 114 128 / var(--tw-border-opacity, 1))}.dark\:border-gray-600:is(.dark *){--tw-border-opacity: 1;border-color:rgb(75 85 99 / var(--tw-border-opacity, 1))}.dark\:border-gray-700:is(.dark *){--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity, 1))}.dark\:border-green-800:is(.dark *){--tw-border-opacity: 1;border-color:rgb(22 101 52 / var(--tw-border-opacity, 1))}.dark\:border-red-500:is(.dark *){--tw-border-opacity: 1;border-color:rgb(239 68 68 / var(--tw-border-opacity, 1))}.dark\:border-red-800:is(.dark *){--tw-border-opacity: 1;border-color:rgb(153 27 27 / var(--tw-border-opacity, 1))}.dark\:border-yellow-700:is(.dark *){--tw-border-opacity: 1;border-color:rgb(161 98 7 / var(--tw-border-opacity, 1))}.dark\:border-yellow-800:is(.dark *){--tw-border-opacity: 1;border-color:rgb(133 77 14 / var(--tw-border-opacity, 1))}.dark\:bg-\[\#1e293b\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity, 1))}.dark\:bg-\[\#23272f\]:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(35 39 47 / var(--tw-bg-opacity, 1))}.dark\:bg-amber-900\/20:is(.dark *){background-color:#78350f33}.dark\:bg-black\/70:is(.dark *){background-color:#000000b3}.dark\:bg-blue-900\/30:is(.dark *){background-color:#1e3a8a4d}.dark\:bg-gray-500:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(107 114 128 / var(--tw-bg-opacity, 1))}.dark\:bg-gray-700:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(55 65 81 / var(--tw-bg-opacity, 1))}.dark\:bg-gray-800:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.dark\:bg-green-400:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(74 222 128 / var(--tw-bg-opacity, 1))}.dark\:bg-green-900\/20:is(.dark *){background-color:#14532d33}.dark\:bg-green-900\/30:is(.dark *){background-color:#14532d4d}.dark\:bg-orange-900\/30:is(.dark *){background-color:#7c2d124d}.dark\:bg-purple-900\/30:is(.dark *){background-color:#581c874d}.dark\:bg-red-900\/20:is(.dark *){background-color:#7f1d1d33}.dark\:bg-red-900\/30:is(.dark *){background-color:#7f1d1d4d}.dark\:bg-yellow-900\/20:is(.dark *){background-color:#713f1233}.dark\:bg-yellow-900\/30:is(.dark *){background-color:#713f124d}.dark\:text-amber-200:is(.dark *){--tw-text-opacity: 1;color:rgb(253 230 138 / var(--tw-text-opacity, 1))}.dark\:text-blue-400:is(.dark *){--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.dark\:text-gray-200:is(.dark *){--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity, 1))}.dark\:text-gray-300:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.dark\:text-gray-400:is(.dark *){--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.dark\:text-gray-500:is(.dark *){--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.dark\:text-green-200:is(.dark *){--tw-text-opacity: 1;color:rgb(187 247 208 / var(--tw-text-opacity, 1))}.dark\:text-green-400:is(.dark *){--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}.dark\:text-orange-400:is(.dark *){--tw-text-opacity: 1;color:rgb(251 146 60 / var(--tw-text-opacity, 1))}.dark\:text-purple-400:is(.dark *){--tw-text-opacity: 1;color:rgb(192 132 252 / var(--tw-text-opacity, 1))}.dark\:text-red-200:is(.dark *){--tw-text-opacity: 1;color:rgb(254 202 202 / var(--tw-text-opacity, 1))}.dark\:text-red-300:is(.dark *){--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.dark\:text-red-400:is(.dark *){--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.dark\:text-yellow-200:is(.dark *){--tw-text-opacity: 1;color:rgb(254 240 138 / var(--tw-text-opacity, 1))}.dark\:text-yellow-300:is(.dark *){--tw-text-opacity: 1;color:rgb(253 224 71 / var(--tw-text-opacity, 1))}.dark\:text-yellow-400:is(.dark *){--tw-text-opacity: 1;color:rgb(250 204 21 / var(--tw-text-opacity, 1))}.dark\:placeholder-gray-500:is(.dark *)::-moz-placeholder{--tw-placeholder-opacity: 1;color:rgb(107 114 128 / var(--tw-placeholder-opacity, 1))}.dark\:placeholder-gray-500:is(.dark *)::placeholder{--tw-placeholder-opacity: 1;color:rgb(107 114 128 / var(--tw-placeholder-opacity, 1))}.dark\:shadow-lg:is(.dark *){--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.dark\:hover\:bg-gray-400:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-gray-600:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-red-700:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(185 28 28 / var(--tw-bg-opacity, 1))}@media (min-width: 640px){.sm\:mx-0{margin-left:0;margin-right:0}.sm\:ml-3{margin-left:.75rem}.sm\:ml-4{margin-left:1rem}.sm\:mt-0{margin-top:0}.sm\:flex{display:flex}.sm\:h-10{height:2.5rem}.sm\:w-10{width:2.5rem}.sm\:w-\[90\%\]{width:90%}.sm\:w-auto{width:auto}.sm\:min-w-\[400px\]{min-width:400px}.sm\:flex-row-reverse{flex-direction:row-reverse}.sm\:items-start{align-items:flex-start}.sm\:space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.sm\:p-10{padding:2.5rem}.sm\:p-6{padding:1.5rem}.sm\:p-8{padding:2rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:pb-4{padding-bottom:1rem}.sm\:text-left{text-align:left}.sm\:text-sm{font-size:.875rem;line-height:1.25rem}}@media (min-width: 768px){.md\:h-16{height:4rem}.md\:w-16{width:4rem}.md\:w-\[85\%\]{width:85%}.md\:min-w-\[500px\]{min-width:500px}.md\:text-2xl{font-size:1.5rem;line-height:2rem}.md\:text-5xl{font-size:3rem;line-height:1}.md\:text-base{font-size:1rem;line-height:1.5rem}.md\:text-xl{font-size:1.25rem;line-height:1.75rem}}@media (min-width: 1024px){.lg\:h-20{height:5rem}.lg\:w-20{width:5rem}.lg\:w-auto{width:auto}.lg\:min-w-\[600px\]{min-width:600px}.lg\:text-3xl{font-size:1.875rem;line-height:2.25rem}.lg\:text-6xl{font-size:3.75rem;line-height:1}}@media (min-width: 1536px){.\32xl\:text-2xl{font-size:1.5rem;line-height:2rem}}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Type definitions for Table component
3
+ */
4
+ export interface PaginatedResult<T> {
5
+ data: T[];
6
+ totalRecords: number;
7
+ pageNumber?: number;
8
+ pageSize?: number;
9
+ }
10
+ export interface ListApiParameters {
11
+ filters?: Record<string, any>;
12
+ options?: apiArgs;
13
+ searchTerm?: string;
14
+ searchColumns?: string[];
15
+ pageNumber?: number;
16
+ pageSize?: number;
17
+ sortBy?: string;
18
+ order?: string;
19
+ onlyActive?: boolean;
20
+ fetchDeleted?: boolean;
21
+ usePermanentCache?: boolean;
22
+ }
23
+ export interface apiArgs {
24
+ arg: number | string;
25
+ usePermanentCache?: boolean;
26
+ persistedTotalCount?: number;
27
+ }
28
+ export type FilterState = Record<string, any[] | {
29
+ min?: number;
30
+ max?: number;
31
+ }>;
32
+ export interface FilterField {
33
+ id: string;
34
+ type: 'checkbox' | 'radio' | 'number' | 'dropdown' | 'date';
35
+ label: string;
36
+ options?: SelectOption[];
37
+ min?: number | string;
38
+ max?: number | string;
39
+ minOnly?: boolean;
40
+ maxOnly?: boolean;
41
+ multiple?: boolean;
42
+ placeholder?: string;
43
+ inline?: boolean;
44
+ }
45
+ export interface SelectOption {
46
+ label: string;
47
+ value: string;
48
+ risk_score?: number;
49
+ confidence_score?: number;
50
+ confidence_reason?: string;
51
+ }
52
+ export type BulkAction = {
53
+ [key: string]: string;
54
+ };
55
+ export declare const PAGE_SIZE = 10;
56
+ export declare const PAGE_INDEX = 0;
57
+ export declare const PAGINATION_INPUT_BUFFER_CH = 8;
58
+ export declare const CHECKBOX_STYLE = "w-4 h-4 appearance-none border \n border-gray-500 rounded-sm checked:bg-brand-primary \n checked:border-[#0b86cf] checked:relative \n checked:after:content-['\u2714'] checked:after:absolute \n checked:after:text-white checked:after:font-bold \n checked:after:left-1/2 checked:after:top-1/2\n checked:after:-translate-x-1/2 checked:after:-translate-y-1/2\n checked:after:text-xs";
59
+ //# sourceMappingURL=table.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../src/types/table.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,OAAO;IACtB,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEjF,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAC;IAC5D,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACvB,CAAC;AAGF,eAAO,MAAM,SAAS,KAAK,CAAC;AAC5B,eAAO,MAAM,UAAU,IAAI,CAAC;AAC5B,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAE5C,eAAO,MAAM,cAAc,ueAOW,CAAC"}
@@ -0,0 +1,16 @@
1
+ type ClassValue = string | number | boolean | undefined | null | ClassValue[];
2
+ /**
3
+ * Combines class names with proper handling of falsy values
4
+ * Similar to clsx/classnames but lighter weight
5
+ */
6
+ export declare function cn(...inputs: ClassValue[]): string;
7
+ /**
8
+ * Conditional class helper
9
+ */
10
+ export declare function conditionalClass(condition: boolean, trueClass: string, falseClass?: string): string;
11
+ /**
12
+ * Switch-like class helper for multiple conditions
13
+ */
14
+ export declare function switchClass<T extends string | number>(value: T, cases: Record<T, string>, defaultClass?: string): string;
15
+ export {};
16
+ //# sourceMappingURL=classNames.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"classNames.d.ts","sourceRoot":"","sources":["../../src/utils/classNames.ts"],"names":[],"mappings":"AAAA,KAAK,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,GAAG,UAAU,EAAE,CAAC;AAE9E;;;GAGG;AACH,wBAAgB,EAAE,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,CAiBlD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,GAAE,MAAW,GAAG,MAAM,CAEvG;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,YAAY,GAAE,MAAW,GAAG,MAAM,CAE5H"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Formats bytes into a human-readable string
3
+ * @param bytes - The number of bytes to format
4
+ * @param decimalPlaces - Number of decimal places (default: 2)
5
+ * @returns Formatted string like "1.5 MB"
6
+ */
7
+ export declare function formatBytes(bytes: number, decimalPlaces?: number): string;
8
+ //# sourceMappingURL=formatBytes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatBytes.d.ts","sourceRoot":"","sources":["../../src/utils/formatBytes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,GAAE,MAAU,GAAG,MAAM,CAQ5E"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Utility functions for optimized React.memo comparisons
3
+ */
4
+ /**
5
+ * Deep comparison for objects without using JSON.stringify
6
+ */
7
+ declare const deepEqual: (obj1: any, obj2: any) => boolean;
8
+ /**
9
+ * Comparison for global filters that focuses on relevant fields
10
+ */
11
+ export declare const globalFiltersEqual: (prev: Record<string, any>, next: Record<string, any>) => boolean;
12
+ export { deepEqual };
13
+ //# sourceMappingURL=memoUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memoUtils.d.ts","sourceRoot":"","sources":["../../src/utils/memoUtils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,QAAA,MAAM,SAAS,GAAI,MAAM,GAAG,EAAE,MAAM,GAAG,KAAG,OA+BzC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAAI,MAAM,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAG,OAUzF,CAAC;AAEF,OAAO,EAAE,SAAS,EAAE,CAAC"}
@@ -0,0 +1,11 @@
1
+ export type RiskLevel = 'low' | 'medium' | 'high' | 'critical';
2
+ export interface RiskScoreInfo {
3
+ level: RiskLevel;
4
+ label: string;
5
+ color: string;
6
+ backgroundColor: string;
7
+ }
8
+ export declare const getRiskLevel: (score: number) => RiskLevel;
9
+ export declare const getRiskScoreInfo: (score: number) => RiskScoreInfo;
10
+ export declare const isHighRisk: (score: number) => boolean;
11
+ //# sourceMappingURL=riskScore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"riskScore.d.ts","sourceRoot":"","sources":["../../src/utils/riskScore.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;AAE/D,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;CACzB;AAqCD,eAAO,MAAM,YAAY,GAAI,OAAO,MAAM,KAAG,SAK5C,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,OAAO,MAAM,KAAG,aAGhD,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,OAAO,MAAM,KAAG,OAG1C,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { IconType } from 'react-icons';
2
+
3
+ export interface StatusConfig {
4
+ icon: IconType;
5
+ animation?: string;
6
+ label: string;
7
+ colorClass: string;
8
+ }
9
+ export declare const STATUS_CONFIGURATIONS: Record<string, StatusConfig>;
10
+ export declare const getStatusConfig: (statusKey: string) => StatusConfig;
11
+ export declare const isRunningStatus: (statusKey: string) => boolean;
12
+ export declare const isFailedStatus: (statusKey: string) => boolean;
13
+ export declare const isSuccessStatus: (statusKey: string) => boolean;
14
+ //# sourceMappingURL=statusConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"statusConfig.d.ts","sourceRoot":"","sources":["../../src/utils/statusConfig.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGvC,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CA8D9D,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,WAAW,MAAM,KAAG,YAEnD,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,WAAW,MAAM,KAAG,OAEnD,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,WAAW,MAAM,KAAG,OAElD,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,WAAW,MAAM,KAAG,OAEnD,CAAC"}
package/package.json ADDED
@@ -0,0 +1,124 @@
1
+ {
2
+ "name": "@iqworksai/common-components",
3
+ "version": "0.1.0",
4
+ "description": "A reusable React component library and utilities package for IQWorks applications. Provides 46+ UI components, custom hooks, context providers, and utility functions extracted from DiscoverIQ Desktop.",
5
+ "main": "./dist/index.cjs",
6
+ "module": "./dist/index.mjs",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.mjs",
12
+ "require": "./dist/index.cjs"
13
+ },
14
+ "./styles": "./dist/styles/index.css"
15
+ },
16
+ "files": [
17
+ "dist",
18
+ "README.md",
19
+ "CHANGELOG.md"
20
+ ],
21
+ "repository": {
22
+ "type": "git",
23
+ "url": "https://github.com/iqworksai/common-components.git"
24
+ },
25
+ "keywords": [
26
+ "react",
27
+ "typescript",
28
+ "component-library",
29
+ "storybook",
30
+ "vite",
31
+ "ui-components",
32
+ "design-system",
33
+ "npm-package",
34
+ "iqworks"
35
+ ],
36
+ "author": "IQWorks",
37
+ "license": "PROPRIETARY",
38
+ "publishConfig": {
39
+ "access": "public"
40
+ },
41
+ "scripts": {
42
+ "build": "vite build",
43
+ "build:watch": "vite build --watch",
44
+ "typecheck": "tsc --noEmit",
45
+ "test": "jest",
46
+ "test:watch": "jest --watch",
47
+ "test:coverage": "jest --coverage",
48
+ "lint": "eslint src --ext .ts,.tsx",
49
+ "lint:fix": "eslint src --ext .ts,.tsx --fix",
50
+ "storybook": "storybook dev -p 6006",
51
+ "build-storybook": "storybook build",
52
+ "prepublishOnly": "npm run build"
53
+ },
54
+ "peerDependencies": {
55
+ "react": "^18.0.0",
56
+ "react-dom": "^18.0.0"
57
+ },
58
+ "peerDependenciesMeta": {
59
+ "react": {
60
+ "optional": false
61
+ },
62
+ "react-dom": {
63
+ "optional": false
64
+ },
65
+ "@reduxjs/toolkit": {
66
+ "optional": true
67
+ },
68
+ "react-redux": {
69
+ "optional": true
70
+ },
71
+ "react-router-dom": {
72
+ "optional": true
73
+ }
74
+ },
75
+ "dependencies": {
76
+ "@headlessui/react": "^2.2.9",
77
+ "@tanstack/react-table": "^8.21.3",
78
+ "chart.js": "^4.4.8",
79
+ "chartjs-chart-geo": "^4.3.4",
80
+ "chartjs-plugin-datalabels": "^2.2.0",
81
+ "chartjs-plugin-zoom": "^2.2.0",
82
+ "moment": "^2.30.1",
83
+ "papaparse": "^5.5.2",
84
+ "react-chartjs-2": "^5.3.0",
85
+ "react-icons": "^5.4.0",
86
+ "react-select": "^5.9.0"
87
+ },
88
+ "devDependencies": {
89
+ "@reduxjs/toolkit": "^2.11.2",
90
+ "@storybook/addon-a11y": "^8.6.15",
91
+ "@storybook/addon-backgrounds": "^8.6.15",
92
+ "@storybook/addon-controls": "^8.6.15",
93
+ "@storybook/addon-docs": "^8.6.15",
94
+ "@storybook/addon-essentials": "^8.6.15",
95
+ "@storybook/addon-interactions": "^8.6.15",
96
+ "@storybook/addon-measure": "^8.6.15",
97
+ "@storybook/addon-outline": "^8.6.15",
98
+ "@storybook/addon-viewport": "^8.6.15",
99
+ "@storybook/blocks": "^8.6.15",
100
+ "@storybook/react": "^8.6.15",
101
+ "@storybook/react-vite": "^8.6.15",
102
+ "@storybook/theming": "^8.6.15",
103
+ "@swc/jest": "^0.2.38",
104
+ "@testing-library/jest-dom": "^6.6.3",
105
+ "@testing-library/react": "^16.3.0",
106
+ "@testing-library/user-event": "^14.6.1",
107
+ "@types/node": "^20.14.8",
108
+ "@types/papaparse": "^5.5.2",
109
+ "@types/react": "^18.3.18",
110
+ "@types/react-dom": "^18.3.0",
111
+ "@vitejs/plugin-react": "^4.3.1",
112
+ "autoprefixer": "^10.4.23",
113
+ "chromatic": "^12.0.0",
114
+ "jest": "^30.0.0",
115
+ "postcss": "^8.5.6",
116
+ "react": "^18.3.1",
117
+ "react-dom": "^18.3.1",
118
+ "react-redux": "^9.2.0",
119
+ "tailwindcss": "^3.4.19",
120
+ "typescript": "^5.5.2",
121
+ "vite": "^5.3.1",
122
+ "vite-plugin-dts": "^3.0.0"
123
+ }
124
+ }