@databiosphere/findable-ui 35.2.0 → 36.0.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 (348) hide show
  1. package/.release-please-manifest.json +1 -1
  2. package/CHANGELOG.md +15 -0
  3. package/lib/common/entities.d.ts +2 -3
  4. package/lib/components/DataDictionary/components/Entities/constants.d.ts +3 -1
  5. package/lib/components/DataDictionary/components/Entities/constants.js +6 -2
  6. package/lib/components/DataDictionary/components/Entities/entities.js +6 -2
  7. package/lib/components/DataDictionary/components/Entities/entities.styles.d.ts +3 -0
  8. package/lib/components/DataDictionary/components/Entities/entities.styles.js +5 -0
  9. package/lib/components/DataDictionary/components/Entity/entity.styles.js +1 -8
  10. package/lib/components/DataDictionary/components/Filters/components/ColumnFilterTags/columnFilterTags.d.ts +4 -0
  11. package/lib/components/DataDictionary/components/Filters/components/ColumnFilterTags/columnFilterTags.js +15 -0
  12. package/lib/components/DataDictionary/components/Filters/components/ColumnFilterTags/columnFilterTags.styles.d.ts +7 -0
  13. package/lib/components/DataDictionary/components/Filters/components/ColumnFilterTags/columnFilterTags.styles.js +7 -0
  14. package/lib/components/DataDictionary/components/Filters/components/ColumnFilterTags/constants.d.ts +2 -0
  15. package/lib/components/DataDictionary/components/Filters/components/ColumnFilterTags/constants.js +6 -0
  16. package/lib/components/DataDictionary/components/Filters/components/ColumnFilterTags/types.d.ts +6 -0
  17. package/lib/components/DataDictionary/components/Filters/filters.js +2 -0
  18. package/lib/components/DataDictionary/components/Filters/filters.styles.js +3 -3
  19. package/lib/components/DataDictionary/components/Filters/stories/constants.d.ts +1 -0
  20. package/lib/components/DataDictionary/components/Filters/stories/constants.js +16 -0
  21. package/lib/components/DataDictionary/components/Filters/stories/filters.stories.js +11 -3
  22. package/lib/components/DataDictionary/components/Filters/stories/hook.d.ts +4 -0
  23. package/lib/components/DataDictionary/components/Filters/stories/hook.js +4 -0
  24. package/lib/components/DataDictionary/components/Layout/components/EntitiesLayout/entitiesLayout.d.ts +2 -1
  25. package/lib/components/DataDictionary/components/Layout/components/EntitiesLayout/entitiesLayout.js +4 -4
  26. package/lib/components/DataDictionary/components/Layout/components/EntitiesLayout/entitiesLayout.styles.js +1 -4
  27. package/lib/components/DataDictionary/components/Layout/components/EntitiesLayout/types.d.ts +4 -2
  28. package/lib/components/DataDictionary/components/Layout/components/FiltersLayout/filtersLayout.d.ts +2 -1
  29. package/lib/components/DataDictionary/components/Layout/components/FiltersLayout/filtersLayout.js +4 -4
  30. package/lib/components/DataDictionary/components/Layout/components/FiltersLayout/filtersLayout.styles.js +4 -1
  31. package/lib/components/DataDictionary/components/Table/hook.d.ts +2 -2
  32. package/lib/components/DataDictionary/components/Table/hook.js +8 -4
  33. package/lib/components/DataDictionary/components/Table/options/columnFilters/constants.js +2 -1
  34. package/lib/components/DataDictionary/components/Table/options/columnFilters/hook.d.ts +2 -5
  35. package/lib/components/DataDictionary/components/Table/options/columnFilters/hook.js +8 -6
  36. package/lib/components/DataDictionary/components/Table/options/globalFilter/constants.d.ts +2 -0
  37. package/lib/components/DataDictionary/components/Table/options/globalFilter/constants.js +5 -0
  38. package/lib/components/DataDictionary/components/Table/options/globalFilter/hook.d.ts +3 -0
  39. package/lib/components/DataDictionary/components/Table/options/globalFilter/hook.js +16 -0
  40. package/lib/components/DataDictionary/components/Table/options/hook.js +7 -5
  41. package/lib/components/DataDictionary/components/Table/options/pagination/constants.d.ts +2 -0
  42. package/lib/components/DataDictionary/components/Table/options/pagination/constants.js +3 -0
  43. package/lib/components/DataDictionary/dataDictionary.d.ts +1 -1
  44. package/lib/components/DataDictionary/dataDictionary.js +31 -12
  45. package/lib/components/DataDictionary/hooks/UseDataDictionaryConfig/hook.d.ts +4 -0
  46. package/lib/components/DataDictionary/hooks/UseDataDictionaryConfig/hook.js +27 -0
  47. package/lib/components/DataDictionary/hooks/UseDataDictionaryConfig/types.d.ts +7 -0
  48. package/lib/components/DataDictionary/hooks/UseDataDictionaryConfig/types.js +1 -0
  49. package/lib/components/DataDictionary/hooks/UseDataDictionaryConfig/utils.d.ts +6 -0
  50. package/lib/components/DataDictionary/hooks/UseDataDictionaryConfig/utils.js +8 -0
  51. package/lib/components/DataDictionary/hooks/UseMeasureFilters/hook.d.ts +2 -0
  52. package/lib/components/DataDictionary/hooks/UseMeasureFilters/hook.js +17 -0
  53. package/lib/components/DataDictionary/hooks/UseMeasureFilters/types.d.ts +7 -0
  54. package/lib/components/DataDictionary/hooks/UseMeasureFilters/types.js +1 -0
  55. package/lib/components/DataDictionary/types.d.ts +1 -0
  56. package/lib/components/Filter/components/FilterCountChip/filterCountChip.d.ts +2 -0
  57. package/lib/components/Filter/components/FilterCountChip/filterCountChip.js +8 -0
  58. package/lib/components/Filter/components/FilterCountChip/filterCountChip.styles.d.ts +3 -0
  59. package/lib/components/Filter/components/FilterCountChip/filterCountChip.styles.js +18 -0
  60. package/lib/components/Filter/components/FilterCountChip/stories/filterCountChip.stories.d.ts +6 -0
  61. package/lib/components/Filter/components/FilterCountChip/stories/filterCountChip.stories.js +6 -0
  62. package/lib/components/Filter/components/FilterCountChip/types.d.ts +5 -0
  63. package/lib/components/Filter/components/FilterCountChip/types.js +1 -0
  64. package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.styles.d.ts +1 -1
  65. package/lib/components/Layout/components/Outline/outline.styles.d.ts +1 -1
  66. package/lib/components/Table/columnDef/globalFilter/constants.d.ts +2 -0
  67. package/lib/components/Table/columnDef/globalFilter/constants.js +4 -0
  68. package/lib/components/Table/columnDef/globalFilter/filterFn.d.ts +13 -0
  69. package/lib/components/Table/columnDef/globalFilter/filterFn.js +24 -0
  70. package/lib/components/Table/columnDef/globalFilter/types.d.ts +4 -0
  71. package/lib/components/Table/columnDef/globalFilter/types.js +1 -0
  72. package/lib/components/Table/columnDef/globalFilter/utils.d.ts +23 -0
  73. package/lib/components/Table/columnDef/globalFilter/utils.js +57 -0
  74. package/lib/components/Table/components/TableCell/components/RankedCell/rankedCell.d.ts +3 -0
  75. package/lib/components/Table/components/TableCell/components/RankedCell/rankedCell.js +25 -0
  76. package/lib/components/Table/components/TableCell/components/RankedCell/utils.d.ts +30 -0
  77. package/lib/components/Table/components/TableCell/components/RankedCell/utils.js +64 -0
  78. package/lib/components/Table/components/TableFeatures/ColumnFilter/columnFilter.js +9 -5
  79. package/lib/components/Table/components/TableFeatures/ColumnFilter/columnFilter.styles.d.ts +9 -0
  80. package/lib/components/Table/components/TableFeatures/ColumnFilter/columnFilter.styles.js +20 -1
  81. package/lib/components/Table/components/TableFeatures/ColumnFilter/components/ColumnFilterTag/columnFilterTag.d.ts +3 -0
  82. package/lib/components/Table/components/TableFeatures/ColumnFilter/components/ColumnFilterTag/columnFilterTag.js +9 -0
  83. package/lib/components/Table/components/TableFeatures/ColumnFilter/components/ColumnFilterTag/columnFilterTag.styles.d.ts +5 -0
  84. package/lib/components/Table/components/TableFeatures/ColumnFilter/components/ColumnFilterTag/columnFilterTag.styles.js +24 -0
  85. package/lib/components/Table/components/TableFeatures/ColumnFilter/components/ColumnFilterTag/constants.d.ts +3 -0
  86. package/lib/components/Table/components/TableFeatures/ColumnFilter/components/ColumnFilterTag/constants.js +10 -0
  87. package/lib/components/Table/components/TableFeatures/ColumnFilter/components/ColumnFilterTag/stories/columFilterTag.stories.d.ts +6 -0
  88. package/lib/components/Table/components/TableFeatures/ColumnFilter/components/ColumnFilterTag/stories/columFilterTag.stories.js +17 -0
  89. package/lib/components/Table/components/TableFeatures/ColumnFilter/components/ColumnFilterTag/types.d.ts +6 -0
  90. package/lib/components/Table/components/TableFeatures/ColumnFilter/components/ColumnFilterTag/types.js +1 -0
  91. package/lib/components/Table/components/TableFeatures/ColumnFilter/constants.d.ts +2 -1
  92. package/lib/components/Table/components/TableFeatures/ColumnFilter/constants.js +6 -0
  93. package/lib/components/Table/components/TableFeatures/ColumnFilter/types.d.ts +3 -2
  94. package/lib/components/Table/components/TableFeatures/GlobalFilter/constants.d.ts +2 -0
  95. package/lib/components/Table/components/TableFeatures/GlobalFilter/constants.js +6 -0
  96. package/lib/components/Table/components/TableFeatures/GlobalFilter/globalFilter.d.ts +3 -0
  97. package/lib/components/Table/components/TableFeatures/GlobalFilter/globalFilter.js +10 -0
  98. package/lib/components/Table/components/TableFeatures/GlobalFilter/types.d.ts +6 -0
  99. package/lib/components/Table/components/TableFeatures/GlobalFilter/types.js +1 -0
  100. package/lib/components/Table/coreOptions/state/pagination/constants.d.ts +2 -0
  101. package/lib/components/Table/coreOptions/state/pagination/constants.js +6 -0
  102. package/lib/components/Table/coreOptions/state/pagination/utils.d.ts +9 -0
  103. package/lib/components/Table/coreOptions/state/pagination/utils.js +18 -0
  104. package/lib/components/common/AnchorLink/anchorLink.js +4 -2
  105. package/lib/components/common/AnchorLink/anchorLink.styles.d.ts +1 -1
  106. package/lib/components/common/AnchorLink/anchorLink.styles.js +1 -1
  107. package/lib/components/common/CustomIcon/components/SearchIcon/searchIcon.d.ts +2 -2
  108. package/lib/components/common/OutlinedInput/components/InputAdornment/components/ClearInputAdornment/clearInputAdornment.d.ts +2 -0
  109. package/lib/components/common/OutlinedInput/components/InputAdornment/components/ClearInputAdornment/clearInputAdornment.js +13 -0
  110. package/lib/components/common/OutlinedInput/components/InputAdornment/components/ClearInputAdornment/clearInputAdornment.styles.d.ts +5 -0
  111. package/lib/components/common/OutlinedInput/components/InputAdornment/components/ClearInputAdornment/clearInputAdornment.styles.js +11 -0
  112. package/lib/components/common/OutlinedInput/components/InputAdornment/components/ClearInputAdornment/constants.d.ts +3 -0
  113. package/lib/components/common/OutlinedInput/components/InputAdornment/components/ClearInputAdornment/constants.js +10 -0
  114. package/lib/components/common/OutlinedInput/components/InputAdornment/components/ClearInputAdornment/types.d.ts +4 -0
  115. package/lib/components/common/OutlinedInput/components/InputAdornment/components/ClearInputAdornment/types.js +1 -0
  116. package/lib/components/common/OutlinedInput/components/InputAdornment/components/SearchInputAdornment/constants.d.ts +2 -0
  117. package/lib/components/common/OutlinedInput/components/InputAdornment/components/SearchInputAdornment/constants.js +5 -0
  118. package/lib/components/common/OutlinedInput/components/InputAdornment/components/SearchInputAdornment/searchInputAdornment.d.ts +1 -0
  119. package/lib/components/common/OutlinedInput/components/InputAdornment/components/SearchInputAdornment/searchInputAdornment.js +9 -0
  120. package/lib/components/common/OutlinedInput/components/InputAdornment/components/constants.d.ts +2 -0
  121. package/lib/components/common/OutlinedInput/components/InputAdornment/components/constants.js +5 -0
  122. package/lib/components/common/OutlinedInput/components/InputAdornment/inputAdornment.styles.d.ts +5 -0
  123. package/lib/components/common/OutlinedInput/components/InputAdornment/inputAdornment.styles.js +5 -0
  124. package/lib/components/common/OutlinedInput/outlinedInput.styles.d.ts +7 -0
  125. package/lib/components/common/OutlinedInput/outlinedInput.styles.js +18 -0
  126. package/lib/hooks/stateSyncManager/hooks/UseMetaCommands/hook.js +2 -2
  127. package/lib/hooks/stateSyncManager/hooks/UseStateSync/hook.js +3 -3
  128. package/lib/hooks/stateSyncManager/types.d.ts +1 -1
  129. package/lib/providers/dataDictionary/context.d.ts +2 -0
  130. package/lib/providers/dataDictionary/context.js +4 -0
  131. package/lib/providers/dataDictionary/hook.d.ts +6 -0
  132. package/lib/providers/dataDictionary/hook.js +9 -0
  133. package/lib/providers/dataDictionary/types.d.ts +3 -0
  134. package/lib/providers/dataDictionary/types.js +1 -0
  135. package/lib/providers/dataDictionaryState/actions/clearMeta/action.d.ts +9 -0
  136. package/lib/providers/dataDictionaryState/actions/clearMeta/action.js +12 -0
  137. package/lib/providers/dataDictionaryState/actions/clearMeta/dispatch.d.ts +6 -0
  138. package/lib/providers/dataDictionaryState/actions/clearMeta/dispatch.js +11 -0
  139. package/lib/providers/dataDictionaryState/actions/clearMeta/types.d.ts +6 -0
  140. package/lib/providers/dataDictionaryState/actions/clearMeta/types.js +1 -0
  141. package/lib/providers/dataDictionaryState/actions/stateToUrl/action.d.ts +9 -0
  142. package/lib/providers/dataDictionaryState/actions/stateToUrl/action.js +14 -0
  143. package/lib/providers/dataDictionaryState/actions/stateToUrl/dispatch.d.ts +7 -0
  144. package/lib/providers/dataDictionaryState/actions/stateToUrl/dispatch.js +12 -0
  145. package/lib/providers/dataDictionaryState/actions/stateToUrl/types.d.ts +12 -0
  146. package/lib/providers/dataDictionaryState/actions/stateToUrl/types.js +5 -0
  147. package/lib/providers/dataDictionaryState/actions/types.d.ts +13 -0
  148. package/lib/providers/dataDictionaryState/actions/types.js +8 -0
  149. package/lib/providers/dataDictionaryState/actions/updateColumnFilters/action.d.ts +9 -0
  150. package/lib/providers/dataDictionaryState/actions/updateColumnFilters/action.js +18 -0
  151. package/lib/providers/dataDictionaryState/actions/updateColumnFilters/dispatch.d.ts +7 -0
  152. package/lib/providers/dataDictionaryState/actions/updateColumnFilters/dispatch.js +12 -0
  153. package/lib/providers/dataDictionaryState/actions/updateColumnFilters/types.d.ts +10 -0
  154. package/lib/providers/dataDictionaryState/actions/updateColumnFilters/types.js +1 -0
  155. package/lib/providers/dataDictionaryState/actions/updateColumnFilters/utils.d.ts +11 -0
  156. package/lib/providers/dataDictionaryState/actions/updateColumnFilters/utils.js +27 -0
  157. package/lib/providers/dataDictionaryState/actions/updateGlobalFilter/action.d.ts +9 -0
  158. package/lib/providers/dataDictionaryState/actions/updateGlobalFilter/action.js +19 -0
  159. package/lib/providers/dataDictionaryState/actions/updateGlobalFilter/dispatch.d.ts +7 -0
  160. package/lib/providers/dataDictionaryState/actions/updateGlobalFilter/dispatch.js +12 -0
  161. package/lib/providers/dataDictionaryState/actions/updateGlobalFilter/types.d.ts +10 -0
  162. package/lib/providers/dataDictionaryState/actions/updateGlobalFilter/types.js +1 -0
  163. package/lib/providers/dataDictionaryState/actions/updateGlobalFilter/utils.d.ts +17 -0
  164. package/lib/providers/dataDictionaryState/actions/updateGlobalFilter/utils.js +36 -0
  165. package/lib/providers/dataDictionaryState/actions/urlToState/action.d.ts +9 -0
  166. package/lib/providers/dataDictionaryState/actions/urlToState/action.js +20 -0
  167. package/lib/providers/dataDictionaryState/actions/urlToState/dispatch.d.ts +7 -0
  168. package/lib/providers/dataDictionaryState/actions/urlToState/dispatch.js +12 -0
  169. package/lib/providers/dataDictionaryState/actions/urlToState/types.d.ts +9 -0
  170. package/lib/providers/dataDictionaryState/actions/urlToState/types.js +1 -0
  171. package/lib/providers/dataDictionaryState/context.d.ts +2 -0
  172. package/lib/providers/dataDictionaryState/context.js +6 -0
  173. package/lib/providers/dataDictionaryState/dictionaries/constants.d.ts +4 -0
  174. package/lib/providers/dataDictionaryState/dictionaries/constants.js +4 -0
  175. package/lib/providers/dataDictionaryState/dictionaries/state.d.ts +11 -0
  176. package/lib/providers/dataDictionaryState/dictionaries/state.js +29 -0
  177. package/lib/providers/dataDictionaryState/dictionaries/types.d.ts +9 -0
  178. package/lib/providers/dataDictionaryState/dictionaries/types.js +1 -0
  179. package/lib/providers/dataDictionaryState/dictionaries/utils.d.ts +14 -0
  180. package/lib/providers/dataDictionaryState/dictionaries/utils.js +20 -0
  181. package/lib/providers/dataDictionaryState/hooks/UseDataDictionaryInitialArgs/hook.d.ts +2 -0
  182. package/lib/providers/dataDictionaryState/hooks/UseDataDictionaryInitialArgs/hook.js +6 -0
  183. package/lib/providers/dataDictionaryState/hooks/UseDataDictionaryInitialArgs/types.d.ts +4 -0
  184. package/lib/providers/dataDictionaryState/hooks/UseDataDictionaryInitialArgs/types.js +1 -0
  185. package/lib/providers/dataDictionaryState/hooks/UseDataDictionaryReducer/hook.d.ts +2 -0
  186. package/lib/providers/dataDictionaryState/hooks/UseDataDictionaryReducer/hook.js +9 -0
  187. package/lib/providers/dataDictionaryState/hooks/UseDataDictionaryState/hook.d.ts +6 -0
  188. package/lib/providers/dataDictionaryState/hooks/UseDataDictionaryState/hook.js +9 -0
  189. package/lib/providers/dataDictionaryState/initializer/constants.d.ts +2 -0
  190. package/lib/providers/dataDictionaryState/initializer/constants.js +4 -0
  191. package/lib/providers/dataDictionaryState/initializer/initializer.d.ts +9 -0
  192. package/lib/providers/dataDictionaryState/initializer/initializer.js +17 -0
  193. package/lib/providers/dataDictionaryState/initializer/utils.d.ts +8 -0
  194. package/lib/providers/dataDictionaryState/initializer/utils.js +29 -0
  195. package/lib/providers/dataDictionaryState/provider.d.ts +4 -0
  196. package/lib/providers/dataDictionaryState/provider.js +7 -0
  197. package/lib/providers/dataDictionaryState/reducer.d.ts +9 -0
  198. package/lib/providers/dataDictionaryState/reducer.js +34 -0
  199. package/lib/providers/dataDictionaryState/types.d.ts +15 -0
  200. package/lib/providers/dataDictionaryState/types.js +1 -0
  201. package/lib/styles/common/mui/iconButton.d.ts +11 -0
  202. package/lib/styles/common/mui/iconButton.js +29 -0
  203. package/lib/styles/common/mui/inputAdornment.d.ts +9 -0
  204. package/lib/styles/common/mui/inputAdornment.js +13 -0
  205. package/lib/styles/common/mui/outlinedInput.d.ts +7 -0
  206. package/lib/styles/common/mui/outlinedInput.js +7 -0
  207. package/lib/theme/common/components.js +122 -16
  208. package/lib/theme/components/muiButtonGroup.js +4 -0
  209. package/lib/theme/components/muiTableCell.js +6 -0
  210. package/lib/utils/parseJsonQueryParam.d.ts +14 -0
  211. package/lib/utils/parseJsonQueryParam.js +25 -0
  212. package/lib/utils/stateToUrlQuery.d.ts +15 -0
  213. package/lib/utils/stateToUrlQuery.js +35 -0
  214. package/lib/views/DataDictionaryView/dataDictionaryView.d.ts +2 -2
  215. package/lib/views/DataDictionaryView/dataDictionaryView.js +16 -2
  216. package/lib/views/DataDictionaryView/types.d.ts +4 -0
  217. package/lib/views/DataDictionaryView/types.js +1 -0
  218. package/lib/views/DataDictionaryView/utils.d.ts +12 -0
  219. package/lib/views/DataDictionaryView/utils.js +17 -0
  220. package/lib/views/ExploreView/utils.d.ts +1 -1
  221. package/lib/views/ExploreView/utils.js +1 -1
  222. package/package.json +2 -1
  223. package/src/common/entities.ts +2 -3
  224. package/src/components/DataDictionary/components/Entities/constants.ts +9 -3
  225. package/src/components/DataDictionary/components/Entities/entities.styles.ts +6 -0
  226. package/src/components/DataDictionary/components/Entities/entities.tsx +7 -2
  227. package/src/components/DataDictionary/components/Entity/entity.styles.ts +1 -10
  228. package/src/components/DataDictionary/components/Filters/components/ColumnFilterTags/columnFilterTags.styles.ts +8 -0
  229. package/src/components/DataDictionary/components/Filters/components/ColumnFilterTags/columnFilterTags.tsx +33 -0
  230. package/src/components/DataDictionary/components/Filters/components/ColumnFilterTags/constants.ts +8 -0
  231. package/src/components/DataDictionary/components/Filters/components/ColumnFilterTags/types.ts +8 -0
  232. package/src/components/DataDictionary/components/Filters/filters.styles.ts +3 -3
  233. package/src/components/DataDictionary/components/Filters/filters.tsx +2 -0
  234. package/src/components/DataDictionary/components/Filters/stories/constants.ts +18 -0
  235. package/src/components/DataDictionary/components/Filters/stories/filters.stories.tsx +15 -3
  236. package/src/components/DataDictionary/components/Filters/stories/hook.ts +8 -0
  237. package/src/components/DataDictionary/components/Layout/components/EntitiesLayout/entitiesLayout.styles.ts +1 -5
  238. package/src/components/DataDictionary/components/Layout/components/EntitiesLayout/entitiesLayout.tsx +13 -7
  239. package/src/components/DataDictionary/components/Layout/components/EntitiesLayout/types.ts +4 -2
  240. package/src/components/DataDictionary/components/Layout/components/FiltersLayout/filtersLayout.styles.ts +4 -1
  241. package/src/components/DataDictionary/components/Layout/components/FiltersLayout/filtersLayout.tsx +13 -7
  242. package/src/components/DataDictionary/components/Table/hook.ts +10 -6
  243. package/src/components/DataDictionary/components/Table/options/columnFilters/constants.ts +2 -1
  244. package/src/components/DataDictionary/components/Table/options/columnFilters/hook.ts +13 -12
  245. package/src/components/DataDictionary/components/Table/options/globalFilter/constants.ts +14 -0
  246. package/src/components/DataDictionary/components/Table/options/globalFilter/hook.ts +28 -0
  247. package/src/components/DataDictionary/components/Table/options/hook.ts +9 -11
  248. package/src/components/DataDictionary/components/Table/options/pagination/constants.ts +6 -0
  249. package/src/components/DataDictionary/dataDictionary.tsx +45 -16
  250. package/src/components/DataDictionary/hooks/UseDataDictionaryConfig/hook.ts +38 -0
  251. package/src/components/DataDictionary/hooks/UseDataDictionaryConfig/types.ts +8 -0
  252. package/src/components/DataDictionary/hooks/UseDataDictionaryConfig/utils.ts +8 -0
  253. package/src/components/DataDictionary/hooks/UseMeasureFilters/hook.ts +27 -0
  254. package/src/components/DataDictionary/hooks/UseMeasureFilters/types.ts +6 -0
  255. package/src/components/DataDictionary/types.ts +1 -0
  256. package/src/components/Filter/components/FilterCountChip/filterCountChip.styles.ts +19 -0
  257. package/src/components/Filter/components/FilterCountChip/filterCountChip.tsx +21 -0
  258. package/src/components/Filter/components/FilterCountChip/stories/filterCountChip.stories.tsx +12 -0
  259. package/src/components/Filter/components/FilterCountChip/types.ts +6 -0
  260. package/src/components/Table/columnDef/globalFilter/constants.ts +5 -0
  261. package/src/components/Table/columnDef/globalFilter/filterFn.ts +34 -0
  262. package/src/components/Table/columnDef/globalFilter/types.ts +5 -0
  263. package/src/components/Table/columnDef/globalFilter/utils.ts +74 -0
  264. package/src/components/Table/components/TableCell/components/RankedCell/rankedCell.tsx +50 -0
  265. package/src/components/Table/components/TableCell/components/RankedCell/utils.ts +85 -0
  266. package/src/components/Table/components/TableFeatures/ColumnFilter/columnFilter.styles.ts +26 -1
  267. package/src/components/Table/components/TableFeatures/ColumnFilter/columnFilter.tsx +11 -5
  268. package/src/components/Table/components/TableFeatures/ColumnFilter/components/ColumnFilterTag/columnFilterTag.styles.ts +25 -0
  269. package/src/components/Table/components/TableFeatures/ColumnFilter/components/ColumnFilterTag/columnFilterTag.tsx +31 -0
  270. package/src/components/Table/components/TableFeatures/ColumnFilter/components/ColumnFilterTag/constants.ts +13 -0
  271. package/src/components/Table/components/TableFeatures/ColumnFilter/components/ColumnFilterTag/stories/columFilterTag.stories.tsx +26 -0
  272. package/src/components/Table/components/TableFeatures/ColumnFilter/components/ColumnFilterTag/types.ts +9 -0
  273. package/src/components/Table/components/TableFeatures/ColumnFilter/constants.ts +8 -1
  274. package/src/components/Table/components/TableFeatures/ColumnFilter/types.ts +3 -2
  275. package/src/components/Table/components/TableFeatures/GlobalFilter/constants.ts +8 -0
  276. package/src/components/Table/components/TableFeatures/GlobalFilter/globalFilter.tsx +33 -0
  277. package/src/components/Table/components/TableFeatures/GlobalFilter/types.ts +9 -0
  278. package/src/components/Table/coreOptions/state/pagination/constants.ts +8 -0
  279. package/src/components/Table/coreOptions/state/pagination/utils.ts +21 -0
  280. package/src/components/common/AnchorLink/anchorLink.styles.ts +1 -1
  281. package/src/components/common/AnchorLink/anchorLink.tsx +9 -3
  282. package/src/components/common/CustomIcon/components/SearchIcon/searchIcon.tsx +2 -3
  283. package/src/components/common/OutlinedInput/components/InputAdornment/components/ClearInputAdornment/clearInputAdornment.styles.ts +12 -0
  284. package/src/components/common/OutlinedInput/components/InputAdornment/components/ClearInputAdornment/clearInputAdornment.tsx +21 -0
  285. package/src/components/common/OutlinedInput/components/InputAdornment/components/ClearInputAdornment/constants.ts +13 -0
  286. package/src/components/common/OutlinedInput/components/InputAdornment/components/ClearInputAdornment/types.ts +4 -0
  287. package/src/components/common/OutlinedInput/components/InputAdornment/components/SearchInputAdornment/constants.ts +7 -0
  288. package/src/components/common/OutlinedInput/components/InputAdornment/components/SearchInputAdornment/searchInputAdornment.tsx +13 -0
  289. package/src/components/common/OutlinedInput/components/InputAdornment/components/constants.ts +7 -0
  290. package/src/components/common/OutlinedInput/components/InputAdornment/inputAdornment.styles.ts +6 -0
  291. package/src/components/common/OutlinedInput/outlinedInput.styles.ts +24 -0
  292. package/src/hooks/stateSyncManager/hooks/UseMetaCommands/hook.ts +2 -2
  293. package/src/hooks/stateSyncManager/hooks/UseStateSync/hook.ts +3 -3
  294. package/src/hooks/stateSyncManager/types.ts +1 -1
  295. package/src/providers/dataDictionary/context.ts +6 -0
  296. package/src/providers/dataDictionary/hook.ts +11 -0
  297. package/src/providers/dataDictionary/types.ts +6 -0
  298. package/src/providers/dataDictionaryState/actions/clearMeta/action.ts +18 -0
  299. package/src/providers/dataDictionaryState/actions/clearMeta/dispatch.ts +13 -0
  300. package/src/providers/dataDictionaryState/actions/clearMeta/types.ts +8 -0
  301. package/src/providers/dataDictionaryState/actions/stateToUrl/action.ts +20 -0
  302. package/src/providers/dataDictionaryState/actions/stateToUrl/dispatch.ts +14 -0
  303. package/src/providers/dataDictionaryState/actions/stateToUrl/types.ts +15 -0
  304. package/src/providers/dataDictionaryState/actions/types.ts +20 -0
  305. package/src/providers/dataDictionaryState/actions/updateColumnFilters/action.ts +24 -0
  306. package/src/providers/dataDictionaryState/actions/updateColumnFilters/dispatch.ts +16 -0
  307. package/src/providers/dataDictionaryState/actions/updateColumnFilters/types.ts +12 -0
  308. package/src/providers/dataDictionaryState/actions/updateColumnFilters/utils.ts +41 -0
  309. package/src/providers/dataDictionaryState/actions/updateGlobalFilter/action.ts +25 -0
  310. package/src/providers/dataDictionaryState/actions/updateGlobalFilter/dispatch.ts +16 -0
  311. package/src/providers/dataDictionaryState/actions/updateGlobalFilter/types.ts +12 -0
  312. package/src/providers/dataDictionaryState/actions/updateGlobalFilter/utils.ts +50 -0
  313. package/src/providers/dataDictionaryState/actions/urlToState/action.ts +28 -0
  314. package/src/providers/dataDictionaryState/actions/urlToState/dispatch.ts +14 -0
  315. package/src/providers/dataDictionaryState/actions/urlToState/types.ts +11 -0
  316. package/src/providers/dataDictionaryState/context.ts +9 -0
  317. package/src/providers/dataDictionaryState/dictionaries/constants.ts +4 -0
  318. package/src/providers/dataDictionaryState/dictionaries/state.ts +45 -0
  319. package/src/providers/dataDictionaryState/dictionaries/types.ts +11 -0
  320. package/src/providers/dataDictionaryState/dictionaries/utils.ts +25 -0
  321. package/src/providers/dataDictionaryState/hooks/UseDataDictionaryInitialArgs/hook.ts +14 -0
  322. package/src/providers/dataDictionaryState/hooks/UseDataDictionaryInitialArgs/types.ts +5 -0
  323. package/src/providers/dataDictionaryState/hooks/UseDataDictionaryReducer/hook.ts +17 -0
  324. package/src/providers/dataDictionaryState/hooks/UseDataDictionaryState/hook.ts +11 -0
  325. package/src/providers/dataDictionaryState/initializer/constants.ts +6 -0
  326. package/src/providers/dataDictionaryState/initializer/initializer.ts +22 -0
  327. package/src/providers/dataDictionaryState/initializer/utils.ts +39 -0
  328. package/src/providers/dataDictionaryState/provider.tsx +16 -0
  329. package/src/providers/dataDictionaryState/reducer.ts +42 -0
  330. package/src/providers/dataDictionaryState/types.ts +18 -0
  331. package/src/styles/common/mui/iconButton.ts +40 -0
  332. package/src/styles/common/mui/inputAdornment.ts +22 -0
  333. package/src/styles/common/mui/outlinedInput.ts +14 -0
  334. package/src/theme/common/components.ts +122 -16
  335. package/src/theme/components/muiButtonGroup.ts +4 -0
  336. package/src/theme/components/muiTableCell.ts +6 -0
  337. package/src/utils/parseJsonQueryParam.ts +27 -0
  338. package/src/utils/stateToUrlQuery.ts +40 -0
  339. package/src/views/DataDictionaryView/dataDictionaryView.tsx +29 -3
  340. package/src/views/DataDictionaryView/types.ts +5 -0
  341. package/src/views/DataDictionaryView/utils.ts +23 -0
  342. package/src/views/ExploreView/utils.ts +1 -1
  343. package/lib/components/DataDictionary/hooks/UseDataDictionary/hook.d.ts +0 -4
  344. package/lib/components/DataDictionary/hooks/UseDataDictionary/hook.js +0 -36
  345. package/lib/components/DataDictionary/hooks/UseDataDictionary/types.d.ts +0 -8
  346. package/src/components/DataDictionary/hooks/UseDataDictionary/hook.ts +0 -51
  347. package/src/components/DataDictionary/hooks/UseDataDictionary/types.ts +0 -9
  348. /package/lib/components/DataDictionary/{hooks/UseDataDictionary → components/Filters/components/ColumnFilterTags}/types.js +0 -0
