impact-nova 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 (502) hide show
  1. package/README.md +237 -0
  2. package/dist/App.d.ts +2 -0
  3. package/dist/assets/flatten.worker-C7x-Wj6s.js +1 -0
  4. package/dist/components/layout/dashboard-layout.d.ts +25 -0
  5. package/dist/components/ui/accordion-nested-list/accordion-nested-list.d.ts +3 -0
  6. package/dist/components/ui/accordion-nested-list/accordion-nested-list.js +105 -0
  7. package/dist/components/ui/accordion-nested-list/hooks/useAccordionNestedListState.d.ts +19 -0
  8. package/dist/components/ui/accordion-nested-list/hooks/useAccordionNestedListState.js +41 -0
  9. package/dist/components/ui/accordion-nested-list/index.d.ts +2 -0
  10. package/dist/components/ui/accordion-nested-list/index.js +4 -0
  11. package/dist/components/ui/accordion.d.ts +10 -0
  12. package/dist/components/ui/accordion.js +52 -0
  13. package/dist/components/ui/ag-grid-react/cell-renderers/actions-cell-renderer.d.ts +30 -0
  14. package/dist/components/ui/ag-grid-react/cell-renderers/actions-cell-renderer.js +27 -0
  15. package/dist/components/ui/ag-grid-react/cell-renderers/badge-cell-renderer.d.ts +44 -0
  16. package/dist/components/ui/ag-grid-react/cell-renderers/badge-cell-renderer.js +22 -0
  17. package/dist/components/ui/ag-grid-react/cell-renderers/checkbox-display-renderer.d.ts +29 -0
  18. package/dist/components/ui/ag-grid-react/cell-renderers/checkbox-display-renderer.js +36 -0
  19. package/dist/components/ui/ag-grid-react/cell-renderers/date-display-renderer.d.ts +37 -0
  20. package/dist/components/ui/ag-grid-react/cell-renderers/date-display-renderer.js +50 -0
  21. package/dist/components/ui/ag-grid-react/cell-renderers/editors/date-cell-editor.d.ts +33 -0
  22. package/dist/components/ui/ag-grid-react/cell-renderers/editors/date-cell-editor.js +73 -0
  23. package/dist/components/ui/ag-grid-react/cell-renderers/editors/input-cell-editor.d.ts +21 -0
  24. package/dist/components/ui/ag-grid-react/cell-renderers/editors/input-cell-editor.js +91 -0
  25. package/dist/components/ui/ag-grid-react/cell-renderers/editors/select-cell-editor.d.ts +45 -0
  26. package/dist/components/ui/ag-grid-react/cell-renderers/editors/select-cell-editor.js +64 -0
  27. package/dist/components/ui/ag-grid-react/cell-renderers/editors/split-cell-editor.d.ts +9 -0
  28. package/dist/components/ui/ag-grid-react/cell-renderers/editors/split-cell-editor.js +85 -0
  29. package/dist/components/ui/ag-grid-react/cell-renderers/editors/textarea-cell-editor.d.ts +31 -0
  30. package/dist/components/ui/ag-grid-react/cell-renderers/editors/textarea-cell-editor.js +61 -0
  31. package/dist/components/ui/ag-grid-react/cell-renderers/empty-cell-renderer.d.ts +10 -0
  32. package/dist/components/ui/ag-grid-react/cell-renderers/empty-cell-renderer.js +5 -0
  33. package/dist/components/ui/ag-grid-react/cell-renderers/index.d.ts +90 -0
  34. package/dist/components/ui/ag-grid-react/cell-renderers/index.js +65 -0
  35. package/dist/components/ui/ag-grid-react/cell-renderers/input-display-renderer.d.ts +35 -0
  36. package/dist/components/ui/ag-grid-react/cell-renderers/input-display-renderer.js +27 -0
  37. package/dist/components/ui/ag-grid-react/cell-renderers/link-with-batch-cell-renderer.d.ts +63 -0
  38. package/dist/components/ui/ag-grid-react/cell-renderers/link-with-batch-cell-renderer.js +148 -0
  39. package/dist/components/ui/ag-grid-react/cell-renderers/select-display-renderer.d.ts +45 -0
  40. package/dist/components/ui/ag-grid-react/cell-renderers/select-display-renderer.js +25 -0
  41. package/dist/components/ui/ag-grid-react/cell-renderers/split-cell-renderer.d.ts +13 -0
  42. package/dist/components/ui/ag-grid-react/cell-renderers/split-cell-renderer.js +67 -0
  43. package/dist/components/ui/ag-grid-react/cell-renderers/status-badge-renderer.d.ts +35 -0
  44. package/dist/components/ui/ag-grid-react/cell-renderers/status-badge-renderer.js +26 -0
  45. package/dist/components/ui/ag-grid-react/cell-renderers/switch-display-renderer.d.ts +35 -0
  46. package/dist/components/ui/ag-grid-react/cell-renderers/switch-display-renderer.js +38 -0
  47. package/dist/components/ui/ag-grid-react/cell-renderers/textarea-display-renderer.d.ts +34 -0
  48. package/dist/components/ui/ag-grid-react/cell-renderers/textarea-display-renderer.js +32 -0
  49. package/dist/components/ui/ag-grid-react/cell-renderers/types.d.ts +129 -0
  50. package/dist/components/ui/ag-grid-react/cell-renderers/types.js +74 -0
  51. package/dist/components/ui/ag-grid-react/headers/advanced-filter/advanced-filter-dialog.d.ts +24 -0
  52. package/dist/components/ui/ag-grid-react/headers/advanced-filter/advanced-filter-dialog.js +223 -0
  53. package/dist/components/ui/ag-grid-react/headers/advanced-filter/column-filter-section.d.ts +24 -0
  54. package/dist/components/ui/ag-grid-react/headers/advanced-filter/column-filter-section.js +230 -0
  55. package/dist/components/ui/ag-grid-react/headers/column-menu/column-settings-menu.d.ts +11 -0
  56. package/dist/components/ui/ag-grid-react/headers/column-menu/column-settings-menu.js +113 -0
  57. package/dist/components/ui/ag-grid-react/headers/components/header-info.d.ts +37 -0
  58. package/dist/components/ui/ag-grid-react/headers/components/header-info.js +93 -0
  59. package/dist/components/ui/ag-grid-react/headers/components/info-modal.d.ts +12 -0
  60. package/dist/components/ui/ag-grid-react/headers/components/info-modal.js +18 -0
  61. package/dist/components/ui/ag-grid-react/headers/components/lazy-tooltip.d.ts +16 -0
  62. package/dist/components/ui/ag-grid-react/headers/components/lazy-tooltip.js +13 -0
  63. package/dist/components/ui/ag-grid-react/headers/components/section-renderers.d.ts +32 -0
  64. package/dist/components/ui/ag-grid-react/headers/components/section-renderers.js +78 -0
  65. package/dist/components/ui/ag-grid-react/headers/context/grid-header-context.d.ts +34 -0
  66. package/dist/components/ui/ag-grid-react/headers/context/grid-header-context.js +6 -0
  67. package/dist/components/ui/ag-grid-react/headers/custom-header-group.d.ts +12 -0
  68. package/dist/components/ui/ag-grid-react/headers/custom-header-group.js +33 -0
  69. package/dist/components/ui/ag-grid-react/headers/custom-header.d.ts +4 -0
  70. package/dist/components/ui/ag-grid-react/headers/custom-header.js +230 -0
  71. package/dist/components/ui/ag-grid-react/headers/header-search-input.d.ts +29 -0
  72. package/dist/components/ui/ag-grid-react/headers/header-search-input.js +352 -0
  73. package/dist/components/ui/ag-grid-react/headers/utils/date-utils.d.ts +46 -0
  74. package/dist/components/ui/ag-grid-react/headers/utils/date-utils.js +38 -0
  75. package/dist/components/ui/ag-grid-react/headers/utils/filter-utils.d.ts +117 -0
  76. package/dist/components/ui/ag-grid-react/headers/utils/filter-utils.js +434 -0
  77. package/dist/components/ui/ag-grid-react/index.d.ts +5 -0
  78. package/dist/components/ui/ag-grid-react/index.js +183 -0
  79. package/dist/components/ui/ag-grid-react/process-backend-columndefs.d.ts +31 -0
  80. package/dist/components/ui/ag-grid-react/process-backend-columndefs.js +61 -0
  81. package/dist/components/ui/ag-grid-react/theme.d.ts +2 -0
  82. package/dist/components/ui/ag-grid-react/theme.js +46 -0
  83. package/dist/components/ui/ag-grid-react/value-formatters.d.ts +22 -0
  84. package/dist/components/ui/ag-grid-react/value-formatters.js +95 -0
  85. package/dist/components/ui/alert-dialog.d.ts +20 -0
  86. package/dist/components/ui/alert-dialog.js +114 -0
  87. package/dist/components/ui/alert.d.ts +11 -0
  88. package/dist/components/ui/alert.js +54 -0
  89. package/dist/components/ui/avatar.d.ts +14 -0
  90. package/dist/components/ui/avatar.js +60 -0
  91. package/dist/components/ui/badge.d.ts +10 -0
  92. package/dist/components/ui/badge.js +54 -0
  93. package/dist/components/ui/breadcrumb.d.ts +24 -0
  94. package/dist/components/ui/breadcrumb.js +150 -0
  95. package/dist/components/ui/button-group.d.ts +17 -0
  96. package/dist/components/ui/button-group.js +110 -0
  97. package/dist/components/ui/button-variants.d.ts +4 -0
  98. package/dist/components/ui/button-variants.js +31 -0
  99. package/dist/components/ui/button.d.ts +10 -0
  100. package/dist/components/ui/button.js +27 -0
  101. package/dist/components/ui/calendar.d.ts +46 -0
  102. package/dist/components/ui/calendar.js +660 -0
  103. package/dist/components/ui/card.d.ts +8 -0
  104. package/dist/components/ui/card.js +61 -0
  105. package/dist/components/ui/chart/chart.d.ts +29 -0
  106. package/dist/components/ui/chart/chart.js +203 -0
  107. package/dist/components/ui/chart/chart.utils.d.ts +3 -0
  108. package/dist/components/ui/chart/chart.utils.js +192 -0
  109. package/dist/components/ui/chart/index.d.ts +3 -0
  110. package/dist/components/ui/chart/index.js +12 -0
  111. package/dist/components/ui/checkbox.d.ts +8 -0
  112. package/dist/components/ui/checkbox.js +54 -0
  113. package/dist/components/ui/chips.d.ts +13 -0
  114. package/dist/components/ui/chips.js +60 -0
  115. package/dist/components/ui/data-table/data-table-column-list.d.ts +6 -0
  116. package/dist/components/ui/data-table/data-table-column-list.js +153 -0
  117. package/dist/components/ui/data-table/data-table-context.d.ts +18 -0
  118. package/dist/components/ui/data-table/data-table-context.js +11 -0
  119. package/dist/components/ui/data-table/data-table-format-options.d.ts +1 -0
  120. package/dist/components/ui/data-table/data-table-format-options.js +74 -0
  121. package/dist/components/ui/data-table/data-table-sheet.d.ts +20 -0
  122. package/dist/components/ui/data-table/data-table-sheet.js +81 -0
  123. package/dist/components/ui/data-table/data-table-view-options.d.ts +8 -0
  124. package/dist/components/ui/data-table/data-table-view-options.js +75 -0
  125. package/dist/components/ui/data-table/data-table.d.ts +26 -0
  126. package/dist/components/ui/data-table/data-table.js +67 -0
  127. package/dist/components/ui/data-table/index.d.ts +6 -0
  128. package/dist/components/ui/data-table/index.js +20 -0
  129. package/dist/components/ui/data-table/stories/fakeServer.d.ts +14 -0
  130. package/dist/components/ui/data-table/stories/interfaces.d.ts +15 -0
  131. package/dist/components/ui/date-picker/date-picker.d.ts +3 -0
  132. package/dist/components/ui/date-picker/date-picker.js +116 -0
  133. package/dist/components/ui/date-picker/date-range-picker.d.ts +3 -0
  134. package/dist/components/ui/date-picker/date-range-picker.js +195 -0
  135. package/dist/components/ui/date-picker/index.d.ts +18 -0
  136. package/dist/components/ui/date-picker/index.js +20 -0
  137. package/dist/components/ui/date-picker/month-picker.d.ts +3 -0
  138. package/dist/components/ui/date-picker/month-picker.js +117 -0
  139. package/dist/components/ui/date-picker/month-range-picker.d.ts +3 -0
  140. package/dist/components/ui/date-picker/month-range-picker.js +193 -0
  141. package/dist/components/ui/date-picker/multi-date-picker.d.ts +3 -0
  142. package/dist/components/ui/date-picker/multi-date-picker.js +94 -0
  143. package/dist/components/ui/date-picker/multi-month-picker.d.ts +3 -0
  144. package/dist/components/ui/date-picker/multi-month-picker.js +93 -0
  145. package/dist/components/ui/date-picker/multi-week-picker.d.ts +3 -0
  146. package/dist/components/ui/date-picker/multi-week-picker.js +98 -0
  147. package/dist/components/ui/date-picker/week-picker.d.ts +3 -0
  148. package/dist/components/ui/date-picker/week-picker.js +135 -0
  149. package/dist/components/ui/date-picker/week-range-picker.d.ts +3 -0
  150. package/dist/components/ui/date-picker/week-range-picker.js +207 -0
  151. package/dist/components/ui/dialog.d.ts +25 -0
  152. package/dist/components/ui/dialog.js +116 -0
  153. package/dist/components/ui/drawer.d.ts +22 -0
  154. package/dist/components/ui/drawer.js +98 -0
  155. package/dist/components/ui/dropdown-menu.d.ts +42 -0
  156. package/dist/components/ui/dropdown-menu.js +193 -0
  157. package/dist/components/ui/dynamic-layout.d.ts +12 -0
  158. package/dist/components/ui/dynamic-layout.js +50 -0
  159. package/dist/components/ui/empty-container.d.ts +8 -0
  160. package/dist/components/ui/empty-container.js +108 -0
  161. package/dist/components/ui/file-upload.d.ts +12 -0
  162. package/dist/components/ui/file-upload.js +241 -0
  163. package/dist/components/ui/filter-panel/filter-panel.d.ts +7 -0
  164. package/dist/components/ui/filter-panel/filter-panel.js +101 -0
  165. package/dist/components/ui/filter-panel/index.d.ts +2 -0
  166. package/dist/components/ui/filter-panel/index.js +8 -0
  167. package/dist/components/ui/filter-strip/filter-strip.d.ts +3 -0
  168. package/dist/components/ui/filter-strip/filter-strip.js +95 -0
  169. package/dist/components/ui/filter-strip/filter-summary.d.ts +15 -0
  170. package/dist/components/ui/filter-strip/filter-summary.js +204 -0
  171. package/dist/components/ui/filter-strip/filter-tag-list.d.ts +9 -0
  172. package/dist/components/ui/filter-strip/filter-tag-list.js +136 -0
  173. package/dist/components/ui/filter-strip/index.d.ts +2 -0
  174. package/dist/components/ui/filter-strip/index.js +4 -0
  175. package/dist/components/ui/header.d.ts +15 -0
  176. package/dist/components/ui/header.js +125 -0
  177. package/dist/components/ui/horizontal-scroller/horizontal-scroller.d.ts +4 -0
  178. package/dist/components/ui/horizontal-scroller/horizontal-scroller.js +165 -0
  179. package/dist/components/ui/horizontal-scroller/index.d.ts +2 -0
  180. package/dist/components/ui/horizontal-scroller/index.js +1 -0
  181. package/dist/components/ui/hover-card.d.ts +6 -0
  182. package/dist/components/ui/hover-card.js +23 -0
  183. package/dist/components/ui/input.d.ts +17 -0
  184. package/dist/components/ui/input.js +107 -0
  185. package/dist/components/ui/label.d.ts +3 -0
  186. package/dist/components/ui/label.js +18 -0
  187. package/dist/components/ui/loader.d.ts +11 -0
  188. package/dist/components/ui/loader.js +72 -0
  189. package/dist/components/ui/nested-list/components/NestedListApplyDiscardButtons.d.ts +11 -0
  190. package/dist/components/ui/nested-list/components/NestedListApplyDiscardButtons.js +37 -0
  191. package/dist/components/ui/nested-list/components/NestedListCategoryFilters.d.ts +10 -0
  192. package/dist/components/ui/nested-list/components/NestedListCategoryFilters.js +33 -0
  193. package/dist/components/ui/nested-list/components/NestedListContent.d.ts +21 -0
  194. package/dist/components/ui/nested-list/components/NestedListContent.js +73 -0
  195. package/dist/components/ui/nested-list/components/NestedListDragOverlay.d.ts +7 -0
  196. package/dist/components/ui/nested-list/components/NestedListHeader.d.ts +18 -0
  197. package/dist/components/ui/nested-list/components/NestedListHeader.js +86 -0
  198. package/dist/components/ui/nested-list/components/SortableItem.d.ts +17 -0
  199. package/dist/components/ui/nested-list/components/SortableItem.js +139 -0
  200. package/dist/components/ui/nested-list/hooks/useNestedListDragDrop.d.ts +14 -0
  201. package/dist/components/ui/nested-list/hooks/useNestedListDragDrop.js +168 -0
  202. package/dist/components/ui/nested-list/hooks/useNestedListHandlers.d.ts +42 -0
  203. package/dist/components/ui/nested-list/hooks/useNestedListHandlers.js +185 -0
  204. package/dist/components/ui/nested-list/hooks/useNestedListSelectAll.d.ts +16 -0
  205. package/dist/components/ui/nested-list/hooks/useNestedListSelectAll.js +62 -0
  206. package/dist/components/ui/nested-list/hooks/useNestedListState.d.ts +73 -0
  207. package/dist/components/ui/nested-list/hooks/useNestedListState.js +165 -0
  208. package/dist/components/ui/nested-list/index.d.ts +2 -0
  209. package/dist/components/ui/nested-list/index.js +6 -0
  210. package/dist/components/ui/nested-list/nested-list.d.ts +3 -0
  211. package/dist/components/ui/nested-list/nested-list.js +363 -0
  212. package/dist/components/ui/notification-panel/index.d.ts +3 -0
  213. package/dist/components/ui/notification-panel/index.js +20 -0
  214. package/dist/components/ui/notification-panel/notification-item.d.ts +14 -0
  215. package/dist/components/ui/notification-panel/notification-item.js +86 -0
  216. package/dist/components/ui/notification-panel/notification-list.d.ts +5 -0
  217. package/dist/components/ui/notification-panel/notification-list.js +45 -0
  218. package/dist/components/ui/notification-panel/notification-panel.d.ts +9 -0
  219. package/dist/components/ui/notification-panel/notification-panel.js +58 -0
  220. package/dist/components/ui/popover.d.ts +24 -0
  221. package/dist/components/ui/popover.js +84 -0
  222. package/dist/components/ui/portal.d.ts +7 -0
  223. package/dist/components/ui/portal.js +18 -0
  224. package/dist/components/ui/progress-bar.d.ts +1 -0
  225. package/dist/components/ui/progress.d.ts +9 -0
  226. package/dist/components/ui/progress.js +61 -0
  227. package/dist/components/ui/prompt.d.ts +26 -0
  228. package/dist/components/ui/prompt.js +141 -0
  229. package/dist/components/ui/radio-group.d.ts +11 -0
  230. package/dist/components/ui/radio-group.js +68 -0
  231. package/dist/components/ui/select/components/LabelWithSequence.d.ts +13 -0
  232. package/dist/components/ui/select/components/LabelWithSequence.js +18 -0
  233. package/dist/components/ui/select/components/Submenu.d.ts +15 -0
  234. package/dist/components/ui/select/components/Submenu.js +85 -0
  235. package/dist/components/ui/select/hooks/useClickOutside.d.ts +15 -0
  236. package/dist/components/ui/select/hooks/useClickOutside.js +43 -0
  237. package/dist/components/ui/select/hooks/useFlattenOptions.d.ts +24 -0
  238. package/dist/components/ui/select/hooks/useFlattenOptions.js +233 -0
  239. package/dist/components/ui/select/hooks/useMenuPosition.d.ts +2 -0
  240. package/dist/components/ui/select/hooks/useMenuPosition.js +89 -0
  241. package/dist/components/ui/select/hooks/useSelectionModel.d.ts +6 -0
  242. package/dist/components/ui/select/hooks/useSelectionModel.js +25 -0
  243. package/dist/components/ui/select/hooks/useVisibleStats.d.ts +16 -0
  244. package/dist/components/ui/select/hooks/useVisibleStats.js +54 -0
  245. package/dist/components/ui/select/index.d.ts +3 -0
  246. package/dist/components/ui/select/index.js +13 -0
  247. package/dist/components/ui/select/select.d.ts +6 -0
  248. package/dist/components/ui/select/select.js +814 -0
  249. package/dist/components/ui/select/utils/select.d.ts +12 -0
  250. package/dist/components/ui/select/utils/select.js +72 -0
  251. package/dist/components/ui/select/workers/flatten.worker.d.ts +9 -0
  252. package/dist/components/ui/select/workers/flatten.worker.js +11 -0
  253. package/dist/components/ui/separator.d.ts +4 -0
  254. package/dist/components/ui/separator.js +24 -0
  255. package/dist/components/ui/sheet.d.ts +30 -0
  256. package/dist/components/ui/sheet.js +157 -0
  257. package/dist/components/ui/sidebar.d.ts +98 -0
  258. package/dist/components/ui/sidebar.js +681 -0
  259. package/dist/components/ui/skeleton.d.ts +2 -0
  260. package/dist/components/ui/skeleton.js +17 -0
  261. package/dist/components/ui/slider.d.ts +4 -0
  262. package/dist/components/ui/slider.js +23 -0
  263. package/dist/components/ui/smart-input.d.ts +25 -0
  264. package/dist/components/ui/smart-input.js +177 -0
  265. package/dist/components/ui/stepper.d.ts +22 -0
  266. package/dist/components/ui/stepper.js +137 -0
  267. package/dist/components/ui/switch.d.ts +4 -0
  268. package/dist/components/ui/switch.js +27 -0
  269. package/dist/components/ui/tabs.d.ts +14 -0
  270. package/dist/components/ui/tabs.js +102 -0
  271. package/dist/components/ui/tag-group.d.ts +22 -0
  272. package/dist/components/ui/tag-group.js +56 -0
  273. package/dist/components/ui/tag.d.ts +16 -0
  274. package/dist/components/ui/tag.js +72 -0
  275. package/dist/components/ui/textarea.d.ts +13 -0
  276. package/dist/components/ui/textarea.js +85 -0
  277. package/dist/components/ui/toast.d.ts +17 -0
  278. package/dist/components/ui/toast.js +102 -0
  279. package/dist/components/ui/toaster.d.ts +6 -0
  280. package/dist/components/ui/toaster.js +100 -0
  281. package/dist/components/ui/tooltip.d.ts +14 -0
  282. package/dist/components/ui/tooltip.js +49 -0
  283. package/dist/components/ui/types/accordion-nested-list.types.d.ts +112 -0
  284. package/dist/components/ui/types/accordion.types.d.ts +1 -0
  285. package/dist/components/ui/types/ag-grid.types.d.ts +164 -0
  286. package/dist/components/ui/types/alert.types.d.ts +5 -0
  287. package/dist/components/ui/types/avatar.types.d.ts +1 -0
  288. package/dist/components/ui/types/badge.types.d.ts +1 -0
  289. package/dist/components/ui/types/breadcrumb.types.d.ts +1 -0
  290. package/dist/components/ui/types/button-group.types.d.ts +1 -0
  291. package/dist/components/ui/types/button.types.d.ts +1 -0
  292. package/dist/components/ui/types/card.types.d.ts +1 -0
  293. package/dist/components/ui/types/chart.types.d.ts +23 -0
  294. package/dist/components/ui/types/checkbox.types.d.ts +1 -0
  295. package/dist/components/ui/types/chips.types.d.ts +1 -0
  296. package/dist/components/ui/types/date-picker.types.d.ts +100 -0
  297. package/dist/components/ui/types/dialog.types.d.ts +8 -0
  298. package/dist/components/ui/types/dynamic-layout.types.d.ts +1 -0
  299. package/dist/components/ui/types/empty-container.types.d.ts +18 -0
  300. package/dist/components/ui/types/file-upload.types.d.ts +23 -0
  301. package/dist/components/ui/types/filter-panel.types.d.ts +42 -0
  302. package/dist/components/ui/types/filter-strip.types.d.ts +86 -0
  303. package/dist/components/ui/types/horizontal-scroller.types.d.ts +49 -0
  304. package/dist/components/ui/types/hover-card.types.d.ts +1 -0
  305. package/dist/components/ui/types/input.types.d.ts +1 -0
  306. package/dist/components/ui/types/loader.types.d.ts +1 -0
  307. package/dist/components/ui/types/nested-list.types.d.ts +63 -0
  308. package/dist/components/ui/types/nested-list.types.js +24 -0
  309. package/dist/components/ui/types/notification-panel.types.d.ts +63 -0
  310. package/dist/components/ui/types/popover.types.d.ts +1 -0
  311. package/dist/components/ui/types/progress-bar.types.d.ts +2 -0
  312. package/dist/components/ui/types/prompt.types.d.ts +1 -0
  313. package/dist/components/ui/types/radio-button-group.types.d.ts +1 -0
  314. package/dist/components/ui/types/select.types.d.ts +329 -0
  315. package/dist/components/ui/types/sidebar.types.d.ts +1 -0
  316. package/dist/components/ui/types/slider.types.d.ts +1 -0
  317. package/dist/components/ui/types/stepper.types.d.ts +1 -0
  318. package/dist/components/ui/types/switch.types.d.ts +1 -0
  319. package/dist/components/ui/types/tabs.types.d.ts +1 -0
  320. package/dist/components/ui/types/tag-group.types.d.ts +1 -0
  321. package/dist/components/ui/types/tag.types.d.ts +1 -0
  322. package/dist/components/ui/types/text-area.types.d.ts +1 -0
  323. package/dist/hooks/use-mobile.d.ts +1 -0
  324. package/dist/hooks/use-toast.d.ts +45 -0
  325. package/dist/hooks/use-toast.js +97 -0
  326. package/dist/ia-logo.svg +18 -0
  327. package/dist/icons/assets/PivotMode.svg.js +4 -0
  328. package/dist/icons/assets/PivotMode.svg2.js +5 -0
  329. package/dist/icons/assets/alan.svg.js +4 -0
  330. package/dist/icons/assets/alan.svg2.js +5 -0
  331. package/dist/icons/assets/alerts.svg.js +4 -0
  332. package/dist/icons/assets/alerts.svg2.js +5 -0
  333. package/dist/icons/assets/analyticalSearch.svg.js +4 -0
  334. package/dist/icons/assets/analyticalSearch.svg2.js +5 -0
  335. package/dist/icons/assets/back.svg.js +4 -0
  336. package/dist/icons/assets/back.svg2.js +5 -0
  337. package/dist/icons/assets/backdrop.svg.js +4 -0
  338. package/dist/icons/assets/backdrop.svg2.js +15 -0
  339. package/dist/icons/assets/bell.svg.js +4 -0
  340. package/dist/icons/assets/bell.svg2.js +5 -0
  341. package/dist/icons/assets/bin.svg.js +4 -0
  342. package/dist/icons/assets/bin.svg2.js +5 -0
  343. package/dist/icons/assets/blocks.svg.js +4 -0
  344. package/dist/icons/assets/blocks.svg2.js +5 -0
  345. package/dist/icons/assets/box.svg.js +4 -0
  346. package/dist/icons/assets/box.svg2.js +5 -0
  347. package/dist/icons/assets/calender-month.svg.js +4 -0
  348. package/dist/icons/assets/calender-month.svg2.js +5 -0
  349. package/dist/icons/assets/calender.svg.js +4 -0
  350. package/dist/icons/assets/calender.svg2.js +5 -0
  351. package/dist/icons/assets/chart.svg.js +4 -0
  352. package/dist/icons/assets/chart.svg2.js +5 -0
  353. package/dist/icons/assets/checkmark.svg.js +4 -0
  354. package/dist/icons/assets/checkmark.svg2.js +5 -0
  355. package/dist/icons/assets/chevronRight.svg.js +4 -0
  356. package/dist/icons/assets/chevronRight.svg2.js +5 -0
  357. package/dist/icons/assets/collapse.svg.js +4 -0
  358. package/dist/icons/assets/collapse.svg2.js +5 -0
  359. package/dist/icons/assets/column.svg.js +4 -0
  360. package/dist/icons/assets/column.svg2.js +5 -0
  361. package/dist/icons/assets/copy.svg.js +4 -0
  362. package/dist/icons/assets/copy.svg2.js +5 -0
  363. package/dist/icons/assets/createNewDocument.svg.js +4 -0
  364. package/dist/icons/assets/createNewDocument.svg2.js +5 -0
  365. package/dist/icons/assets/cross.svg.js +4 -0
  366. package/dist/icons/assets/cross.svg2.js +5 -0
  367. package/dist/icons/assets/delete.svg.js +4 -0
  368. package/dist/icons/assets/delete.svg2.js +5 -0
  369. package/dist/icons/assets/density.svg.js +4 -0
  370. package/dist/icons/assets/density.svg2.js +5 -0
  371. package/dist/icons/assets/document.svg.js +4 -0
  372. package/dist/icons/assets/document.svg2.js +5 -0
  373. package/dist/icons/assets/drag.svg.js +4 -0
  374. package/dist/icons/assets/drag.svg2.js +5 -0
  375. package/dist/icons/assets/draw.svg.js +4 -0
  376. package/dist/icons/assets/draw.svg2.js +5 -0
  377. package/dist/icons/assets/email.svg.js +4 -0
  378. package/dist/icons/assets/email.svg2.js +5 -0
  379. package/dist/icons/assets/errorCircle.svg.js +4 -0
  380. package/dist/icons/assets/errorCircle.svg2.js +5 -0
  381. package/dist/icons/assets/expand.svg.js +4 -0
  382. package/dist/icons/assets/expand.svg2.js +5 -0
  383. package/dist/icons/assets/filter.svg.js +4 -0
  384. package/dist/icons/assets/filter.svg2.js +5 -0
  385. package/dist/icons/assets/fiveSideStar.svg.js +4 -0
  386. package/dist/icons/assets/fiveSideStar.svg2.js +5 -0
  387. package/dist/icons/assets/floppy.svg.js +4 -0
  388. package/dist/icons/assets/floppy.svg2.js +5 -0
  389. package/dist/icons/assets/font.svg.js +4 -0
  390. package/dist/icons/assets/font.svg2.js +5 -0
  391. package/dist/icons/assets/funnel-hide.svg.js +4 -0
  392. package/dist/icons/assets/funnel-hide.svg2.js +5 -0
  393. package/dist/icons/assets/funnel-show.svg.js +4 -0
  394. package/dist/icons/assets/funnel-show.svg2.js +5 -0
  395. package/dist/icons/assets/globe.svg.js +4 -0
  396. package/dist/icons/assets/globe.svg2.js +5 -0
  397. package/dist/icons/assets/hamburger-closed.svg.js +4 -0
  398. package/dist/icons/assets/hamburger-closed.svg2.js +5 -0
  399. package/dist/icons/assets/hamburger-open.svg.js +4 -0
  400. package/dist/icons/assets/hamburger-open.svg2.js +5 -0
  401. package/dist/icons/assets/help-icon.svg.js +4 -0
  402. package/dist/icons/assets/help-icon.svg2.js +5 -0
  403. package/dist/icons/assets/ia-logo.svg.js +4 -0
  404. package/dist/icons/assets/ia-logo.svg2.js +5 -0
  405. package/dist/icons/assets/illustration_1.svg.js +4 -0
  406. package/dist/icons/assets/illustration_1.svg2.js +5 -0
  407. package/dist/icons/assets/info-icon.svg.js +4 -0
  408. package/dist/icons/assets/info-icon.svg2.js +5 -0
  409. package/dist/icons/assets/loadingSpinner.svg.js +4 -0
  410. package/dist/icons/assets/loadingSpinner.svg2.js +5 -0
  411. package/dist/icons/assets/locked.svg.js +4 -0
  412. package/dist/icons/assets/locked.svg2.js +5 -0
  413. package/dist/icons/assets/loginArrow.svg.js +4 -0
  414. package/dist/icons/assets/loginArrow.svg2.js +5 -0
  415. package/dist/icons/assets/matchWith.svg.js +4 -0
  416. package/dist/icons/assets/matchWith.svg2.js +5 -0
  417. package/dist/icons/assets/message-icon.svg.js +4 -0
  418. package/dist/icons/assets/message-icon.svg2.js +5 -0
  419. package/dist/icons/assets/more.svg.js +4 -0
  420. package/dist/icons/assets/more.svg2.js +5 -0
  421. package/dist/icons/assets/multi-color-filter.svg.js +4 -0
  422. package/dist/icons/assets/multi-color-filter.svg2.js +5 -0
  423. package/dist/icons/assets/paperrocket.svg.js +4 -0
  424. package/dist/icons/assets/paperrocket.svg2.js +5 -0
  425. package/dist/icons/assets/pencil.svg.js +4 -0
  426. package/dist/icons/assets/pencil.svg2.js +5 -0
  427. package/dist/icons/assets/person.svg.js +4 -0
  428. package/dist/icons/assets/person.svg2.js +5 -0
  429. package/dist/icons/assets/pin.svg.js +4 -0
  430. package/dist/icons/assets/pin.svg2.js +5 -0
  431. package/dist/icons/assets/plus.svg.js +4 -0
  432. package/dist/icons/assets/plus.svg2.js +5 -0
  433. package/dist/icons/assets/reset.svg.js +4 -0
  434. package/dist/icons/assets/reset.svg2.js +5 -0
  435. package/dist/icons/assets/rocket.svg.js +4 -0
  436. package/dist/icons/assets/rocket.svg2.js +5 -0
  437. package/dist/icons/assets/search.svg.js +4 -0
  438. package/dist/icons/assets/search.svg2.js +5 -0
  439. package/dist/icons/assets/settings.svg.js +4 -0
  440. package/dist/icons/assets/settings.svg2.js +5 -0
  441. package/dist/icons/assets/shapes.svg.js +4 -0
  442. package/dist/icons/assets/shapes.svg2.js +5 -0
  443. package/dist/icons/assets/stack-comfort.svg.js +4 -0
  444. package/dist/icons/assets/stack-comfort.svg2.js +5 -0
  445. package/dist/icons/assets/stack-compact.svg.js +4 -0
  446. package/dist/icons/assets/stack-compact.svg2.js +5 -0
  447. package/dist/icons/assets/stack.svg.js +4 -0
  448. package/dist/icons/assets/stack.svg2.js +5 -0
  449. package/dist/icons/assets/store.svg.js +4 -0
  450. package/dist/icons/assets/store.svg2.js +5 -0
  451. package/dist/icons/assets/table.svg.js +4 -0
  452. package/dist/icons/assets/table.svg2.js +5 -0
  453. package/dist/icons/assets/three-dots.svg.js +4 -0
  454. package/dist/icons/assets/three-dots.svg2.js +5 -0
  455. package/dist/icons/assets/trendingDown.svg.js +4 -0
  456. package/dist/icons/assets/trendingDown.svg2.js +5 -0
  457. package/dist/icons/assets/trendingFlat.svg.js +4 -0
  458. package/dist/icons/assets/trendingFlat.svg2.js +5 -0
  459. package/dist/icons/assets/trendingNeutral.svg.js +4 -0
  460. package/dist/icons/assets/trendingNeutral.svg2.js +5 -0
  461. package/dist/icons/assets/trendingUp.svg.js +4 -0
  462. package/dist/icons/assets/trendingUp.svg2.js +5 -0
  463. package/dist/icons/assets/unpin.svg.js +4 -0
  464. package/dist/icons/assets/unpin.svg2.js +5 -0
  465. package/dist/icons/assets/upload.svg.js +4 -0
  466. package/dist/icons/assets/upload.svg2.js +5 -0
  467. package/dist/icons/assets/webp/bill-or-receipt.webp.js +4 -0
  468. package/dist/icons/assets/webp/checklist-with-pen.webp.js +4 -0
  469. package/dist/icons/assets/webp/click-me-arrow.webp.js +4 -0
  470. package/dist/icons/assets/webp/csv-logo.webp.js +4 -0
  471. package/dist/icons/assets/webp/dollar.webp.js +4 -0
  472. package/dist/icons/assets/webp/empty-state-1.webp.js +4 -0
  473. package/dist/icons/assets/webp/empty-state-2.webp.js +4 -0
  474. package/dist/icons/assets/webp/empty-state-3.webp.js +4 -0
  475. package/dist/icons/assets/webp/empty-state-4.webp.js +4 -0
  476. package/dist/icons/assets/webp/empty-state-5.webp.js +4 -0
  477. package/dist/icons/assets/webp/empty-state-6.webp.js +4 -0
  478. package/dist/icons/assets/webp/excel-logo.webp.js +4 -0
  479. package/dist/icons/assets/webp/file-upload.webp.js +4 -0
  480. package/dist/icons/assets/webp/inventory-adjustment.webp.js +4 -0
  481. package/dist/icons/assets/webp/multicolor-bell.webp.js +4 -0
  482. package/dist/icons/assets/webp/price-tag.webp.js +4 -0
  483. package/dist/icons/assets/webp/receipts-stack.webp.js +4 -0
  484. package/dist/icons/assets/webp/recommended-receipt.webp.js +4 -0
  485. package/dist/icons/assets/webp/return-carton.webp.js +4 -0
  486. package/dist/icons/assets/webp/shipping-container.webp.js +4 -0
  487. package/dist/icons/assets/webp/stack-of-packaged-boxes.webp.js +4 -0
  488. package/dist/icons/assets/webp/text-logo.webp.js +4 -0
  489. package/dist/icons/assets/webp/two-stacked-packaged-boxes.webp.js +4 -0
  490. package/dist/icons/assets/webp/warranty.webp.js +4 -0
  491. package/dist/icons/index.d.ts +119 -0
  492. package/dist/icons/index.js +382 -0
  493. package/dist/impact-nova.css +1 -0
  494. package/dist/index.d.ts +57 -0
  495. package/dist/index.js +340 -0
  496. package/dist/lib/utils.d.ts +3 -0
  497. package/dist/lib/utils.js +18 -0
  498. package/dist/main.d.ts +0 -0
  499. package/dist/vite.svg +1 -0
  500. package/package.json +515 -0
  501. package/tailwind.config.d.ts +6 -0
  502. package/tailwind.config.js +182 -0