@@ -0,0 +1,11 @@
1
+ import { NextRouter } from "next/router";
2
+ import { DataDictionaryActionKind } from "../types";
3
+
4
+ export type UrlToStateAction = {
5
+ payload: UrlToStatePayload;
6
+ type: DataDictionaryActionKind.UrlToState;
7
+ };
8
+
9
+ export type UrlToStatePayload = {
10
+ query: NextRouter["query"];
11
+ };
@@ -0,0 +1,9 @@
1
+ import { createContext } from "react";
2
+ import { INITIAL_DATA_DICTIONARY_STATE } from "./initializer/constants";
3
+ import { DataDictionaryStateContextProps } from "./types";
4
+
5
+ export const DataDictionaryStateContext =
6
+ createContext<DataDictionaryStateContextProps>({
7
+ dataDictionaryDispatch: null,
8
+ dataDictionaryState: INITIAL_DATA_DICTIONARY_STATE,
9
+ });
@@ -0,0 +1,4 @@
1
+ export const DATA_DICTIONARY_URL_PARAMS = {
2
+ COLUMN_FILTERS: "filter",
3
+ GLOBAL_FILTER: "search",
4
+ } as const;
@@ -0,0 +1,45 @@
1
+ import { TableState } from "@tanstack/react-table";
2
+ import { stateToUrlQuery } from "../../../utils/stateToUrlQuery";
3
+ import { DataDictionaryState } from "../types";
4
+ import { DictionariesContext } from "./types";
5
+ import { extractDictionaryUrlState as extractUrlState } from "./utils";
6
+
7
+ /**
8
+ * Builds the next dictionaries context.
9
+ * @param state - State.
10
+ * @param dictionaryKey - Dictionary key.
11
+ * @param nextDictionaryState - Next dictionary state.
12
+ * @returns Next dictionaries context.
13
+ */
14
+ export function buildNextDictionaries(
15
+ state: DataDictionaryState,
16
+ dictionaryKey: string,
17
+ nextDictionaryState: Partial<TableState>
18
+ ): DictionariesContext {
19
+ // Clone the dictionaries.
20
+ const dictionaries: DictionariesContext = { ...state.dictionaries };
21
+
22
+ for (const [key, dictionary] of Object.entries(dictionaries)) {
23
+ // Clone the dictionary context.
24
+ const dictionaryContext = { ...dictionary };
25
+
26
+ // If the dictionary key is a match, update the dictionary context.
27
+ if (key === dictionaryKey) {
28
+ // Update the dictionary state.
29
+ dictionaryContext.state = { ...dictionary.state, ...nextDictionaryState };
30
+
31
+ // Grab param values from the updated dictionary state.
32
+ const { columnFilters, globalFilter } = dictionaryContext.state;
33
+
34
+ // Update the dictionary query.
35
+ dictionaryContext.query = stateToUrlQuery(
36
+ extractUrlState(key, { columnFilters, globalFilter })
37
+ );
38
+ }
39
+
40
+ // Update the dictionary context.
41
+ dictionaries[key] = dictionaryContext;
42
+ }
43
+
44
+ return dictionaries;
45
+ }
@@ -0,0 +1,11 @@
1
+ import { TableState } from "@tanstack/react-table";
2
+ import { NextRouter } from "next/router";
3
+
4
+ export interface DictionariesContext {
5
+ [key: string]: DictionaryContext;
6
+ }
7
+
8
+ export interface DictionaryContext {
9
+ query: NextRouter["query"];
10
+ state: Partial<TableState>;
11
+ }
@@ -0,0 +1,25 @@
1
+ import { ColumnFiltersState, TableState } from "@tanstack/react-table";
2
+ import { DATA_DICTIONARY_URL_PARAMS } from "./constants";
3
+
4
+ /**
5
+ * Extracts dictionary state properties that should be synchronized with URL parameters.
6
+ * This function maps specific properties from the dictionary state to a format
7
+ * that can be used to generate URL query parameters.
8
+ * The extracted properties are:
9
+ * - dictionary: Dictionary key (string).
10
+ * - filter: Applied column filters (ColumnFiltersState).
11
+ * - search: Applied global filter (GlobalFilterTableState) - typed as string or undefined.
12
+ * @param dictionary - Dictionary key.
13
+ * @param state - Dictionary table state.
14
+ * @returns Object with properties ready for URL query serialization.
15
+ */
16
+ export function extractDictionaryUrlState(
17
+ dictionary: string,
18
+ state: Partial<TableState>
19
+ ): Record<string, string | ColumnFiltersState | undefined> {
20
+ return {
21
+ dictionary,
22
+ [DATA_DICTIONARY_URL_PARAMS.COLUMN_FILTERS]: state.columnFilters || [],
23
+ [DATA_DICTIONARY_URL_PARAMS.GLOBAL_FILTER]: state.globalFilter,
24
+ };
25
+ }
@@ -0,0 +1,14 @@
1
+ import { DataDictionaryConfig } from "../../../../common/entities";
2
+ import { useConfig } from "../../../../hooks/useConfig";
3
+ import { UseDataDictionaryInitialArgs } from "./types";
4
+
5
+ export const useDataDictionaryInitialArgs =
6
+ (): UseDataDictionaryInitialArgs => {
7
+ const { config } = useConfig();
8
+
9
+ const dataDictionaries = config.dataDictionaries as
10
+ | DataDictionaryConfig[]
11
+ | undefined;
12
+
13
+ return { dataDictionaries };
14
+ };
@@ -0,0 +1,5 @@
1
+ import { DataDictionaryConfig } from "../../../../common/entities";
2
+
3
+ export interface UseDataDictionaryInitialArgs {
4
+ dataDictionaries?: DataDictionaryConfig[];
5
+ }
@@ -0,0 +1,17 @@
1
+ import { useReducer } from "react";
2
+ import { initializer } from "../../initializer/initializer";
3
+ import { dataDictionaryReducer } from "../../reducer";
4
+ import { DataDictionaryStateContextProps } from "../../types";
5
+ import { useDataDictionaryInitialArgs } from "../UseDataDictionaryInitialArgs/hook";
6
+
7
+ export const useDataDictionaryReducer = (): DataDictionaryStateContextProps => {
8
+ const initialArgs = useDataDictionaryInitialArgs();
9
+
10
+ const [dataDictionaryState, dataDictionaryDispatch] = useReducer(
11
+ dataDictionaryReducer,
12
+ initialArgs,
13
+ initializer
14
+ );
15
+
16
+ return { dataDictionaryDispatch, dataDictionaryState };
17
+ };
@@ -0,0 +1,11 @@
1
+ import { useContext } from "react";
2
+ import { DataDictionaryStateContext } from "../../context";
3
+ import { DataDictionaryStateContextProps } from "../../types";
4
+
5
+ /**
6
+ * Returns data dictionary state context.
7
+ * @returns data dictionary state context.
8
+ */
9
+ export const useDataDictionaryState = (): DataDictionaryStateContextProps => {
10
+ return useContext(DataDictionaryStateContext);
11
+ };
@@ -0,0 +1,6 @@
1
+ import { DataDictionaryState } from "../types";
2
+
3
+ export const INITIAL_DATA_DICTIONARY_STATE: DataDictionaryState = {
4
+ dictionaries: {},
5
+ meta: null,
6
+ };
@@ -0,0 +1,22 @@
1
+ import { UseDataDictionaryInitialArgs } from "../hooks/UseDataDictionaryInitialArgs/types";
2
+ import { DataDictionaryState } from "../types";
3
+ import { INITIAL_DATA_DICTIONARY_STATE } from "./constants";
4
+ import { initDictionaries } from "./utils";
5
+
6
+ /**
7
+ * Initializer function for the data dictionary reducer, returning initial state.
8
+ * @param initialArgs - Initial arguments.
9
+ * @param initialArgs.dataDictionaries - Data dictionary configs.
10
+ * @returns The initialized data dictionary state.
11
+ */
12
+ export function initializer({
13
+ dataDictionaries,
14
+ }: UseDataDictionaryInitialArgs): DataDictionaryState {
15
+ // If no data dictionary configs are provided, return default initial state.
16
+ if (!dataDictionaries) return INITIAL_DATA_DICTIONARY_STATE;
17
+
18
+ return {
19
+ dictionaries: initDictionaries(dataDictionaries),
20
+ meta: null,
21
+ };
22
+ }
@@ -0,0 +1,39 @@
1
+ import { TableState } from "@tanstack/react-table";
2
+ import { DataDictionaryConfig } from "../../../common/entities";
3
+ import { initPaginationState } from "../../../components/Table/coreOptions/state/pagination/utils";
4
+ import { DictionariesContext } from "../dictionaries/types";
5
+
6
+ /**
7
+ * Initializes the dictionaries context.
8
+ * @param dataDictionaries - The data dictionary configs.
9
+ * @returns The initialized dictionaries context.
10
+ */
11
+ export function initDictionaries(
12
+ dataDictionaries: DataDictionaryConfig[]
13
+ ): DictionariesContext {
14
+ return dataDictionaries.reduce((acc, { path, tableOptions }) => {
15
+ acc[path] = {
16
+ query: { dictionary: path },
17
+ state: initState(tableOptions),
18
+ };
19
+ return acc;
20
+ }, {} as DictionariesContext);
21
+ }
22
+
23
+ /**
24
+ * Initializes the dictionary state (TanStack Table state).
25
+ * @param tableOptions - The table options.
26
+ * @returns The initialized dictionary state.
27
+ */
28
+ function initState(
29
+ tableOptions: DataDictionaryConfig["tableOptions"]
30
+ ): Partial<TableState> {
31
+ const { initialState } = tableOptions;
32
+
33
+ return {
34
+ columnFilters: [],
35
+ globalFilter: undefined,
36
+ ...initialState,
37
+ ...initPaginationState(initialState),
38
+ };
39
+ }
@@ -0,0 +1,16 @@
1
+ import React, { ReactNode } from "react";
2
+ import { DataDictionaryStateContext } from "./context";
3
+ import { useDataDictionaryReducer } from "./hooks/UseDataDictionaryReducer/hook";
4
+
5
+ export function DataDictionaryStateProvider({
6
+ children,
7
+ }: {
8
+ children: ReactNode | ReactNode[];
9
+ }): JSX.Element {
10
+ const reducer = useDataDictionaryReducer();
11
+ return (
12
+ <DataDictionaryStateContext.Provider value={reducer}>
13
+ {children}
14
+ </DataDictionaryStateContext.Provider>
15
+ );
16
+ }
@@ -0,0 +1,42 @@
1
+ import { clearMetaAction } from "./actions/clearMeta/action";
2
+ import { stateToUrlAction } from "./actions/stateToUrl/action";
3
+ import {
4
+ DataDictionaryAction,
5
+ DataDictionaryActionKind,
6
+ } from "./actions/types";
7
+ import { updateColumnFiltersAction } from "./actions/updateColumnFilters/action";
8
+ import { updateGlobalFilterAction } from "./actions/updateGlobalFilter/action";
9
+ import { urlToStateAction } from "./actions/urlToState/action";
10
+ import { DataDictionaryState } from "./types";
11
+
12
+ /**
13
+ * Reducer for data dictionary.
14
+ * @param state - State.
15
+ * @param action - Action.
16
+ * @returns state.
17
+ */
18
+ export function dataDictionaryReducer(
19
+ state: DataDictionaryState,
20
+ action: DataDictionaryAction
21
+ ): DataDictionaryState {
22
+ const { payload, type } = action;
23
+ switch (type) {
24
+ case DataDictionaryActionKind.ClearMeta: {
25
+ return clearMetaAction(state, payload);
26
+ }
27
+ case DataDictionaryActionKind.StateToUrl: {
28
+ return stateToUrlAction(state, payload);
29
+ }
30
+ case DataDictionaryActionKind.UpdateColumnFilters: {
31
+ return updateColumnFiltersAction(state, payload);
32
+ }
33
+ case DataDictionaryActionKind.UpdateGlobalFilter: {
34
+ return updateGlobalFilterAction(state, payload);
35
+ }
36
+ case DataDictionaryActionKind.UrlToState: {
37
+ return urlToStateAction(state, payload);
38
+ }
39
+ default:
40
+ return state;
41
+ }
42
+ }
@@ -0,0 +1,18 @@
1
+ import { Dispatch } from "react";
2
+ import { META_COMMAND } from "../../hooks/stateSyncManager/hooks/UseMetaCommands/types";
3
+ import { DataDictionaryAction } from "./actions/types";
4
+ import { DictionariesContext } from "./dictionaries/types";
5
+
6
+ export interface DataDictionaryState {
7
+ dictionaries: DictionariesContext;
8
+ meta: Meta | null;
9
+ }
10
+
11
+ export interface DataDictionaryStateContextProps {
12
+ dataDictionaryDispatch: Dispatch<DataDictionaryAction> | null;
13
+ dataDictionaryState: DataDictionaryState;
14
+ }
15
+
16
+ export interface Meta {
17
+ command: META_COMMAND;
18
+ }
@@ -0,0 +1,40 @@
1
+ import { IconButtonProps } from "@mui/material";
2
+
3
+ type IconButtonPropsOptions = {
4
+ COLOR: typeof COLOR;
5
+ EDGE: typeof EDGE;
6
+ SIZE: typeof SIZE;
7
+ };
8
+
9
+ const COLOR: Record<string, IconButtonProps["color"]> = {
10
+ DEFAULT: "default",
11
+ ERROR: "error",
12
+ INFO: "info",
13
+ INHERIT: "inherit",
14
+ INK: "ink",
15
+ INK_LIGHT: "inkLight",
16
+ PRIMARY: "primary",
17
+ SECONDARY: "secondary",
18
+ SUCCESS: "success",
19
+ WARNING: "warning",
20
+ };
21
+
22
+ const EDGE: Record<string, IconButtonProps["edge"]> = {
23
+ END: "end",
24
+ START: "start",
25
+ };
26
+
27
+ const SIZE: Record<string, IconButtonProps["size"]> = {
28
+ LARGE: "large",
29
+ MEDIUM: "medium",
30
+ SMALL: "small",
31
+ XLARGE: "xlarge",
32
+ XSMALL: "xsmall",
33
+ XXSMALL: "xxsmall",
34
+ };
35
+
36
+ export const ICON_BUTTON_PROPS: IconButtonPropsOptions = {
37
+ COLOR,
38
+ EDGE,
39
+ SIZE,
40
+ };
@@ -0,0 +1,22 @@
1
+ import { InputAdornmentProps } from "@mui/material";
2
+
3
+ type InputAdornmentPropsOptions = {
4
+ POSITION: typeof POSITION;
5
+ VARIANT: typeof VARIANT;
6
+ };
7
+
8
+ const POSITION: Record<string, InputAdornmentProps["position"]> = {
9
+ END: "end",
10
+ START: "start",
11
+ };
12
+
13
+ const VARIANT: Record<string, InputAdornmentProps["variant"]> = {
14
+ FILLED: "filled",
15
+ OUTLINED: "outlined",
16
+ STANDARD: "standard",
17
+ };
18
+
19
+ export const INPUT_ADORNMENT_PROPS: InputAdornmentPropsOptions = {
20
+ POSITION,
21
+ VARIANT,
22
+ };
@@ -0,0 +1,14 @@
1
+ import { OutlinedInputProps } from "@mui/material";
2
+
3
+ type OutlinedInputPropsOptions = {
4
+ COLOR: typeof COLOR;
5
+ };
6
+
7
+ const COLOR: Record<string, OutlinedInputProps["color"]> = {
8
+ PRIMARY: "primary",
9
+ SECONDARY: "secondary",
10
+ };
11
+
12
+ export const OUTLINED_INPUT_PROPS: OutlinedInputPropsOptions = {
13
+ COLOR,
14
+ };
@@ -5,6 +5,7 @@ import { PALETTE } from "../../styles/common/constants/palette";
5
5
  import { SHADOWS } from "../../styles/common/constants/shadows";
6
6
  import { BUTTON_PROPS } from "../../styles/common/mui/button";
7
7
  import { CHIP_PROPS } from "../../styles/common/mui/chip";
8
+ import { OUTLINED_INPUT_PROPS } from "../../styles/common/mui/outlinedInput";
8
9
  import { desktopUp, mobileUp, tabletUp } from "./breakpoints";
9
10
  import {
10
11
  TEXT_BODY_400,
@@ -256,11 +257,25 @@ export const MuiButton = (theme: Theme): Components["MuiButton"] => {
256
257
  minWidth: 0,
257
258
  padding: 0,
258
259
  },
259
- textPrimary: {
260
- color: theme.palette.primary.main,
261
- },
262
260
  },
263
261
  variants: [
262
+ {
263
+ props: {
264
+ color: BUTTON_PROPS.COLOR.PRIMARY,
265
+ variant: BUTTON_PROPS.VARIANT.TEXT,
266
+ },
267
+ style: {
268
+ color: PALETTE.PRIMARY_MAIN,
269
+ // eslint-disable-next-line sort-keys -- disabling key order for readability
270
+ "&:hover": {
271
+ backgroundColor: "transparent",
272
+ textDecoration: "underline",
273
+ textDecorationColor: "currentColor",
274
+ textDecorationSkipInk: "none",
275
+ textUnderlinePosition: "from-font",
276
+ },
277
+ },
278
+ },
264
279
  {
265
280
  props: {
266
281
  variant: "activeNav", // associated with "nav" variant.
@@ -439,6 +454,16 @@ export const MuiChip = (theme: Theme): Components["MuiChip"] => {
439
454
  color: theme.palette.info.main,
440
455
  },
441
456
  },
457
+ {
458
+ props: {
459
+ color: CHIP_PROPS.COLOR.PRIMARY,
460
+ variant: CHIP_PROPS.VARIANT.FILLED,
461
+ },
462
+ style: {
463
+ backgroundColor: PALETTE.PRIMARY_MAIN,
464
+ color: PALETTE.COMMON_WHITE,
465
+ },
466
+ },
442
467
  {
443
468
  props: { color: "success" },
444
469
  style: {
@@ -866,9 +891,6 @@ export const MuiIconButton = (theme: Theme): Components["MuiIconButton"] => {
866
891
  export const MuiInputBase = (theme: Theme): Components["MuiInputBase"] => {
867
892
  return {
868
893
  styleOverrides: {
869
- adornedStart: {
870
- gap: 8,
871
- },
872
894
  multiline: {
873
895
  height: "unset",
874
896
  },
@@ -881,6 +903,17 @@ export const MuiInputBase = (theme: Theme): Components["MuiInputBase"] => {
881
903
  [tabletUp]: {
882
904
  fontSize: theme.typography[TEXT_BODY_400].fontSize,
883
905
  },
906
+ variants: [
907
+ /* PRIMARY */ /* TODO: remove `adornedStart` when all input components are refactored to color: secondary */
908
+ {
909
+ props: { color: "primary" },
910
+ style: {
911
+ adornedStart: {
912
+ gap: 8,
913
+ },
914
+ },
915
+ },
916
+ ],
884
917
  },
885
918
  },
886
919
  };
@@ -1012,11 +1045,8 @@ export const MuiOutlinedInput = (
1012
1045
  root: {
1013
1046
  backgroundColor: PALETTE.COMMON_WHITE,
1014
1047
  boxShadow: `inset 0 2px 0 0 ${COLOR_MIXES.COMMON_BLACK_04}`,
1015
- paddingLeft: 12,
1048
+ paddingLeft: 12, // TODO: remove when all input components are refactored to color: secondary.
1016
1049
  // eslint-disable-next-line sort-keys -- disabling key order for readability
1017
- "& .MuiSvgIcon-root": {
1018
- color: theme.palette.ink.light, // Adornment e.g. "SearchIcon".
1019
- },
1020
1050
  "&:hover": {
1021
1051
  "& .MuiOutlinedInput-notchedOutline": {
1022
1052
  borderColor: theme.palette.smoke.dark,
@@ -1028,9 +1058,6 @@ export const MuiOutlinedInput = (
1028
1058
  borderColor: theme.palette.ink.main,
1029
1059
  borderWidth: 1,
1030
1060
  },
1031
- "& .MuiSvgIcon-root": {
1032
- color: theme.palette.ink.main, // Adornment e.g. "SearchIcon".
1033
- },
1034
1061
  },
1035
1062
  // eslint-disable-next-line sort-keys -- disabling key order for specificity
1036
1063
  "&.Mui-disabled": {
@@ -1038,9 +1065,6 @@ export const MuiOutlinedInput = (
1038
1065
  borderColor: theme.palette.smoke.dark,
1039
1066
  borderWidth: 1,
1040
1067
  },
1041
- "& .MuiSvgIcon-root": {
1042
- color: theme.palette.ink.light,
1043
- },
1044
1068
  },
1045
1069
  "&.Mui-error": {
1046
1070
  backgroundColor: theme.palette.alert.lightest,
@@ -1050,6 +1074,88 @@ export const MuiOutlinedInput = (
1050
1074
  borderWidth: 1,
1051
1075
  },
1052
1076
  },
1077
+ variants: [
1078
+ /* PRIMARY */
1079
+ {
1080
+ props: { color: OUTLINED_INPUT_PROPS.COLOR.PRIMARY },
1081
+ style: {
1082
+ "& .MuiSvgIcon-root": {
1083
+ color: theme.palette.ink.light, // Adornment e.g. "SearchIcon". TODO: remove when all input components are refactored to color: secondary.
1084
+ },
1085
+ // eslint-disable-next-line sort-keys -- disabling key order for specificity
1086
+ "&.Mui-focused": {
1087
+ "& .MuiSvgIcon-root": {
1088
+ color: theme.palette.ink.main, // Adornment e.g. "SearchIcon". TODO: remove when all input components are refactored to color: secondary.
1089
+ },
1090
+ },
1091
+ // eslint-disable-next-line sort-keys -- disabling key order for specificity
1092
+ "&.Mui-disabled": {
1093
+ "& .MuiSvgIcon-root": {
1094
+ color: theme.palette.ink.light, // TODO: remove when all input components are refactored to color: secondary.
1095
+ },
1096
+ },
1097
+ },
1098
+ },
1099
+ /* SECONDARY */
1100
+ {
1101
+ props: { color: OUTLINED_INPUT_PROPS.COLOR.SECONDARY },
1102
+ style: {
1103
+ backgroundColor: PALETTE.COMMON_WHITE,
1104
+ boxShadow: `inset 0 2px 0 0 ${COLOR_MIXES.COMMON_BLACK_04}`,
1105
+ color: PALETTE.INK_LIGHT,
1106
+ padding: "0 12px",
1107
+ // eslint-disable-next-line sort-keys -- disabling key order for specificity
1108
+ ".MuiOutlinedInput-input": {
1109
+ color: "inherit",
1110
+ height: 20,
1111
+ padding: "10px 0",
1112
+ // eslint-disable-next-line sort-keys -- disabling key order for specificity
1113
+ "&::placeholder": {
1114
+ color: "inherit",
1115
+ opacity: 0.8,
1116
+ },
1117
+ },
1118
+ ".MuiOutlinedInput-notchedOutline": {
1119
+ borderColor: PALETTE.SMOKE_DARK,
1120
+ borderWidth: 1,
1121
+ },
1122
+ // eslint-disable-next-line sort-keys -- disabling key order for specificity
1123
+ "&.Mui-focused": {
1124
+ color: PALETTE.INK_MAIN,
1125
+ // eslint-disable-next-line sort-keys -- disabling key order for specificity
1126
+ ".MuiOutlinedInput-input": {
1127
+ "&::placeholder": {
1128
+ opacity: 0,
1129
+ },
1130
+ },
1131
+ // eslint-disable-next-line sort-keys -- disabling key order for specificity
1132
+ ".MuiOutlinedInput-notchedOutline": {
1133
+ borderColor: PALETTE.INK_MAIN,
1134
+ borderWidth: 1,
1135
+ },
1136
+ },
1137
+ // eslint-disable-next-line sort-keys -- disabling key order for specificity
1138
+ "&.Mui-disabled": {
1139
+ backgroundColor: PALETTE.SMOKE_LIGHT,
1140
+ color: PALETTE.INK_LIGHT,
1141
+ // eslint-disable-next-line sort-keys -- disabling key order for specificity
1142
+ ".MuiOutlinedInput-input": {
1143
+ WebkitTextFillColor: "unset",
1144
+ // eslint-disable-next-line sort-keys -- disabling key order for specificity
1145
+ "&::placeholder": {
1146
+ color: "inherit",
1147
+ opacity: 1,
1148
+ },
1149
+ },
1150
+ // eslint-disable-next-line sort-keys -- disabling key order for specificity
1151
+ ".MuiOutlinedInput-notchedOutline": {
1152
+ borderColor: PALETTE.SMOKE_DARK,
1153
+ borderWidth: 1,
1154
+ },
1155
+ },
1156
+ },
1157
+ },
1158
+ ],
1053
1159
  },
1054
1160
  },
1055
1161
  };
@@ -59,6 +59,10 @@ export const MuiButtonGroup: Components["MuiButtonGroup"] = {
59
59
  backgroundColor: PALETTE.SMOKE_LIGHTEST,
60
60
  boxShadow: `inset 0 0 0 1px ${PALETTE.SMOKE_DARK}`,
61
61
  },
62
+ // eslint-disable-next-line sort-keys -- disabling key order for readability
63
+ "&.Mui-focusVisible": {
64
+ boxShadow: `inset 0 0 0 1px ${PALETTE.SMOKE_DARK}, 0 1px 0 0 ${COLOR_MIXES.COMMON_BLACK_08}`,
65
+ },
62
66
  },
63
67
  },
64
68
  },
@@ -1,4 +1,5 @@
1
1
  import { Components, Theme } from "@mui/material";
2
+ import { PALETTE } from "../../styles/common/constants/palette";
2
3
  import { TABLE_CELL_PROPS } from "../../styles/common/mui/tableCell";
3
4
  import { TEXT_BODY_400, TEXT_BODY_SMALL_500 } from "../common/typography";
4
5
 
@@ -34,6 +35,11 @@ export const MuiTableCell = (theme: Theme): Components["MuiTableCell"] => {
34
35
  props: { variant: TABLE_CELL_PROPS.VARIANT.BODY },
35
36
  style: {
36
37
  ...typography[TEXT_BODY_400],
38
+ "& mark": {
39
+ backgroundColor: PALETTE.WARNING_LIGHT,
40
+ color: "inherit",
41
+ padding: "2px 0",
42
+ },
37
43
  },
38
44
  },
39
45
  {
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Parses a JSON-encoded value from a URL query parameter.
3
+ *
4
+ * This function is specifically designed for query parameters that contain
5
+ * serialized complex data (arrays or objects), not for simple string values.
6
+ *
7
+ * It handles Next.js query parameters which can be string, string[] or undefined.
8
+ * Repeated parameters (`string[]`) are not supported.
9
+ *
10
+ * @param param - URL query parameter value.
11
+ * @param defaultValue - Default value.
12
+ * @returns Parsed complex data structure or default value.
13
+ */
14
+ export function parseJsonQueryParam<T = unknown>(
15
+ param: string | string[] | undefined,
16
+ defaultValue?: T
17
+ ): T | undefined {
18
+ // Handle non-string parameters.
19
+ if (typeof param !== "string") return defaultValue;
20
+
21
+ try {
22
+ return JSON.parse(decodeURIComponent(param));
23
+ } catch (error) {
24
+ console.warn("Failed to parse query param JSON:", error);
25
+ return defaultValue;
26
+ }
27
+ }