package/README.md ADDED
@@ -0,0 +1,237 @@
1
+ # Impact Nova 🚀
2
+
3
+ **Impact Nova** is a comprehensive, enterprise-grade React design system engineered for scalability, performance, and accessibility. Built on the modern stack of **React 19**, **Vite**, and **Tailwind CSS**, it empowers developers to build complex, data-rich applications with speed and precision.
4
+
5
+ > "Design is not just what it looks like and feels like. Design is how it works."
6
+
7
+ <div align="center">
8
+
9
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
10
+ [![React](https://img.shields.io/badge/React-19.0-61dafb.svg?style=flat&logo=react)](https://react.dev)
11
+ [![TypeScript](https://img.shields.io/badge/TypeScript-5.0-blue.svg?style=flat&logo=typescript)](https://www.typescriptlang.org/)
12
+ [![Tailwind CSS](https://img.shields.io/badge/Tailwind-3.4-38b2ac.svg?style=flat&logo=tailwind-css)](https://tailwindcss.com/)
13
+ [![Radix UI](https://img.shields.io/badge/Radix%20UI-Primitives-white?style=flat&logo=radix-ui)](https://www.radix-ui.com/)
14
+
15
+ </div>
16
+
17
+ ---
18
+
19
+ ## 🎯 Objectives & Benefits
20
+
21
+ Impact Nova is designed to solve common challenges in enterprise application development.
22
+
23
+ - **Consistency**: A single source of truth for UI components ensures a unified look and feel across all products.
24
+ - **Velocity**: Ready-to-use, tested components allow developers to focus on feature logic rather than pixel-pushing.
25
+ - **Quality**: Built-in accessibility and rigorous testing raise the baseline quality of every application.
26
+ - **Scalability**: The system is architected to grow with the business, supporting new features and distinct brand themes.
27
+
28
+ ---
29
+
30
+ ## 📐 Design Principles
31
+
32
+ Impact Nova is built upon four core pillars that guide every component application:
33
+
34
+ 1. **Accessibility First**: Components are built on **Radix UI** primitives, ensuring full WAI-ARIA compliance, keyboard support, and screen reader compatibility.
35
+ 2. **Composition over Inheritance**: We favor composition. Use sub-components (e.g., `Dialog.Content`) for full control without prop drilling.
36
+ 3. **Design Tokens**: Styling is driven by tokens (colors, typography, spacing) mapped via Tailwind CSS, ensuring pixel-perfect consistency.
37
+ 4. **Developer Experience**: Built for speed with strict TypeScript, intuitive naming, and comprehensive documentation to help you move fast.
38
+
39
+ ---
40
+
41
+ ## 🚀 Getting Started
42
+
43
+ Everything you need to install, configure, and start building with **Impact Nova**.
44
+
45
+ ### Installation
46
+
47
+ Install the package via your preferred package manager. Impact Nova requires React 19 or later.
48
+
49
+ ```bash
50
+ npm install impact-nova
51
+ # or
52
+ pnpm add impact-nova
53
+ # or
54
+ yarn add impact-nova
55
+ ```
56
+
57
+ > **Note on Peer Dependencies**:
58
+ > You must also ensure `react`, `react-dom`, `ag-grid-react`, `ag-grid-enterprise`, and `highcharts` (if used) are installed in your project, as these are peer dependencies.
59
+
60
+ ### Styles & Configuration
61
+
62
+ Import the bundled CSS in your root entry file (e.g., `main.tsx`, `App.tsx`, or `layout.tsx`).
63
+
64
+ ```tsx
65
+ import React from 'react';
66
+ import ReactDOM from 'react-dom/client';
67
+
68
+ // ⚠️ Import styles before your App
69
+ import 'impact-nova/dist/impact-nova.css';
70
+
71
+ import App from './App';
72
+
73
+ ReactDOM.createRoot(document.getElementById('root')!).render(
74
+ <App />
75
+ );
76
+ ```
77
+
78
+ ### Typography
79
+
80
+ Impact Nova looks best with **Manrope**. We recommend adding it to your project:
81
+
82
+ 1. **Import Font**:
83
+ ```html
84
+ <link href="https://fonts.googleapis.com/css2?family=Manrope:wght@200..800&display=swap" rel="stylesheet" />
85
+ ```
86
+
87
+ 2. **Configure Tailwind**:
88
+ ```css
89
+ @layer base {
90
+ body {
91
+ font-family: 'Manrope', sans-serif;
92
+ }
93
+ }
94
+ ```
95
+
96
+ ---
97
+
98
+ ## 🔨 Usage
99
+
100
+ Import components directly from the package. All components export strong TypeScript definitions for props and events.
101
+
102
+ ### Core Components
103
+
104
+ ```tsx
105
+ import { Button, Card, DatePicker } from 'impact-nova';
106
+
107
+ export default function MyPage() {
108
+ return (
109
+ <Card className="p-6">
110
+ <h1 className="text-xl font-bold mb-4">Dashboard</h1>
111
+ <div className="flex gap-4">
112
+ <DatePicker />
113
+ <Button variant="primary">Save Changes</Button>
114
+ </div>
115
+ </Card>
116
+ );
117
+ }
118
+ ```
119
+
120
+ ### Using Icons
121
+
122
+ Impact Nova includes a custom-built icon library. Icons are treeshakeable and accept standard SVG props.
123
+
124
+ ```tsx
125
+ import { Icons } from 'impact-nova';
126
+
127
+ export function StatusBadge() {
128
+ return (
129
+ <div className="flex items-center gap-2 text-green-600">
130
+ <Icons.CheckCircle size={16} />
131
+ <span>Operation Successful</span>
132
+ </div>
133
+ );
134
+ }
135
+ ```
136
+
137
+ ### Type Safety
138
+
139
+ You can import component props to ensure type safety in your own interfaces.
140
+
141
+ ```tsx
142
+ import { Button, type ButtonProps } from 'impact-nova';
143
+
144
+ interface CustomActionProps extends ButtonProps {
145
+ analyticsId: string;
146
+ }
147
+
148
+ export const CustomAction = ({ analyticsId, ...props }: CustomActionProps) => {
149
+ return <Button {...props} onClick={() => track(analyticsId)} />;
150
+ };
151
+ ```
152
+
153
+ ---
154
+
155
+ ## 🏗️ Architecture
156
+
157
+ The library utilizes a modern, headless architecture pattern:
158
+
159
+ 1. **Logic Layer**: Headless state management and interactions powered by Radix UI and internal hooks.
160
+ 2. **Styling Layer**: Utility-first CSS using **Tailwind CSS** and **class-variance-authority (CVA)** for scalable, type-safe component variant management.
161
+ 3. **Build System**: High-performance tooling with Vite and React 19 for instant HMR.
162
+
163
+ ---
164
+
165
+ ## � Component Library
166
+
167
+ Impact Nova provides a rich set of components structured for any enterprise use-case.
168
+
169
+ ### 📝 Forms & Inputs
170
+ - Button, Button Group
171
+ - Checkbox, Radio Group, Switch
172
+ - Input, Smart Input, Textarea
173
+ - Select, Slider
174
+ - File Upload
175
+ - Date Picker, Date Range Picker
176
+ - Month Picker, Week Picker
177
+ - Prompt, Form Group
178
+
179
+ ### 🧭 Navigation
180
+ - Sidebar, Navigation Bar
181
+ - Tabs, Breadcrumb, Stepper
182
+ - Card, Accordion, Nested List
183
+ - Header, Separator
184
+ - Dynamic Layout
185
+
186
+ ### 💬 Feedback & Overlay
187
+ - Alert, Alert Dialog, Dialog
188
+ - Sheet, Drawer, Modal
189
+ - Toast, Tooltip, Popover
190
+ - Hover Card, Dropdown Menu
191
+ - Loader, Skeleton, Progress Bar
192
+
193
+ ### 📊 Data Display
194
+ - Avatar, Badge, Tag, Chips
195
+ - Calendar, Chart
196
+ - Empty Container, Notification Panel
197
+ - Table (AG Grid), Data Table
198
+ - Product Tile, Value With Unit
199
+
200
+ ---
201
+
202
+ ## 📞 Support & Community
203
+
204
+ - **Issue Reporting**: Submit bugs or feature requests to our [Jira Board](https://impactanalytics.atlassian.net/jira/software/c/projects/DES/issues).
205
+ - **Community**: Join `#design-system-support` on [Slack](https://teamimpactanalytics.slack.com/archives/C05U9SU8FB8) for quick questions and integration help.
206
+
207
+ ---
208
+
209
+ ## ✨ Credits & Contributors
210
+
211
+ **Core Development**
212
+ - Anil M
213
+ - Ritesh Ranjan
214
+
215
+ **Design Architecture**
216
+ - Jaymin Pancholi
217
+ - Sudip Sarkar
218
+
219
+ **UX & Product UI**
220
+ - Kalyan
221
+ - Vikram
222
+ - Aditi Chaudhary
223
+
224
+ **Inspiration**
225
+ - Impact UI
226
+
227
+ **Special Thanks**
228
+ - Girish Pattana Setty
229
+ - Himanshu K
230
+ - Harish V
231
+
232
+ ---
233
+
234
+ ## 📄 License
235
+
236
+ Impact Nova is licensed under the [MIT License](LICENSE).
237
+
package/dist/App.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ declare function App(): import("react/jsx-runtime").JSX.Element;
2
+ export default App;
@@ -0,0 +1 @@
1
+ (function(){"use strict";let V=[],P=0,p=!1,A=!1;const L=new Map;let y=null;self.onmessage=_=>{const{type:N,payload:R,id:x,config:z}=_.data;if(N==="SET_OPTIONS"){V=R,z&&(p=z.enableSubMenus??!1,A=z.enableGroups??!1),L.clear(),y=null;let a=0;const c=f=>{f.forEach(d=>{A&&"options"in d?c(d.options):p&&"children"in d&&Array.isArray(d.children)?c(d.children):d.isDisabled||a++})};c(V),P=a;return}if(N==="SEARCH"){const{searchValue:a,config:{ignoreCase:c=!0,ignoreAccents:f=!1,matchFrom:d="any",trim:b=!0,enableSubMenus:v,enableGroups:M}={}}=R;v!==void 0&&(p=v),M!==void 0&&(A=M);let t=a;b&&(t=t.trim()),c&&(t=t.toLowerCase()),f&&(t=t.normalize("NFD").replace(/[\u0300-\u036f]/g,""));const G={ignoreCase:c,ignoreAccents:f,trim:b};(!y||y.ignoreCase!==c||y.ignoreAccents!==f||y.trim!==b)&&(L.clear(),y=G);const F=i=>{const s=i.label;return typeof s=="string"?s:String(s)},I=i=>{const s=L.get(i);if(s!==void 0)return s;let e=F(i);return b&&(e=e.trim()),c&&(e=e.toLowerCase()),f&&(e=e.normalize("NFD").replace(/[\u0300-\u036f]/g,"")),L.set(i,e),e},o=i=>{if(!t)return!0;const s=I(i);return t.length>s.length?!1:d==="start"?s.startsWith(t):s.includes(t)},m=i=>o(i);let w=0;const C=(i,s=0)=>{const l=[];return i.forEach(e=>{let r=[];"options"in e&&(r=e.options);let n=[];"children"in e&&Array.isArray(e.children)&&(n=e.children);const u=r.length>0,S=n.length>0;let E;!u&&!S&&!e.isDisabled&&(w++,E=w);const D=!u&&m(e);if(u){const g=C(r,s),O=g.length>0;(D||O)&&(l.push({...e,depth:s,isGroup:!0,isSubmenuParent:!1,original:e}),l.push(...g))}else{let g=!1;if(S&&t){const O=k=>k.some(T=>m(T)?!0:"children"in T&&Array.isArray(T.children)?O(T.children):!1);g=O(n)}(D||g||!t&&S)&&l.push({...e,depth:s,isGroup:!1,isSubmenuParent:S,original:e,naturalIndex:E})}}),l},h=C(V);self.postMessage({type:"SEARCH_RESULT",id:x,result:{result:h,totalLeafCount:P}})}if(N==="SELECT_ALL"){const{currentValues:a,isAllSelected:c,maxSelectableOptions:f,searchValue:d,config:{ignoreCase:b=!0,ignoreAccents:v=!1,matchFrom:M="any",trim:t=!0,enableSubMenus:G,enableGroups:F}={}}=R;G!==void 0&&(p=G),F!==void 0&&(A=F);const I=l=>{if(c){const r=a;return r&&"isAllSelected"in r&&r.isAllSelected&&"excludedValues"in r?!r.excludedValues.includes(l):!1}const e=a;return Array.isArray(e)?e.some(r=>r.value===l):!1};let o=d||"";t&&(o=o.trim()),b&&(o=o.toLowerCase()),v&&(o=o.normalize("NFD").replace(/[\u0300-\u036f]/g,""));const m=l=>{const e=l.label;return typeof e=="string"?e:String(e)},w=l=>{let r=m(l);return t&&(r=r.trim()),b&&(r=r.toLowerCase()),v&&(r=r.normalize("NFD").replace(/[\u0300-\u036f]/g,"")),r},C=l=>{if(!o)return!0;const e=w(l);return M==="start"?e.startsWith(o):e.includes(o)},h=[],i=l=>{l.forEach(e=>{let r=[];A&&"options"in e&&(r=e.options);let n=[];p&&"children"in e&&Array.isArray(e.children)&&(n=e.children);const u=A&&r.length>0,S=p&&n.length>0;if(u)i(r);else if(S)if(o){const E=D=>{D.forEach(g=>{C(g)&&h.push(g),"children"in g&&Array.isArray(g.children)&&E(g.children)})};E(n)}else i(n);else!e.isDisabled&&C(e)&&h.push(e)})};i(V);let s;if(d){if(h.length===0){self.postMessage({id:x,result:a});return}const l=h.every(e=>I(e.value));if(c){const e=a;let n=[...e&&"excludedValues"in e?e.excludedValues:[]];l?h.forEach(u=>{n.includes(u.value)||n.push(u.value)}):n=n.filter(u=>!h.some(S=>S.value===u)),s={isAllSelected:!0,excludedValues:n}}else{let r=[...Array.isArray(a)?a:[]];if(l?r=r.filter(n=>!h.some(u=>u.value===n.value)):h.forEach(n=>{r.some(u=>u.value===n.value)||r.push(n)}),f&&r.length>f){self.postMessage({id:x,result:a});return}s=r}}else if(f)(a||[]).length>0?s=[]:s=h.slice(0,f);else{const l=a;c&&l&&"excludedValues"in l&&l.excludedValues.length===0?s=[]:s={isAllSelected:!0,excludedValues:[]}}self.postMessage({type:"SELECT_ALL_RESULT",id:x,result:s})}}})();
@@ -0,0 +1,25 @@
1
+ import * as React from "react";
2
+ interface DashboardLayoutProps extends React.ComponentProps<"div"> {
3
+ /**
4
+ * The Sidebar component (e.g. <AppSidebar />)
5
+ */
6
+ sidebar: React.ReactNode;
7
+ /**
8
+ * The Header component (e.g. <Header />)
9
+ */
10
+ header: React.ReactNode;
11
+ /**
12
+ * Optional Breadcrumb component
13
+ */
14
+ breadcrumb?: React.ReactNode;
15
+ /**
16
+ * Optional FilterStrip component
17
+ */
18
+ filterStrip?: React.ReactNode;
19
+ /**
20
+ * Main content (e.g. <Outlet /> or page content)
21
+ */
22
+ children: React.ReactNode;
23
+ }
24
+ export declare function DashboardLayout({ sidebar, header, breadcrumb, filterStrip, children, className, ...props }: DashboardLayoutProps): import("react/jsx-runtime").JSX.Element;
25
+ export {};
@@ -0,0 +1,3 @@
1
+ import { default as React } from 'react';
2
+ import { AccordionNestedListProps } from '../types/accordion-nested-list.types';
3
+ export declare const AccordionNestedList: React.FC<AccordionNestedListProps>;
@@ -0,0 +1,105 @@
1
+ import { jsxs as o, jsx as r } from "react/jsx-runtime";
2
+ import { useState as W, useCallback as s, useMemo as _ } from "react";
3
+ import { Accordion as q, AccordionItem as z, AccordionTrigger as F, AccordionContent as G } from "../accordion.js";
4
+ import { Button as A } from "../button.js";
5
+ import { NestedList as H } from "../nested-list/nested-list.js";
6
+ import { useAccordionNestedListState as J } from "./hooks/useAccordionNestedListState.js";
7
+ import { SelectionMode as K } from "../types/nested-list.types.js";
8
+ import { cn as P } from "../../../lib/utils.js";
9
+ const re = ({
10
+ sections: t,
11
+ onChange: d,
12
+ onSubmit: h,
13
+ onCancel: m,
14
+ enableApplyDiscard: g = !0,
15
+ submitButtonLabel: N = "Apply",
16
+ cancelButtonLabel: C = "Reset",
17
+ className: v = "",
18
+ enableSearch: S = !0,
19
+ enableDragDrop: y = !0,
20
+ enableSelectAll: b = !0,
21
+ selectionMode: x = K.CASCADE_DOWN,
22
+ searchPlaceholder: k = "Search...",
23
+ value: D,
24
+ onValueChange: V,
25
+ isMultiExpanded: n = !0,
26
+ defaultCollapseAll: j = !1,
27
+ validateApply: i
28
+ }) => {
29
+ const {
30
+ currentSections: l,
31
+ hasChanges: c,
32
+ setCurrentSection: u,
33
+ saveAllSections: f,
34
+ discardAllSections: p
35
+ } = J({ sections: t }), [L, w] = W(() => j ? n ? [] : "" : t.length > 0 ? n ? [t[0].id] : t[0].id : n ? [] : ""), B = D ?? L, I = V ?? w, M = s(
36
+ (e, a) => {
37
+ u(e, a), d?.(e, a);
38
+ },
39
+ [d, u]
40
+ ), O = s(() => {
41
+ f(), h?.(l);
42
+ }, [l, h, f]), R = s(() => {
43
+ p(), m?.();
44
+ }, [p, m]), T = _(() => c ? i ? i(l) : !0 : !1, [c, i, l]);
45
+ return /* @__PURE__ */ o(
46
+ "div",
47
+ {
48
+ className: P("flex flex-col h-full", v),
49
+ "data-testid": "accordion-nested-list-container",
50
+ children: [
51
+ /* @__PURE__ */ r("div", { className: "flex-1 min-h-0 overflow-hidden", children: /* @__PURE__ */ r(
52
+ q,
53
+ {
54
+ type: n ? "multiple" : "single",
55
+ value: B,
56
+ onValueChange: I,
57
+ className: "space-y-4",
58
+ children: t.map((e) => /* @__PURE__ */ o(z, { value: e.id, children: [
59
+ /* @__PURE__ */ r(F, { children: e.label }),
60
+ /* @__PURE__ */ r(G, { className: "min-h-0 h-full", children: /* @__PURE__ */ r("div", { className: "h-full min-h-0 pb-2", children: /* @__PURE__ */ r(
61
+ H,
62
+ {
63
+ items: l[e.id] || [],
64
+ onChange: (a) => M(e.id, a),
65
+ enableApplyDiscard: !1,
66
+ enableSearch: S,
67
+ enableDragDrop: y,
68
+ enableSelectAll: b,
69
+ selectionMode: e.selectionMode ?? x,
70
+ searchPlaceholder: k,
71
+ className: "h-full"
72
+ }
73
+ ) }) })
74
+ ] }, e.id))
75
+ }
76
+ ) }),
77
+ g && /* @__PURE__ */ o("div", { className: "flex-shrink-0 flex justify-end gap-2 pt-4 border-t mt-4", children: [
78
+ /* @__PURE__ */ r(
79
+ A,
80
+ {
81
+ variant: "tertiary",
82
+ onClick: R,
83
+ disabled: !c,
84
+ "data-testid": "discard-changes",
85
+ children: C
86
+ }
87
+ ),
88
+ /* @__PURE__ */ r(
89
+ A,
90
+ {
91
+ variant: "default",
92
+ onClick: O,
93
+ disabled: !T,
94
+ "data-testid": "apply-changes",
95
+ children: N
96
+ }
97
+ )
98
+ ] })
99
+ ]
100
+ }
101
+ );
102
+ };
103
+ export {
104
+ re as AccordionNestedList
105
+ };
@@ -0,0 +1,19 @@
1
+ import { NestedListItem } from '../../types/nested-list.types';
2
+ import { AccordionNestedListSection } from '../../types/accordion-nested-list.types';
3
+ interface UseAccordionNestedListStateProps {
4
+ sections: AccordionNestedListSection[];
5
+ }
6
+ interface UseAccordionNestedListStateReturn {
7
+ currentSections: Record<string, NestedListItem[]>;
8
+ savedSections: Record<string, NestedListItem[]>;
9
+ hasChanges: boolean;
10
+ setCurrentSection: (sectionId: string, items: NestedListItem[]) => void;
11
+ saveAllSections: () => void;
12
+ discardAllSections: () => void;
13
+ }
14
+ /**
15
+ * Hook to manage state for AccordionNestedList
16
+ * Tracks current and saved state for all sections
17
+ */
18
+ export declare const useAccordionNestedListState: ({ sections, }: UseAccordionNestedListStateProps) => UseAccordionNestedListStateReturn;
19
+ export {};
@@ -0,0 +1,41 @@
1
+ import { useMemo as a, useState as u, useEffect as O } from "react";
2
+ const g = ({
3
+ sections: n
4
+ }) => {
5
+ const o = a(() => {
6
+ const t = {};
7
+ return n.forEach((s) => {
8
+ t[s.id] = JSON.parse(JSON.stringify(s.items));
9
+ }), t;
10
+ }, [n]), [e, i] = u(o), [r, S] = u(o);
11
+ O(() => {
12
+ const t = {};
13
+ n.forEach((s) => {
14
+ t[s.id] = JSON.parse(JSON.stringify(s.items));
15
+ }), i(t), S(t);
16
+ }, [n]);
17
+ const N = a(() => Object.keys(e).some((t) => {
18
+ const s = JSON.stringify(e[t]), c = JSON.stringify(r[t]);
19
+ return s !== c;
20
+ }), [e, r]);
21
+ return {
22
+ currentSections: e,
23
+ savedSections: r,
24
+ hasChanges: N,
25
+ setCurrentSection: (t, s) => {
26
+ i((c) => ({
27
+ ...c,
28
+ [t]: JSON.parse(JSON.stringify(s))
29
+ }));
30
+ },
31
+ saveAllSections: () => {
32
+ S(JSON.parse(JSON.stringify(e)));
33
+ },
34
+ discardAllSections: () => {
35
+ i(JSON.parse(JSON.stringify(r)));
36
+ }
37
+ };
38
+ };
39
+ export {
40
+ g as useAccordionNestedListState
41
+ };
@@ -0,0 +1,2 @@
1
+ export * from './accordion-nested-list';
2
+ export * from '../types/accordion-nested-list.types';
@@ -0,0 +1,4 @@
1
+ import { AccordionNestedList as r } from "./accordion-nested-list.js";
2
+ export {
3
+ r as AccordionNestedList
4
+ };
@@ -0,0 +1,10 @@
1
+ import * as React from "react";
2
+ import * as AccordionPrimitive from "@radix-ui/react-accordion";
3
+ declare const Accordion: React.ForwardRefExoticComponent<(AccordionPrimitive.AccordionSingleProps | AccordionPrimitive.AccordionMultipleProps) & React.RefAttributes<HTMLDivElement>>;
4
+ declare const AccordionItem: React.ForwardRefExoticComponent<Omit<AccordionPrimitive.AccordionItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
5
+ declare const AccordionTrigger: React.ForwardRefExoticComponent<Omit<AccordionPrimitive.AccordionTriggerProps & React.RefAttributes<HTMLButtonElement>, "ref"> & {
6
+ badge?: React.ReactNode;
7
+ rightActions?: React.ReactNode;
8
+ } & React.RefAttributes<HTMLButtonElement>>;
9
+ declare const AccordionContent: React.ForwardRefExoticComponent<Omit<AccordionPrimitive.AccordionContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
10
+ export { Accordion, AccordionItem, AccordionTrigger, AccordionContent };
@@ -0,0 +1,52 @@
1
+ import { jsx as t, jsxs as n } from "react/jsx-runtime";
2
+ import * as s from "react";
3
+ import * as e from "@radix-ui/react-accordion";
4
+ import { ChevronRight as l } from "lucide-react";
5
+ import { cn as d } from "../../lib/utils.js";
6
+ const v = e.Root, f = s.forwardRef(({ className: r, ...o }, a) => /* @__PURE__ */ t(
7
+ e.Item,
8
+ {
9
+ ref: a,
10
+ className: d("border-b rounded-lg bg-white overflow-hidden border-b-[#D9DDE7]", r),
11
+ ...o
12
+ }
13
+ ));
14
+ f.displayName = "AccordionItem";
15
+ const p = s.forwardRef(({ className: r, children: o, badge: a, rightActions: i, ...c }, m) => /* @__PURE__ */ t(e.Header, { className: "flex", children: /* @__PURE__ */ n(
16
+ e.Trigger,
17
+ {
18
+ ref: m,
19
+ className: d(
20
+ "flex flex-1 items-center gap-3 px-4 py-2 text-sm font-semibold transition-all text-left [&[data-state=open]>div>svg]:-rotate-90",
21
+ r
22
+ ),
23
+ ...c,
24
+ children: [
25
+ /* @__PURE__ */ t("div", { className: "flex items-center justify-center h-8 w-8 shrink-0 rounded-lg bg-secondary text-secondary-foreground transition-transform duration-200", children: /* @__PURE__ */ t(l, { className: "h-4 w-4 transition-transform duration-200" }) }),
26
+ /* @__PURE__ */ n("div", { className: "flex flex-1 items-center justify-between", children: [
27
+ /* @__PURE__ */ n("div", { className: "flex items-center gap-3", children: [
28
+ o,
29
+ a
30
+ ] }),
31
+ i
32
+ ] })
33
+ ]
34
+ }
35
+ ) }));
36
+ p.displayName = e.Trigger.displayName;
37
+ const x = s.forwardRef(({ className: r, children: o, ...a }, i) => /* @__PURE__ */ t(
38
+ e.Content,
39
+ {
40
+ ref: i,
41
+ className: "overflow-hidden text-sm data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down",
42
+ ...a,
43
+ children: /* @__PURE__ */ t("div", { className: d("px-4 pb-4 pt-2", r), children: o })
44
+ }
45
+ ));
46
+ x.displayName = e.Content.displayName;
47
+ export {
48
+ v as Accordion,
49
+ x as AccordionContent,
50
+ f as AccordionItem,
51
+ p as AccordionTrigger
52
+ };
@@ -0,0 +1,30 @@
1
+ import { ICellRendererParams } from 'ag-grid-community';
2
+ import { ActionButton } from './types';
3
+ export interface ActionsCellRendererProps extends ICellRendererParams {
4
+ /** Array of action button configurations */
5
+ actions: ActionButton[];
6
+ }
7
+ /**
8
+ * ActionsCellRenderer - Display-only renderer showing action buttons.
9
+ *
10
+ * Stateless: renders buttons from the `actions` array config.
11
+ * Each button's onClick receives the row data.
12
+ *
13
+ * Usage in colDef:
14
+ * ```ts
15
+ * {
16
+ * headerName: 'Actions',
17
+ * cellRenderer: ActionsCellRenderer,
18
+ * cellRendererParams: {
19
+ * actions: [
20
+ * { label: 'Edit', onClick: (data) => editRow(data), variant: 'outline', size: 'sm' },
21
+ * { label: 'Delete', onClick: (data) => deleteRow(data), variant: 'destructive', size: 'sm' },
22
+ * ]
23
+ * }
24
+ * }
25
+ * ```
26
+ */
27
+ export declare const ActionsCellRenderer: {
28
+ (props: ActionsCellRendererProps): import("react/jsx-runtime").JSX.Element;
29
+ displayName: string;
30
+ };
@@ -0,0 +1,27 @@
1
+ import { jsx as r, jsxs as s, Fragment as n } from "react/jsx-runtime";
2
+ import { Button as m } from "../../button.js";
3
+ const t = (i) => {
4
+ const { actions: l, data: a } = i;
5
+ return !l || l.length === 0 ? null : /* @__PURE__ */ r("div", { className: "flex gap-2 items-center h-full w-full ag-cell-inner-padding", children: l.map((e, d) => /* @__PURE__ */ r(
6
+ m,
7
+ {
8
+ onClick: () => e.onClick(a),
9
+ variant: e.variant ?? "default",
10
+ size: e.size ?? "sm",
11
+ className: e.className,
12
+ disabled: e.disabled,
13
+ children: e.iconPlacement === "right" ? /* @__PURE__ */ s(n, { children: [
14
+ e.label,
15
+ e.icon
16
+ ] }) : /* @__PURE__ */ s(n, { children: [
17
+ e.icon,
18
+ e.label
19
+ ] })
20
+ },
21
+ d
22
+ )) });
23
+ };
24
+ t.displayName = "ActionsCellRenderer";
25
+ export {
26
+ t as ActionsCellRenderer
27
+ };
@@ -0,0 +1,44 @@
1
+ import { ICellRendererParams } from 'ag-grid-community';
2
+ export interface BadgeCellRendererProps extends ICellRendererParams {
3
+ /** Badge variant: 'filled' | 'stroke' | 'subtle' (mapped to impact-nova variants) */
4
+ variant?: string;
5
+ variantField?: string;
6
+ /** Badge color: 'default' | 'info' | 'success' | 'warning' | 'error' (mapped to impact-nova colors) */
7
+ color?: string;
8
+ colorField?: string;
9
+ /** Whether to show an icon inside the badge */
10
+ isIcon?: boolean;
11
+ isIconField?: string;
12
+ /** Icon element to display inside the badge */
13
+ icon?: React.ReactNode;
14
+ iconField?: string;
15
+ /** Badge label (overrides cell value) */
16
+ badgeLabel?: string;
17
+ badgeLabelField?: string;
18
+ /** Badge size */
19
+ size?: 'small' | 'default';
20
+ sizeField?: string;
21
+ }
22
+ /**
23
+ * BadgeCellRenderer - Display-only renderer showing a Badge component.
24
+ *
25
+ * Stateless: derives everything from props and row data.
26
+ * Supports both static props and dynamic field-driven values.
27
+ *
28
+ * Usage in colDef:
29
+ * ```ts
30
+ * {
31
+ * field: 'status',
32
+ * cellRenderer: BadgeCellRenderer,
33
+ * cellRendererParams: {
34
+ * variant: 'subtle',
35
+ * colorField: 'statusColor', // reads color from rowData.statusColor
36
+ * badgeLabelField: 'statusLabel',
37
+ * }
38
+ * }
39
+ * ```
40
+ */
41
+ export declare const BadgeCellRenderer: {
42
+ (props: BadgeCellRendererProps): import("react/jsx-runtime").JSX.Element;
43
+ displayName: string;
44
+ };
@@ -0,0 +1,22 @@
1
+ import { jsx as d, jsxs as s } from "react/jsx-runtime";
2
+ import { Badge as f } from "../../badge.js";
3
+ import { getFieldValue as a, mapBadgeColor as g, mapBadgeVariant as u } from "./types.js";
4
+ const x = (e) => {
5
+ const { data: l, value: n } = e, i = a(e.badgeLabelField, e.badgeLabel, l) ?? (n != null ? String(n) : void 0), c = a(e.variantField, e.variant, l) ?? "filled", o = a(e.colorField, e.color, l) ?? "default", r = a(e.isIconField, e.isIcon, l), t = a(e.iconField, e.icon, l), m = a(e.sizeField, e.size, l);
6
+ return i ? /* @__PURE__ */ d("div", { className: "w-full h-full flex items-center justify-start ag-cell-inner-padding", children: /* @__PURE__ */ d(
7
+ f,
8
+ {
9
+ variant: u(c),
10
+ color: g(o),
11
+ className: m === "small" ? "h-5 text-xs px-1.5 font-medium" : "font-medium",
12
+ children: r && t ? /* @__PURE__ */ s("span", { className: "flex items-center gap-1", children: [
13
+ t,
14
+ i
15
+ ] }) : i
16
+ }
17
+ ) }) : null;
18
+ };
19
+ x.displayName = "BadgeCellRenderer";
20
+ export {
21
+ x as BadgeCellRenderer
22
+ };