@pautena/react-design-system 0.14.1 → 0.14.3

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 (290) hide show
  1. package/action/cjs/index.js +1 -1
  2. package/action/cjs/index.js.map +1 -1
  3. package/action/index.js +1 -1
  4. package/action/index.js.map +1 -1
  5. package/autocomplete/autocomplete.d.ts +2 -1
  6. package/autocomplete/cjs/index.js +1 -23
  7. package/autocomplete/cjs/index.js.map +1 -1
  8. package/autocomplete/index.js +1 -23
  9. package/autocomplete/index.js.map +1 -1
  10. package/board/board.d.ts +1 -1
  11. package/board/cjs/index.js +1 -1
  12. package/board/cjs/index.js.map +1 -1
  13. package/board/index.js +1 -1
  14. package/board/index.js.map +1 -1
  15. package/bootstrap-dialog/cjs/index.js +1 -1
  16. package/bootstrap-dialog/cjs/index.js.map +1 -1
  17. package/bootstrap-dialog/index.js +1 -1
  18. package/bootstrap-dialog/index.js.map +1 -1
  19. package/bullet/bullet.d.ts +1 -1
  20. package/bullet/cjs/index.js +1 -1
  21. package/bullet/cjs/index.js.map +1 -1
  22. package/bullet/index.js +1 -1
  23. package/bullet/index.js.map +1 -1
  24. package/center-container/center-container.d.ts +1 -1
  25. package/center-container/cjs/index.js +1 -1
  26. package/center-container/cjs/index.js.map +1 -1
  27. package/center-container/index.js +1 -1
  28. package/center-container/index.js.map +1 -1
  29. package/cjs/index.js +4 -4
  30. package/cjs/index.js.map +1 -1
  31. package/confirm-dialog/cjs/index.js +1 -1
  32. package/confirm-dialog/cjs/index.js.map +1 -1
  33. package/confirm-dialog/index.js +1 -1
  34. package/confirm-dialog/index.js.map +1 -1
  35. package/content/cjs/index.js +1 -1
  36. package/content/cjs/index.js.map +1 -1
  37. package/content/index.js +1 -1
  38. package/content/index.js.map +1 -1
  39. package/content-placeholder/cjs/index.js +1 -1
  40. package/content-placeholder/cjs/index.js.map +1 -1
  41. package/content-placeholder/index.js +1 -1
  42. package/content-placeholder/index.js.map +1 -1
  43. package/date-range-calendar/cjs/index.js +1 -1
  44. package/date-range-calendar/cjs/index.js.map +1 -1
  45. package/date-range-calendar/index.js +1 -1
  46. package/date-range-calendar/index.js.map +1 -1
  47. package/date-range-picker/cjs/index.js +1 -1
  48. package/date-range-picker/cjs/index.js.map +1 -1
  49. package/date-range-picker/index.js +1 -1
  50. package/date-range-picker/index.js.map +1 -1
  51. package/drawer/cjs/index.js +1 -1
  52. package/drawer/cjs/index.js.map +1 -1
  53. package/drawer/drawer.d.ts +3 -3
  54. package/drawer/drawer.types.d.ts +2 -1
  55. package/drawer/index.js +1 -1
  56. package/drawer/index.js.map +1 -1
  57. package/drawer-app-bar/cjs/index.js +1 -1
  58. package/drawer-app-bar/cjs/index.js.map +1 -1
  59. package/drawer-app-bar/index.js +1 -1
  60. package/drawer-app-bar/index.js.map +1 -1
  61. package/drawer-content/cjs/index.js +1 -1
  62. package/drawer-content/cjs/index.js.map +1 -1
  63. package/drawer-content/drawer-content.d.ts +1 -1
  64. package/drawer-content/index.js +1 -1
  65. package/drawer-content/index.js.map +1 -1
  66. package/drawer-item/cjs/index.js +1 -1
  67. package/drawer-item/cjs/index.js.map +1 -1
  68. package/drawer-item/drawer-item-link.d.ts +2 -2
  69. package/drawer-item/drawer-item.d.ts +1 -1
  70. package/drawer-item/drawer-menu-item.d.ts +2 -2
  71. package/drawer-item/index.js +1 -1
  72. package/drawer-item/index.js.map +1 -1
  73. package/drawer-layout/cjs/index.js +1 -1
  74. package/drawer-layout/cjs/index.js.map +1 -1
  75. package/drawer-layout/drawer-layout.d.ts +2 -2
  76. package/drawer-layout/index.js +1 -1
  77. package/drawer-layout/index.js.map +1 -1
  78. package/drawer-main/cjs/index.js +1 -1
  79. package/drawer-main/cjs/index.js.map +1 -1
  80. package/drawer-main/index.js +1 -1
  81. package/drawer-main/index.js.map +1 -1
  82. package/drawer-provider/cjs/index.js +1 -1
  83. package/drawer-provider/cjs/index.js.map +1 -1
  84. package/drawer-provider/drawer-context.d.ts +1 -1
  85. package/drawer-provider/drawer.provider.d.ts +1 -1
  86. package/drawer-provider/index.js +1 -1
  87. package/drawer-provider/index.js.map +1 -1
  88. package/drawer-section/cjs/index.js +1 -1
  89. package/drawer-section/cjs/index.js.map +1 -1
  90. package/drawer-section/drawer-section.d.ts +1 -1
  91. package/drawer-section/index.js +1 -1
  92. package/drawer-section/index.js.map +1 -1
  93. package/drawer-subheader/cjs/index.js +1 -1
  94. package/drawer-subheader/cjs/index.js.map +1 -1
  95. package/drawer-subheader/drawer-subheader.d.ts +5 -5
  96. package/drawer-subheader/index.js +1 -1
  97. package/drawer-subheader/index.js.map +1 -1
  98. package/enhanced-remote-table/cjs/index.js +4 -4
  99. package/enhanced-remote-table/cjs/index.js.map +1 -1
  100. package/enhanced-remote-table/enhanced-remote-table.mock.d.ts +1 -1
  101. package/enhanced-remote-table/index.js +4 -4
  102. package/enhanced-remote-table/index.js.map +1 -1
  103. package/enhanced-table/cjs/index.js +4 -4
  104. package/enhanced-table/cjs/index.js.map +1 -1
  105. package/enhanced-table/index.js +4 -4
  106. package/enhanced-table/index.js.map +1 -1
  107. package/expandable-alert/cjs/index.js +1 -1
  108. package/expandable-alert/cjs/index.js.map +1 -1
  109. package/expandable-alert/expandable-alert.d.ts +3 -3
  110. package/expandable-alert/index.js +1 -1
  111. package/expandable-alert/index.js.map +1 -1
  112. package/form-dialog/cjs/index.js +1 -1
  113. package/form-dialog/cjs/index.js.map +1 -1
  114. package/form-dialog/form-dialog.d.ts +1 -1
  115. package/form-dialog/index.js +1 -1
  116. package/form-dialog/index.js.map +1 -1
  117. package/group-value-card/cjs/index.js +1 -1
  118. package/group-value-card/cjs/index.js.map +1 -1
  119. package/group-value-card/group-value-card.d.ts +1 -1
  120. package/group-value-card/index.js +1 -1
  121. package/group-value-card/index.js.map +1 -1
  122. package/header/cjs/index.js +1 -1
  123. package/header/cjs/index.js.map +1 -1
  124. package/header/index.js +1 -1
  125. package/header/index.js.map +1 -1
  126. package/header-layout/cjs/index.js +1 -1
  127. package/header-layout/cjs/index.js.map +1 -1
  128. package/header-layout/header-layout.d.ts +3 -3
  129. package/header-layout/index.js +1 -1
  130. package/header-layout/index.js.map +1 -1
  131. package/index.js +4 -4
  132. package/index.js.map +1 -1
  133. package/label/cjs/index.js +1 -1
  134. package/label/cjs/index.js.map +1 -1
  135. package/label/index.js +1 -1
  136. package/label/index.js.map +1 -1
  137. package/label/label.d.ts +1 -1
  138. package/link/cjs/index.js +1 -1
  139. package/link/cjs/index.js.map +1 -1
  140. package/link/index.js +1 -1
  141. package/link/index.js.map +1 -1
  142. package/link/link.d.ts +5 -5
  143. package/link-card/cjs/index.js +1 -1
  144. package/link-card/cjs/index.js.map +1 -1
  145. package/link-card/index.js +1 -1
  146. package/link-card/index.js.map +1 -1
  147. package/link-card/link-card.d.ts +1 -1
  148. package/list-panel/cjs/index.js +1 -1
  149. package/list-panel/cjs/index.js.map +1 -1
  150. package/list-panel/index.js +1 -1
  151. package/list-panel/index.js.map +1 -1
  152. package/loading-area/cjs/index.js +1 -1
  153. package/loading-area/cjs/index.js.map +1 -1
  154. package/loading-area/index.js +1 -1
  155. package/loading-area/index.js.map +1 -1
  156. package/lorem-ipsum-placeholder/cjs/index.js +1 -1
  157. package/lorem-ipsum-placeholder/cjs/index.js.map +1 -1
  158. package/lorem-ipsum-placeholder/index.js +1 -1
  159. package/lorem-ipsum-placeholder/index.js.map +1 -1
  160. package/markdown/cjs/index.js +1 -1
  161. package/markdown/cjs/index.js.map +1 -1
  162. package/markdown/index.js +1 -1
  163. package/markdown/index.js.map +1 -1
  164. package/model-form/cjs/index.js +1 -1
  165. package/model-form/cjs/index.js.map +1 -1
  166. package/model-form/index.js +1 -1
  167. package/model-form/index.js.map +1 -1
  168. package/model-form/model-form-field.d.ts +1 -1
  169. package/model-form/model-form.d.ts +1 -1
  170. package/model-router/cjs/index.js +4 -4
  171. package/model-router/cjs/index.js.map +1 -1
  172. package/model-router/index.js +4 -4
  173. package/model-router/index.js.map +1 -1
  174. package/model-router/model-router.d.ts +1 -1
  175. package/model-router/screens/add-screen.d.ts +2 -2
  176. package/model-router/screens/details-screen.d.ts +2 -2
  177. package/model-router/screens/list-screen.d.ts +2 -2
  178. package/model-router/screens/screens.types.d.ts +1 -1
  179. package/model-router/screens/update-screen.d.ts +2 -2
  180. package/notification-center/cjs/index.js +1 -1
  181. package/notification-center/cjs/index.js.map +1 -1
  182. package/notification-center/index.js +1 -1
  183. package/notification-center/index.js.map +1 -1
  184. package/notification-center/notification-center.context.d.ts +3 -3
  185. package/object-details/cjs/index.js +1 -1
  186. package/object-details/cjs/index.js.map +1 -1
  187. package/object-details/index.js +1 -1
  188. package/object-details/index.js.map +1 -1
  189. package/object-details/object-details.d.ts +1 -1
  190. package/package.json +1 -1
  191. package/placeholder/cjs/index.js +1 -1
  192. package/placeholder/cjs/index.js.map +1 -1
  193. package/placeholder/index.js +1 -1
  194. package/placeholder/index.js.map +1 -1
  195. package/query-container/cjs/index.js +1 -1
  196. package/query-container/cjs/index.js.map +1 -1
  197. package/query-container/index.js +1 -1
  198. package/query-container/index.js.map +1 -1
  199. package/search-input/cjs/index.js +1 -1
  200. package/search-input/cjs/index.js.map +1 -1
  201. package/search-input/index.js +1 -1
  202. package/search-input/index.js.map +1 -1
  203. package/search-input/search-input.d.ts +1 -1
  204. package/select/cjs/index.js +1 -1
  205. package/select/cjs/index.js.map +1 -1
  206. package/select/index.js +1 -1
  207. package/select/index.js.map +1 -1
  208. package/select/select.d.ts +2 -2
  209. package/sign-in/cjs/index.js +1 -1
  210. package/sign-in/cjs/index.js.map +1 -1
  211. package/sign-in/index.js +1 -1
  212. package/sign-in/index.js.map +1 -1
  213. package/skeleton-card/cjs/index.js +1 -1
  214. package/skeleton-card/cjs/index.js.map +1 -1
  215. package/skeleton-card/index.js +1 -1
  216. package/skeleton-card/index.js.map +1 -1
  217. package/skeleton-grid/cjs/index.js +1 -1
  218. package/skeleton-grid/cjs/index.js.map +1 -1
  219. package/skeleton-grid/index.js +1 -1
  220. package/skeleton-grid/index.js.map +1 -1
  221. package/tab-card/cjs/index.js +1 -1
  222. package/tab-card/cjs/index.js.map +1 -1
  223. package/tab-card/index.js +1 -1
  224. package/tab-card/index.js.map +1 -1
  225. package/tab-panel/cjs/index.js +1 -1
  226. package/tab-panel/cjs/index.js.map +1 -1
  227. package/tab-panel/index.js +1 -1
  228. package/tab-panel/index.js.map +1 -1
  229. package/tab-panel/tab-panel.d.ts +1 -1
  230. package/tab-provider/cjs/index.js +1 -1
  231. package/tab-provider/cjs/index.js.map +1 -1
  232. package/tab-provider/index.js +1 -1
  233. package/tab-provider/index.js.map +1 -1
  234. package/table-list/cjs/index.js +4 -4
  235. package/table-list/cjs/index.js.map +1 -1
  236. package/table-list/index.js +4 -4
  237. package/table-list/index.js.map +1 -1
  238. package/table-list/table-list.d.ts +1 -1
  239. package/text-field/cjs/index.js +1 -23
  240. package/text-field/cjs/index.js.map +1 -1
  241. package/text-field/index.js +1 -23
  242. package/text-field/index.js.map +1 -1
  243. package/text-field/text-field.d.ts +1 -1
  244. package/value-base/cjs/index.js +1 -1
  245. package/value-base/cjs/index.js.map +1 -1
  246. package/value-base/index.js +1 -1
  247. package/value-base/index.js.map +1 -1
  248. package/value-base/value-edit.d.ts +3 -3
  249. package/value-boolean/cjs/index.js +1 -1
  250. package/value-boolean/cjs/index.js.map +1 -1
  251. package/value-boolean/index.js +1 -1
  252. package/value-boolean/index.js.map +1 -1
  253. package/value-card/cjs/index.js +1 -1
  254. package/value-card/cjs/index.js.map +1 -1
  255. package/value-card/index.js +1 -1
  256. package/value-card/index.js.map +1 -1
  257. package/value-content/cjs/index.js +1 -1
  258. package/value-content/cjs/index.js.map +1 -1
  259. package/value-content/index.js +1 -1
  260. package/value-content/index.js.map +1 -1
  261. package/value-content/value-content.d.ts +2 -2
  262. package/value-datetime/cjs/index.js +1 -1
  263. package/value-datetime/cjs/index.js.map +1 -1
  264. package/value-datetime/index.js +1 -1
  265. package/value-datetime/index.js.map +1 -1
  266. package/value-datetime/value-datetime.d.ts +1 -1
  267. package/value-image/cjs/index.js +1 -1
  268. package/value-image/cjs/index.js.map +1 -1
  269. package/value-image/index.js +1 -1
  270. package/value-image/index.js.map +1 -1
  271. package/value-image/value-image.d.ts +1 -1
  272. package/value-item/cjs/index.js +1 -1
  273. package/value-item/cjs/index.js.map +1 -1
  274. package/value-item/index.js +1 -1
  275. package/value-item/index.js.map +1 -1
  276. package/value-item/value-item.d.ts +1 -1
  277. package/value-label/cjs/index.js +1 -1
  278. package/value-label/cjs/index.js.map +1 -1
  279. package/value-label/index.js +1 -1
  280. package/value-label/index.js.map +1 -1
  281. package/value-label/value-label.d.ts +1 -1
  282. package/value-rating/cjs/index.js +1 -1
  283. package/value-rating/cjs/index.js.map +1 -1
  284. package/value-rating/index.js +1 -1
  285. package/value-rating/index.js.map +1 -1
  286. package/value-rating/value-rating.d.ts +1 -1
  287. package/value-text/cjs/index.js +1 -1
  288. package/value-text/cjs/index.js.map +1 -1
  289. package/value-text/index.js +1 -1
  290. package/value-text/index.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/value-content/value-content.tsx"],"sourcesContent":["import { Box, SxProps, Theme, Tooltip, Typography, useTheme } from \"@mui/material\";\nimport React from \"react\";\n\nexport const getValueContentLabelId = (label: string): string =>\n `label-${label.replace(/ /g, \"-\")}`;\n\nexport interface ValueContentProps {\n /**\n * Name of the displayed value\n */\n label: string;\n\n /**\n * If true, the label will not be shown\n */\n hideLabel?: boolean;\n\n /**\n * If defined, a tooltip is going to be added arround the children;\n */\n tooltip?: string;\n\n /**\n * Timeout before the tooltip appears when the user hovers the value\n */\n tooltipEnterDelay?: number;\n\n /**\n * Component that's going to be renderd under the label\n */\n children: React.ReactElement<any, any>;\n\n /**\n * The value has to be displayed as compact or not.\n * False by default\n */\n dense?: boolean;\n\n /**\n * Custom styles for the root component\n */\n sx?: SxProps<Theme>;\n}\n\n/**\n * Displays a string value with a label\n */\nexport const ValueContent = ({\n label,\n hideLabel,\n tooltip,\n tooltipEnterDelay = 2000,\n children,\n dense,\n sx,\n}: ValueContentProps) => {\n const { typography } = useTheme();\n const id = getValueContentLabelId(label);\n\n return (\n <Box width={1} lineHeight={dense ? 0 : undefined} sx={sx}>\n {!hideLabel && (\n <Typography\n variant={dense ? \"caption\" : \"subtitle2\"}\n role=\"label\"\n id={id}\n lineHeight={dense ? typography.pxToRem(15) : undefined}\n >\n {label}\n </Typography>\n )}\n {tooltip ? (\n <Tooltip title={tooltip} placement=\"top\" enterDelay={tooltipEnterDelay}>\n {children}\n </Tooltip>\n ) : (\n children\n )}\n </Box>\n );\n};\n"],"names":["getValueContentLabelId","label","replace","hideLabel","tooltip","tooltipEnterDelay","children","dense","sx","typography","useTheme","id","React","Box","width","lineHeight","undefined","createElement","Typography","variant","role","pxToRem","Tooltip","title","placement","enterDelay"],"mappings":"qMAGa,MAAAA,EAA0BC,GACrC,SAASA,EAAMC,QAAQ,KAAM,4BA2CH,EAC1BD,QACAE,YACAC,UACAC,oBAAoB,IACpBC,WACAC,QACAC,SAEA,MAAMC,WAAEA,GAAeC,EAAAA,WACjBC,EAAKX,EAAuBC,GAElC,OACEW,wBAACC,EAAGA,IAAA,CAACC,MAAO,EAAGC,WAAYR,EAAQ,OAAIS,EAAWR,GAAIA,IAClDL,GACAS,UAAAK,cAACC,EAAUA,WACT,CAAAC,QAASZ,EAAQ,UAAY,YAC7Ba,KAAK,QACLT,GAAIA,EACJI,WAAYR,EAAQE,EAAWY,QAAQ,SAAML,GAE5Cf,GAGJG,EACCQ,EAAC,QAAAK,cAAAK,EAAOA,QAAC,CAAAC,MAAOnB,EAASoB,UAAU,MAAMC,WAAYpB,GAClDC,GAGH,EAGJ"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/value-content/value-content.tsx"],"sourcesContent":["import { SxProps, Theme, useTheme } from \"@mui/material/styles\";\nimport Box from \"@mui/material/Box\";\nimport Tooltip from \"@mui/material/Tooltip\";\nimport Typography from \"@mui/material/Typography\";\n\nexport const getValueContentLabelId = (label: string): string =>\n `label-${label.replace(/ /g, \"-\")}`;\n\nexport interface ValueContentProps {\n /**\n * Name of the displayed value\n */\n label: string;\n\n /**\n * If true, the label will not be shown\n */\n hideLabel?: boolean;\n\n /**\n * If defined, a tooltip is going to be added arround the children;\n */\n tooltip?: string;\n\n /**\n * Timeout before the tooltip appears when the user hovers the value\n */\n tooltipEnterDelay?: number;\n\n /**\n * Component that's going to be renderd under the label\n */\n children: React.ReactElement<any, any>;\n\n /**\n * The value has to be displayed as compact or not.\n * False by default\n */\n dense?: boolean;\n\n /**\n * Custom styles for the root component\n */\n sx?: SxProps<Theme>;\n}\n\n/**\n * Displays a string value with a label\n */\nexport const ValueContent = ({\n label,\n hideLabel,\n tooltip,\n tooltipEnterDelay = 2000,\n children,\n dense,\n sx,\n}: ValueContentProps) => {\n const { typography } = useTheme();\n const id = getValueContentLabelId(label);\n\n return (\n <Box width={1} lineHeight={dense ? 0 : undefined} sx={sx}>\n {!hideLabel && (\n <Typography\n variant={dense ? \"caption\" : \"subtitle2\"}\n role=\"label\"\n id={id}\n lineHeight={dense ? typography.pxToRem(15) : undefined}\n >\n {label}\n </Typography>\n )}\n {tooltip ? (\n <Tooltip title={tooltip} placement=\"top\" enterDelay={tooltipEnterDelay}>\n {children}\n </Tooltip>\n ) : (\n children\n )}\n </Box>\n );\n};\n"],"names":["getValueContentLabelId","label","replace","hideLabel","tooltip","tooltipEnterDelay","children","dense","sx","typography","useTheme","id","_jsxs","Box","width","lineHeight","undefined","_jsx","Typography","variant","role","pxToRem","jsx","Tooltip","title","placement","enterDelay"],"mappings":"kVAKa,MAAAA,EAA0BC,GACrC,SAASA,EAAMC,QAAQ,KAAM,4BA2CH,EAC1BD,QACAE,YACAC,UACAC,oBAAoB,IACpBC,WACAC,QACAC,SAEA,MAAMC,WAAEA,GAAeC,EAAAA,WACjBC,EAAKX,EAAuBC,GAElC,OACEW,OAACC,EAAAA,QAAG,CAACC,MAAO,EAAGC,WAAYR,EAAQ,OAAIS,EAAWR,GAAIA,EAAEF,SAAA,EACpDH,GACAc,EAAAA,IAACC,EAAU,SACTC,QAASZ,EAAQ,UAAY,YAC7Ba,KAAK,QACLT,GAAIA,EACJI,WAAYR,EAAQE,EAAWY,QAAQ,SAAML,EAE5CV,SAAAL,IAGJG,EACCa,EAAAK,IAACC,EAAO,QAAC,CAAAC,MAAOpB,EAASqB,UAAU,MAAMC,WAAYrB,WAClDC,IACO,IAKd"}
@@ -1,2 +1,2 @@
1
- import{useTheme as e,Box as t,Typography as l,Tooltip as i}from"@mui/material";import r from"react";const a=e=>`label-${e.replace(/ /g,"-")}`,o=({label:o,hideLabel:n,tooltip:p,tooltipEnterDelay:m=2e3,children:c,dense:d,sx:h})=>{const{typography:s}=e(),b=a(o);return r.createElement(t,{width:1,lineHeight:d?0:void 0,sx:h},!n&&r.createElement(l,{variant:d?"caption":"subtitle2",role:"label",id:b,lineHeight:d?s.pxToRem(15):void 0},o),p?r.createElement(i,{title:p,placement:"top",enterDelay:m},c):c)};export{o as ValueContent,a as getValueContentLabelId};
1
+ import{jsxs as e,jsx as t}from"react/jsx-runtime";import{useTheme as i}from"@mui/material/styles";import r from"@mui/material/Box";import l from"@mui/material/Tooltip";import o from"@mui/material/Typography";const a=e=>`label-${e.replace(/ /g,"-")}`,m=({label:m,hideLabel:p,tooltip:n,tooltipEnterDelay:c=2e3,children:d,dense:h,sx:s})=>{const{typography:u}=i(),y=a(m);return e(r,{width:1,lineHeight:h?0:void 0,sx:s,children:[!p&&t(o,{variant:h?"caption":"subtitle2",role:"label",id:y,lineHeight:h?u.pxToRem(15):void 0,children:m}),n?t(l,{title:n,placement:"top",enterDelay:c,children:d}):d]})};export{m as ValueContent,a as getValueContentLabelId};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/value-content/value-content.tsx"],"sourcesContent":["import { Box, SxProps, Theme, Tooltip, Typography, useTheme } from \"@mui/material\";\nimport React from \"react\";\n\nexport const getValueContentLabelId = (label: string): string =>\n `label-${label.replace(/ /g, \"-\")}`;\n\nexport interface ValueContentProps {\n /**\n * Name of the displayed value\n */\n label: string;\n\n /**\n * If true, the label will not be shown\n */\n hideLabel?: boolean;\n\n /**\n * If defined, a tooltip is going to be added arround the children;\n */\n tooltip?: string;\n\n /**\n * Timeout before the tooltip appears when the user hovers the value\n */\n tooltipEnterDelay?: number;\n\n /**\n * Component that's going to be renderd under the label\n */\n children: React.ReactElement<any, any>;\n\n /**\n * The value has to be displayed as compact or not.\n * False by default\n */\n dense?: boolean;\n\n /**\n * Custom styles for the root component\n */\n sx?: SxProps<Theme>;\n}\n\n/**\n * Displays a string value with a label\n */\nexport const ValueContent = ({\n label,\n hideLabel,\n tooltip,\n tooltipEnterDelay = 2000,\n children,\n dense,\n sx,\n}: ValueContentProps) => {\n const { typography } = useTheme();\n const id = getValueContentLabelId(label);\n\n return (\n <Box width={1} lineHeight={dense ? 0 : undefined} sx={sx}>\n {!hideLabel && (\n <Typography\n variant={dense ? \"caption\" : \"subtitle2\"}\n role=\"label\"\n id={id}\n lineHeight={dense ? typography.pxToRem(15) : undefined}\n >\n {label}\n </Typography>\n )}\n {tooltip ? (\n <Tooltip title={tooltip} placement=\"top\" enterDelay={tooltipEnterDelay}>\n {children}\n </Tooltip>\n ) : (\n children\n )}\n </Box>\n );\n};\n"],"names":["getValueContentLabelId","label","replace","ValueContent","hideLabel","tooltip","tooltipEnterDelay","children","dense","sx","typography","useTheme","id","React","Box","width","lineHeight","undefined","createElement","Typography","variant","role","pxToRem","Tooltip","title","placement","enterDelay"],"mappings":"oGAGa,MAAAA,EAA0BC,GACrC,SAASA,EAAMC,QAAQ,KAAM,OA2ClBC,EAAe,EAC1BF,QACAG,YACAC,UACAC,oBAAoB,IACpBC,WACAC,QACAC,SAEA,MAAMC,WAAEA,GAAeC,IACjBC,EAAKZ,EAAuBC,GAElC,OACEY,gBAACC,EAAG,CAACC,MAAO,EAAGC,WAAYR,EAAQ,OAAIS,EAAWR,GAAIA,IAClDL,GACAS,EAAAK,cAACC,EACC,CAAAC,QAASZ,EAAQ,UAAY,YAC7Ba,KAAK,QACLT,GAAIA,EACJI,WAAYR,EAAQE,EAAWY,QAAQ,SAAML,GAE5ChB,GAGJI,EACCQ,EAACK,cAAAK,EAAQ,CAAAC,MAAOnB,EAASoB,UAAU,MAAMC,WAAYpB,GAClDC,GAGH,EAGJ"}
1
+ {"version":3,"file":"index.js","sources":["../../src/value-content/value-content.tsx"],"sourcesContent":["import { SxProps, Theme, useTheme } from \"@mui/material/styles\";\nimport Box from \"@mui/material/Box\";\nimport Tooltip from \"@mui/material/Tooltip\";\nimport Typography from \"@mui/material/Typography\";\n\nexport const getValueContentLabelId = (label: string): string =>\n `label-${label.replace(/ /g, \"-\")}`;\n\nexport interface ValueContentProps {\n /**\n * Name of the displayed value\n */\n label: string;\n\n /**\n * If true, the label will not be shown\n */\n hideLabel?: boolean;\n\n /**\n * If defined, a tooltip is going to be added arround the children;\n */\n tooltip?: string;\n\n /**\n * Timeout before the tooltip appears when the user hovers the value\n */\n tooltipEnterDelay?: number;\n\n /**\n * Component that's going to be renderd under the label\n */\n children: React.ReactElement<any, any>;\n\n /**\n * The value has to be displayed as compact or not.\n * False by default\n */\n dense?: boolean;\n\n /**\n * Custom styles for the root component\n */\n sx?: SxProps<Theme>;\n}\n\n/**\n * Displays a string value with a label\n */\nexport const ValueContent = ({\n label,\n hideLabel,\n tooltip,\n tooltipEnterDelay = 2000,\n children,\n dense,\n sx,\n}: ValueContentProps) => {\n const { typography } = useTheme();\n const id = getValueContentLabelId(label);\n\n return (\n <Box width={1} lineHeight={dense ? 0 : undefined} sx={sx}>\n {!hideLabel && (\n <Typography\n variant={dense ? \"caption\" : \"subtitle2\"}\n role=\"label\"\n id={id}\n lineHeight={dense ? typography.pxToRem(15) : undefined}\n >\n {label}\n </Typography>\n )}\n {tooltip ? (\n <Tooltip title={tooltip} placement=\"top\" enterDelay={tooltipEnterDelay}>\n {children}\n </Tooltip>\n ) : (\n children\n )}\n </Box>\n );\n};\n"],"names":["getValueContentLabelId","label","replace","ValueContent","hideLabel","tooltip","tooltipEnterDelay","children","dense","sx","typography","useTheme","id","_jsxs","Box","width","lineHeight","undefined","_jsx","Typography","variant","role","pxToRem","Tooltip","title","placement","enterDelay"],"mappings":"gNAKa,MAAAA,EAA0BC,GACrC,SAASA,EAAMC,QAAQ,KAAM,OA2ClBC,EAAe,EAC1BF,QACAG,YACAC,UACAC,oBAAoB,IACpBC,WACAC,QACAC,SAEA,MAAMC,WAAEA,GAAeC,IACjBC,EAAKZ,EAAuBC,GAElC,OACEY,EAACC,EAAG,CAACC,MAAO,EAAGC,WAAYR,EAAQ,OAAIS,EAAWR,GAAIA,EAAEF,SAAA,EACpDH,GACAc,EAACC,GACCC,QAASZ,EAAQ,UAAY,YAC7Ba,KAAK,QACLT,GAAIA,EACJI,WAAYR,EAAQE,EAAWY,QAAQ,SAAML,EAE5CV,SAAAN,IAGJI,EACCa,EAACK,EAAQ,CAAAC,MAAOnB,EAASoB,UAAU,MAAMC,WAAYpB,WAClDC,IACO,IAKd"}
@@ -1,5 +1,5 @@
1
- import { SxProps, Theme } from "@mui/material";
2
- import React from "react";
1
+ /// <reference types="react" />
2
+ import { SxProps, Theme } from "@mui/material/styles";
3
3
  export declare const getValueContentLabelId: (label: string) => string;
4
4
  export interface ValueContentProps {
5
5
  /**
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@mui/material"),t=require("react"),a=require("date-fns"),l=require("@mui/icons-material/Check"),i=require("@mui/icons-material/Clear"),n=require("@mui/icons-material/Edit"),r=require("@mui/x-date-pickers");function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var d=o(t),u=o(l),c=o(i),s=o(n);const m=e=>`label-${e.replace(/ /g,"-")}`,p=({label:t,hideLabel:a,tooltip:l,tooltipEnterDelay:i=2e3,children:n,dense:r,sx:o})=>{const{typography:u}=e.useTheme(),c=m(t);return d.default.createElement(e.Box,{width:1,lineHeight:r?0:void 0,sx:o},!a&&d.default.createElement(e.Typography,{variant:r?"caption":"subtitle2",role:"label",id:c,lineHeight:r?u.pxToRem(15):void 0},t),l?d.default.createElement(e.Tooltip,{title:l,placement:"top",enterDelay:i},n):n)},f=({onClickCancel:t,onClickSubmit:a,sx:l})=>d.default.createElement(e.InputAdornment,{position:"end",sx:l},d.default.createElement(e.Button,{variant:"contained",size:"small",color:"error","aria-label":"cancel button",startIcon:d.default.createElement(c.default,{sx:{fontSize:12}}),onClick:t,sx:{paddingRight:0,minWidth:0,marginRight:1}}),d.default.createElement(e.Button,{variant:"contained",size:"small",color:"primary","aria-label":"submit button",startIcon:d.default.createElement(u.default,{sx:{fontSize:12}}),onClick:a,sx:{paddingRight:0,minWidth:0}})),E=({dense:t,onClick:a})=>{const{typography:l}=e.useTheme();return d.default.createElement(e.IconButton,{size:"small",onClick:a,sx:{ml:t?.5:1},"aria-label":"edit button"},d.default.createElement(s.default,{sx:{fontSize:l.pxToRem(t?18:24)}}))};exports.ValueDatetime=({label:l,value:i,format:n,placeholder:o="-",editable:u,editInputType:c="datetime",dense:s,onEdit:b=(()=>null)})=>{const{isEditing:x,editValue:h,startEdit:g,cancelEdit:y,setEditValue:k,submitEdit:C}=((e,a)=>{const[l,i]=t.useState(!1),[n,r]=t.useState(e),o=()=>{i(!1),r(e)};return{isEditing:l,cancelEdit:o,editValue:n,setEditValue:r,startEdit:()=>{i(!0)},submitEdit:()=>{a(n),o()}}})(i,b),v=m(l),T=i&&a.format(i,n)||o,I="datetime"===c?r.DateTimePicker:"time"===c?r.TimePicker:r.DatePicker;return d.default.createElement(p,{label:l,hideLabel:x,tooltip:T,dense:s,sx:{display:"flex",flexDirection:"column"}},x?d.default.createElement(I,{value:h,format:n,label:l,onChange:e=>k(e||void 0),slots:{textField:t=>d.default.createElement(e.TextField,{...t,size:"small",InputProps:{...t.InputProps,endAdornment:d.default.createElement(d.default.Fragment,null,t.InputProps?.endAdornment,d.default.createElement(f,{onClickCancel:y,onClickSubmit:C,sx:{ml:2}})),sx:{marginY:s?.2:1}}})}}):d.default.createElement(e.Box,{display:"flex",alignItems:"center"},d.default.createElement(e.Typography,{variant:s?"body1":"h5",noWrap:!0,"aria-labelledby":v},T),u&&d.default.createElement(E,{dense:s,onClick:g})))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),i=require("@mui/material/Box"),t=require("@mui/material/TextField"),a=require("@mui/material/Typography"),r=require("date-fns"),l=require("react"),n=require("@mui/icons-material/Check"),s=require("@mui/icons-material/Clear"),u=require("@mui/material/styles"),d=require("@mui/material/Button"),o=require("@mui/material/IconButton"),c=require("@mui/material/InputAdornment"),m=require("@mui/icons-material/Edit"),x=require("@mui/material/Tooltip"),p=require("@mui/x-date-pickers/DatePicker"),h=require("@mui/x-date-pickers/DateTimePicker"),f=require("@mui/x-date-pickers/TimePicker");function b(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var j=b(i),k=b(t),g=b(a),q=b(n),y=b(s),C=b(d),E=b(o),v=b(c),T=b(m),P=b(x);const I=({onClickCancel:i,onClickSubmit:t,sx:a})=>e.jsxs(v.default,{position:"end",sx:a,children:[e.jsx(C.default,{variant:"contained",size:"small",color:"error","aria-label":"cancel button",startIcon:e.jsx(y.default,{sx:{fontSize:12}}),onClick:i,sx:{paddingRight:0,minWidth:0,marginRight:1}}),e.jsx(C.default,{variant:"contained",size:"small",color:"primary","aria-label":"submit button",startIcon:e.jsx(q.default,{sx:{fontSize:12}}),onClick:t,sx:{paddingRight:0,minWidth:0}})]}),D=({dense:i,onClick:t})=>{const{typography:a}=u.useTheme();return e.jsx(E.default,{size:"small",onClick:t,sx:{ml:i?.5:1},"aria-label":"edit button",children:e.jsx(T.default,{sx:{fontSize:a.pxToRem(i?18:24)}})})},z=e=>`label-${e.replace(/ /g,"-")}`,S=({label:i,hideLabel:t,tooltip:a,tooltipEnterDelay:r=2e3,children:l,dense:n,sx:s})=>{const{typography:d}=u.useTheme(),o=z(i);return e.jsxs(j.default,{width:1,lineHeight:n?0:void 0,sx:s,children:[!t&&e.jsx(g.default,{variant:n?"caption":"subtitle2",role:"label",id:o,lineHeight:n?d.pxToRem(15):void 0,children:i}),a?e.jsx(P.default,{title:a,placement:"top",enterDelay:r,children:l}):l]})};exports.ValueDatetime=({label:i,value:t,format:a,placeholder:n="-",editable:s,editInputType:u="datetime",dense:d,onEdit:o=(()=>null)})=>{const{isEditing:c,editValue:m,startEdit:x,cancelEdit:b,setEditValue:q,submitEdit:y}=((e,i)=>{const[t,a]=l.useState(!1),[r,n]=l.useState(e),s=()=>{a(!1),n(e)};return{isEditing:t,cancelEdit:s,editValue:r,setEditValue:n,startEdit:()=>{a(!0)},submitEdit:()=>{i(r),s()}}})(t,o),C=z(i),E=t&&r.format(t,a)||n,v="datetime"===u?h.DateTimePicker:"time"===u?f.TimePicker:p.DatePicker;return e.jsx(S,{label:i,hideLabel:c,tooltip:E,dense:d,sx:{display:"flex",flexDirection:"column"},children:c?e.jsx(v,{value:m,format:a,label:i,onChange:e=>q(e||void 0),slots:{textField:i=>e.jsx(k.default,{...i,size:"small",InputProps:{...i.InputProps,endAdornment:e.jsxs(e.Fragment,{children:[i.InputProps?.endAdornment,e.jsx(I,{onClickCancel:b,onClickSubmit:y,sx:{ml:2}})]}),sx:{marginY:d?.2:1}}})}}):e.jsxs(j.default,{display:"flex",alignItems:"center",children:[e.jsx(g.default,{variant:d?"body1":"h5",noWrap:!0,"aria-labelledby":C,children:E}),s&&e.jsx(D,{dense:d,onClick:x})]})})};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/value-base/value-displays.types.ts","../../../src/value-content/value-content.tsx","../../../src/value-base/value-edit.tsx","../../../src/value-datetime/value-datetime.tsx"],"sourcesContent":["export interface BaseValueProps<T> {\n /**\n * Name of the displayed value\n */\n label: string;\n\n /**\n * Value displayed\n */\n value?: T;\n\n /**\n * String rendered if value is undefined\n */\n placeholder?: string;\n\n /**\n * The value has to be displayed as compact or not.\n * False by default\n */\n dense?: boolean;\n}\n\nexport interface EditableValueProps<T> {\n /**\n * This field can be edited or not\n */\n editable?: boolean;\n\n /**\n * Callback executed when the value is edited\n */\n onEdit?: (value?: T) => void;\n}\n\nexport const DefaultPlaceholder = \"-\";\n","import { Box, SxProps, Theme, Tooltip, Typography, useTheme } from \"@mui/material\";\nimport React from \"react\";\n\nexport const getValueContentLabelId = (label: string): string =>\n `label-${label.replace(/ /g, \"-\")}`;\n\nexport interface ValueContentProps {\n /**\n * Name of the displayed value\n */\n label: string;\n\n /**\n * If true, the label will not be shown\n */\n hideLabel?: boolean;\n\n /**\n * If defined, a tooltip is going to be added arround the children;\n */\n tooltip?: string;\n\n /**\n * Timeout before the tooltip appears when the user hovers the value\n */\n tooltipEnterDelay?: number;\n\n /**\n * Component that's going to be renderd under the label\n */\n children: React.ReactElement<any, any>;\n\n /**\n * The value has to be displayed as compact or not.\n * False by default\n */\n dense?: boolean;\n\n /**\n * Custom styles for the root component\n */\n sx?: SxProps<Theme>;\n}\n\n/**\n * Displays a string value with a label\n */\nexport const ValueContent = ({\n label,\n hideLabel,\n tooltip,\n tooltipEnterDelay = 2000,\n children,\n dense,\n sx,\n}: ValueContentProps) => {\n const { typography } = useTheme();\n const id = getValueContentLabelId(label);\n\n return (\n <Box width={1} lineHeight={dense ? 0 : undefined} sx={sx}>\n {!hideLabel && (\n <Typography\n variant={dense ? \"caption\" : \"subtitle2\"}\n role=\"label\"\n id={id}\n lineHeight={dense ? typography.pxToRem(15) : undefined}\n >\n {label}\n </Typography>\n )}\n {tooltip ? (\n <Tooltip title={tooltip} placement=\"top\" enterDelay={tooltipEnterDelay}>\n {children}\n </Tooltip>\n ) : (\n children\n )}\n </Box>\n );\n};\n","import React, { useState } from \"react\";\nimport CheckIcon from \"@mui/icons-material/Check\";\nimport ClearIcon from \"@mui/icons-material/Clear\";\nimport { Button, IconButton, InputAdornment, SxProps, Theme, useTheme } from \"@mui/material\";\nimport EditIcon from \"@mui/icons-material/Edit\";\n\nexport interface ValueEditButtonsProps {\n onClickCancel: () => void;\n onClickSubmit: () => void;\n sx?: SxProps<Theme>;\n}\n\nexport const ValueEditButtons = ({ onClickCancel, onClickSubmit, sx }: ValueEditButtonsProps) => {\n return (\n <InputAdornment position=\"end\" sx={sx}>\n <Button\n variant=\"contained\"\n size=\"small\"\n color=\"error\"\n aria-label=\"cancel button\"\n startIcon={<ClearIcon sx={{ fontSize: 12 }} />}\n onClick={onClickCancel}\n sx={{ paddingRight: 0, minWidth: 0, marginRight: 1 }}\n />\n <Button\n variant=\"contained\"\n size=\"small\"\n color=\"primary\"\n aria-label=\"submit button\"\n startIcon={<CheckIcon sx={{ fontSize: 12 }} />}\n onClick={onClickSubmit}\n sx={{ paddingRight: 0, minWidth: 0 }}\n />\n </InputAdornment>\n );\n};\n\n/**\n * Hook to manage the editing behaviour\n */\nexport const useEditableValueDisplay = <T,>(\n initialValue: T | undefined,\n onEdit: (value?: T) => void,\n) => {\n const [isEditing, setIsEditing] = useState(false);\n const [editValue, setEditValue] = useState<T | undefined>(initialValue);\n\n const cancelEdit = () => {\n setIsEditing(false);\n setEditValue(initialValue);\n };\n const startEdit = () => {\n setIsEditing(true);\n };\n\n const submitEdit = () => {\n onEdit(editValue);\n cancelEdit();\n };\n\n return { isEditing, cancelEdit, editValue, setEditValue, startEdit, submitEdit };\n};\n\nexport interface ValueEditButtonProps {\n dense?: boolean;\n onClick: () => void;\n}\n\nexport const ValueEditButton = ({ dense, onClick }: ValueEditButtonProps) => {\n const { typography } = useTheme();\n return (\n <IconButton\n size=\"small\"\n onClick={onClick}\n sx={{ ml: dense ? 0.5 : 1 }}\n aria-label=\"edit button\"\n >\n <EditIcon sx={{ fontSize: typography.pxToRem(dense ? 18 : 24) }} />\n </IconButton>\n );\n};\n","import { Box, TextField, Typography } from \"@mui/material\";\nimport React from \"react\";\nimport { format } from \"date-fns\";\nimport {\n BaseValueProps,\n DefaultPlaceholder,\n EditableValueProps,\n} from \"../value-base/value-displays.types\";\nimport { getValueContentLabelId, ValueContent } from \"../value-content\";\nimport { useEditableValueDisplay, ValueEditButton, ValueEditButtons } from \"../value-base\";\nimport { DatePicker, DateTimePicker, TimePicker } from \"@mui/x-date-pickers\";\n\nexport type EditInputType = \"datetime\" | \"date\" | \"time\";\n\nexport interface ValueDatetimeProps extends BaseValueProps<Date>, EditableValueProps<Date> {\n /**\n * Datetime format\n */\n format: string;\n\n /**\n * Edit input type\n */\n editInputType?: EditInputType;\n}\n\n/**\n * Displays a formated datetime with a label\n */\nexport const ValueDatetime = ({\n label,\n value: valueProp,\n format: fmt,\n placeholder = DefaultPlaceholder,\n editable,\n editInputType = \"datetime\",\n dense,\n onEdit = () => null,\n}: ValueDatetimeProps) => {\n const { isEditing, editValue, startEdit, cancelEdit, setEditValue, submitEdit } =\n useEditableValueDisplay(valueProp, onEdit);\n const id = getValueContentLabelId(label);\n const value = (valueProp && format(valueProp, fmt)) || placeholder;\n\n const EditPickerComponent =\n editInputType === \"datetime\"\n ? DateTimePicker\n : editInputType === \"time\"\n ? TimePicker\n : DatePicker;\n\n return (\n <ValueContent\n label={label}\n hideLabel={isEditing}\n tooltip={value}\n dense={dense}\n sx={{ display: \"flex\", flexDirection: \"column\" }}\n >\n {isEditing ? (\n <EditPickerComponent\n value={editValue}\n format={fmt}\n label={label}\n onChange={(newValue) => setEditValue(newValue ? newValue : undefined)}\n slots={{\n textField: (params) => (\n <TextField\n {...params}\n size=\"small\"\n InputProps={{\n ...params.InputProps,\n endAdornment: (\n <>\n {params.InputProps?.endAdornment}\n <ValueEditButtons\n onClickCancel={cancelEdit}\n onClickSubmit={submitEdit}\n sx={{ ml: 2 }}\n />\n </>\n ),\n sx: { marginY: !dense ? 1 : 0.2 },\n }}\n />\n ),\n }}\n />\n ) : (\n <Box display=\"flex\" alignItems=\"center\">\n <Typography variant={dense ? \"body1\" : \"h5\"} noWrap aria-labelledby={id}>\n {value}\n </Typography>\n {editable && <ValueEditButton dense={dense} onClick={startEdit} />}\n </Box>\n )}\n </ValueContent>\n );\n};\n"],"names":["getValueContentLabelId","label","replace","ValueContent","hideLabel","tooltip","tooltipEnterDelay","children","dense","sx","typography","useTheme","id","React","Box","width","lineHeight","undefined","createElement","Typography","variant","role","pxToRem","Tooltip","title","placement","enterDelay","ValueEditButtons","onClickCancel","onClickSubmit","InputAdornment","position","Button","size","color","startIcon","ClearIcon","fontSize","onClick","paddingRight","minWidth","marginRight","CheckIcon","ValueEditButton","IconButton","ml","EditIcon","value","valueProp","format","fmt","placeholder","editable","editInputType","onEdit","isEditing","editValue","startEdit","cancelEdit","setEditValue","submitEdit","initialValue","setIsEditing","useState","useEditableValueDisplay","EditPickerComponent","DateTimePicker","TimePicker","DatePicker","display","flexDirection","onChange","newValue","slots","textField","params","TextField","InputProps","endAdornment","Fragment","marginY","alignItems","noWrap"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/value-base/value-edit.tsx","../../../src/value-content/value-content.tsx","../../../src/value-datetime/value-datetime.tsx","../../../src/value-base/value-displays.types.ts"],"sourcesContent":["import { useState } from \"react\";\nimport CheckIcon from \"@mui/icons-material/Check\";\nimport ClearIcon from \"@mui/icons-material/Clear\";\nimport { SxProps, Theme, useTheme } from \"@mui/material/styles\";\nimport Button from \"@mui/material/Button\";\nimport IconButton from \"@mui/material/IconButton\";\nimport InputAdornment from \"@mui/material/InputAdornment\";\nimport EditIcon from \"@mui/icons-material/Edit\";\n\nexport interface ValueEditButtonsProps {\n onClickCancel: () => void;\n onClickSubmit: () => void;\n sx?: SxProps<Theme>;\n}\n\nexport const ValueEditButtons = ({ onClickCancel, onClickSubmit, sx }: ValueEditButtonsProps) => {\n return (\n <InputAdornment position=\"end\" sx={sx}>\n <Button\n variant=\"contained\"\n size=\"small\"\n color=\"error\"\n aria-label=\"cancel button\"\n startIcon={<ClearIcon sx={{ fontSize: 12 }} />}\n onClick={onClickCancel}\n sx={{ paddingRight: 0, minWidth: 0, marginRight: 1 }}\n />\n <Button\n variant=\"contained\"\n size=\"small\"\n color=\"primary\"\n aria-label=\"submit button\"\n startIcon={<CheckIcon sx={{ fontSize: 12 }} />}\n onClick={onClickSubmit}\n sx={{ paddingRight: 0, minWidth: 0 }}\n />\n </InputAdornment>\n );\n};\n\n/**\n * Hook to manage the editing behaviour\n */\nexport const useEditableValueDisplay = <T,>(\n initialValue: T | undefined,\n onEdit: (value?: T) => void,\n) => {\n const [isEditing, setIsEditing] = useState(false);\n const [editValue, setEditValue] = useState<T | undefined>(initialValue);\n\n const cancelEdit = () => {\n setIsEditing(false);\n setEditValue(initialValue);\n };\n const startEdit = () => {\n setIsEditing(true);\n };\n\n const submitEdit = () => {\n onEdit(editValue);\n cancelEdit();\n };\n\n return { isEditing, cancelEdit, editValue, setEditValue, startEdit, submitEdit };\n};\n\nexport interface ValueEditButtonProps {\n dense?: boolean;\n onClick: () => void;\n}\n\nexport const ValueEditButton = ({ dense, onClick }: ValueEditButtonProps) => {\n const { typography } = useTheme();\n return (\n <IconButton\n size=\"small\"\n onClick={onClick}\n sx={{ ml: dense ? 0.5 : 1 }}\n aria-label=\"edit button\"\n >\n <EditIcon sx={{ fontSize: typography.pxToRem(dense ? 18 : 24) }} />\n </IconButton>\n );\n};\n","import { SxProps, Theme, useTheme } from \"@mui/material/styles\";\nimport Box from \"@mui/material/Box\";\nimport Tooltip from \"@mui/material/Tooltip\";\nimport Typography from \"@mui/material/Typography\";\n\nexport const getValueContentLabelId = (label: string): string =>\n `label-${label.replace(/ /g, \"-\")}`;\n\nexport interface ValueContentProps {\n /**\n * Name of the displayed value\n */\n label: string;\n\n /**\n * If true, the label will not be shown\n */\n hideLabel?: boolean;\n\n /**\n * If defined, a tooltip is going to be added arround the children;\n */\n tooltip?: string;\n\n /**\n * Timeout before the tooltip appears when the user hovers the value\n */\n tooltipEnterDelay?: number;\n\n /**\n * Component that's going to be renderd under the label\n */\n children: React.ReactElement<any, any>;\n\n /**\n * The value has to be displayed as compact or not.\n * False by default\n */\n dense?: boolean;\n\n /**\n * Custom styles for the root component\n */\n sx?: SxProps<Theme>;\n}\n\n/**\n * Displays a string value with a label\n */\nexport const ValueContent = ({\n label,\n hideLabel,\n tooltip,\n tooltipEnterDelay = 2000,\n children,\n dense,\n sx,\n}: ValueContentProps) => {\n const { typography } = useTheme();\n const id = getValueContentLabelId(label);\n\n return (\n <Box width={1} lineHeight={dense ? 0 : undefined} sx={sx}>\n {!hideLabel && (\n <Typography\n variant={dense ? \"caption\" : \"subtitle2\"}\n role=\"label\"\n id={id}\n lineHeight={dense ? typography.pxToRem(15) : undefined}\n >\n {label}\n </Typography>\n )}\n {tooltip ? (\n <Tooltip title={tooltip} placement=\"top\" enterDelay={tooltipEnterDelay}>\n {children}\n </Tooltip>\n ) : (\n children\n )}\n </Box>\n );\n};\n","import Box from \"@mui/material/Box\";\nimport TextField from \"@mui/material/TextField\";\nimport Typography from \"@mui/material/Typography\";\nimport { format } from \"date-fns\";\nimport { BaseValueProps, DefaultPlaceholder, EditableValueProps } from \"../value-base\";\nimport { getValueContentLabelId, ValueContent } from \"../value-content\";\nimport { useEditableValueDisplay, ValueEditButton, ValueEditButtons } from \"../value-base\";\nimport { DatePicker } from \"@mui/x-date-pickers/DatePicker\";\nimport { DateTimePicker } from \"@mui/x-date-pickers/DateTimePicker\";\nimport { TimePicker } from \"@mui/x-date-pickers/TimePicker\";\n\nexport type EditInputType = \"datetime\" | \"date\" | \"time\";\n\nexport interface ValueDatetimeProps extends BaseValueProps<Date>, EditableValueProps<Date> {\n /**\n * Datetime format\n */\n format: string;\n\n /**\n * Edit input type\n */\n editInputType?: EditInputType;\n}\n\n/**\n * Displays a formated datetime with a label\n */\nexport const ValueDatetime = ({\n label,\n value: valueProp,\n format: fmt,\n placeholder = DefaultPlaceholder,\n editable,\n editInputType = \"datetime\",\n dense,\n onEdit = () => null,\n}: ValueDatetimeProps) => {\n const { isEditing, editValue, startEdit, cancelEdit, setEditValue, submitEdit } =\n useEditableValueDisplay(valueProp, onEdit);\n const id = getValueContentLabelId(label);\n const value = (valueProp && format(valueProp, fmt)) || placeholder;\n\n const EditPickerComponent =\n editInputType === \"datetime\"\n ? DateTimePicker\n : editInputType === \"time\"\n ? TimePicker\n : DatePicker;\n\n return (\n <ValueContent\n label={label}\n hideLabel={isEditing}\n tooltip={value}\n dense={dense}\n sx={{ display: \"flex\", flexDirection: \"column\" }}\n >\n {isEditing ? (\n <EditPickerComponent\n value={editValue}\n format={fmt}\n label={label}\n onChange={(newValue) => setEditValue(newValue ? newValue : undefined)}\n slots={{\n textField: (params) => (\n <TextField\n {...params}\n size=\"small\"\n InputProps={{\n ...params.InputProps,\n endAdornment: (\n <>\n {params.InputProps?.endAdornment}\n <ValueEditButtons\n onClickCancel={cancelEdit}\n onClickSubmit={submitEdit}\n sx={{ ml: 2 }}\n />\n </>\n ),\n sx: { marginY: !dense ? 1 : 0.2 },\n }}\n />\n ),\n }}\n />\n ) : (\n <Box display=\"flex\" alignItems=\"center\">\n <Typography variant={dense ? \"body1\" : \"h5\"} noWrap aria-labelledby={id}>\n {value}\n </Typography>\n {editable && <ValueEditButton dense={dense} onClick={startEdit} />}\n </Box>\n )}\n </ValueContent>\n );\n};\n","export interface BaseValueProps<T> {\n /**\n * Name of the displayed value\n */\n label: string;\n\n /**\n * Value displayed\n */\n value?: T;\n\n /**\n * String rendered if value is undefined\n */\n placeholder?: string;\n\n /**\n * The value has to be displayed as compact or not.\n * False by default\n */\n dense?: boolean;\n}\n\nexport interface EditableValueProps<T> {\n /**\n * This field can be edited or not\n */\n editable?: boolean;\n\n /**\n * Callback executed when the value is edited\n */\n onEdit?: (value?: T) => void;\n}\n\nexport const DefaultPlaceholder = \"-\";\n"],"names":["ValueEditButtons","onClickCancel","onClickSubmit","sx","_jsxs","InputAdornment","position","children","_jsx","Button","variant","size","color","startIcon","jsx","ClearIcon","fontSize","onClick","paddingRight","minWidth","marginRight","CheckIcon","ValueEditButton","dense","typography","useTheme","IconButton","ml","EditIcon","pxToRem","getValueContentLabelId","label","replace","ValueContent","hideLabel","tooltip","tooltipEnterDelay","id","Box","width","lineHeight","undefined","Typography","role","Tooltip","title","placement","enterDelay","value","valueProp","format","fmt","placeholder","editable","editInputType","onEdit","isEditing","editValue","startEdit","cancelEdit","setEditValue","submitEdit","initialValue","setIsEditing","useState","useEditableValueDisplay","EditPickerComponent","DateTimePicker","TimePicker","DatePicker","display","flexDirection","onChange","newValue","slots","textField","params","TextField","InputProps","endAdornment","_Fragment","Fragment","marginY","alignItems","noWrap"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{useTheme as e,Box as t,Typography as i,Tooltip as l,InputAdornment as n,Button as a,IconButton as r,TextField as o}from"@mui/material";import m,{useState as c}from"react";import{format as s}from"date-fns";import d from"@mui/icons-material/Check";import p from"@mui/icons-material/Clear";import u from"@mui/icons-material/Edit";import{DateTimePicker as E,TimePicker as b,DatePicker as x}from"@mui/x-date-pickers";const g=e=>`label-${e.replace(/ /g,"-")}`,h=({label:n,hideLabel:a,tooltip:r,tooltipEnterDelay:o=2e3,children:c,dense:s,sx:d})=>{const{typography:p}=e(),u=g(n);return m.createElement(t,{width:1,lineHeight:s?0:void 0,sx:d},!a&&m.createElement(i,{variant:s?"caption":"subtitle2",role:"label",id:u,lineHeight:s?p.pxToRem(15):void 0},n),r?m.createElement(l,{title:r,placement:"top",enterDelay:o},c):c)},f=({onClickCancel:e,onClickSubmit:t,sx:i})=>m.createElement(n,{position:"end",sx:i},m.createElement(a,{variant:"contained",size:"small",color:"error","aria-label":"cancel button",startIcon:m.createElement(p,{sx:{fontSize:12}}),onClick:e,sx:{paddingRight:0,minWidth:0,marginRight:1}}),m.createElement(a,{variant:"contained",size:"small",color:"primary","aria-label":"submit button",startIcon:m.createElement(d,{sx:{fontSize:12}}),onClick:t,sx:{paddingRight:0,minWidth:0}})),C=({dense:t,onClick:i})=>{const{typography:l}=e();return m.createElement(r,{size:"small",onClick:i,sx:{ml:t?.5:1},"aria-label":"edit button"},m.createElement(u,{sx:{fontSize:l.pxToRem(t?18:24)}}))},y=({label:e,value:l,format:n,placeholder:a="-",editable:r,editInputType:d="datetime",dense:p,onEdit:u=(()=>null)})=>{const{isEditing:y,editValue:k,startEdit:v,cancelEdit:z,setEditValue:I,submitEdit:R}=((e,t)=>{const[i,l]=c(!1),[n,a]=c(e),r=()=>{l(!1),a(e)};return{isEditing:i,cancelEdit:r,editValue:n,setEditValue:a,startEdit:()=>{l(!0)},submitEdit:()=>{t(n),r()}}})(l,u),S=g(e),V=l&&s(l,n)||a,D="datetime"===d?E:"time"===d?b:x;return m.createElement(h,{label:e,hideLabel:y,tooltip:V,dense:p,sx:{display:"flex",flexDirection:"column"}},y?m.createElement(D,{value:k,format:n,label:e,onChange:e=>I(e||void 0),slots:{textField:e=>m.createElement(o,{...e,size:"small",InputProps:{...e.InputProps,endAdornment:m.createElement(m.Fragment,null,e.InputProps?.endAdornment,m.createElement(f,{onClickCancel:z,onClickSubmit:R,sx:{ml:2}})),sx:{marginY:p?.2:1}}})}}):m.createElement(t,{display:"flex",alignItems:"center"},m.createElement(i,{variant:p?"body1":"h5",noWrap:!0,"aria-labelledby":S},V),r&&m.createElement(C,{dense:p,onClick:v})))};export{y as ValueDatetime};
1
+ import{jsxs as i,jsx as t,Fragment as e}from"react/jsx-runtime";import r from"@mui/material/Box";import o from"@mui/material/TextField";import l from"@mui/material/Typography";import{format as a}from"date-fns";import{useState as n}from"react";import m from"@mui/icons-material/Check";import d from"@mui/icons-material/Clear";import{useTheme as s}from"@mui/material/styles";import c from"@mui/material/Button";import p from"@mui/material/IconButton";import u from"@mui/material/InputAdornment";import h from"@mui/icons-material/Edit";import f from"@mui/material/Tooltip";import{DatePicker as x}from"@mui/x-date-pickers/DatePicker";import{DateTimePicker as b}from"@mui/x-date-pickers/DateTimePicker";import{TimePicker as g}from"@mui/x-date-pickers/TimePicker";const k=({onClickCancel:e,onClickSubmit:r,sx:o})=>i(u,{position:"end",sx:o,children:[t(c,{variant:"contained",size:"small",color:"error","aria-label":"cancel button",startIcon:t(d,{sx:{fontSize:12}}),onClick:e,sx:{paddingRight:0,minWidth:0,marginRight:1}}),t(c,{variant:"contained",size:"small",color:"primary","aria-label":"submit button",startIcon:t(m,{sx:{fontSize:12}}),onClick:r,sx:{paddingRight:0,minWidth:0}})]}),y=({dense:i,onClick:e})=>{const{typography:r}=s();return t(p,{size:"small",onClick:e,sx:{ml:i?.5:1},"aria-label":"edit button",children:t(h,{sx:{fontSize:r.pxToRem(i?18:24)}})})},C=i=>`label-${i.replace(/ /g,"-")}`,E=({label:e,hideLabel:o,tooltip:a,tooltipEnterDelay:n=2e3,children:m,dense:d,sx:c})=>{const{typography:p}=s(),u=C(e);return i(r,{width:1,lineHeight:d?0:void 0,sx:c,children:[!o&&t(l,{variant:d?"caption":"subtitle2",role:"label",id:u,lineHeight:d?p.pxToRem(15):void 0,children:e}),a?t(f,{title:a,placement:"top",enterDelay:n,children:m}):m]})},v=({label:m,value:d,format:s,placeholder:c="-",editable:p,editInputType:u="datetime",dense:h,onEdit:f=(()=>null)})=>{const{isEditing:v,editValue:I,startEdit:T,cancelEdit:z,setEditValue:P,submitEdit:D}=((i,t)=>{const[e,r]=n(!1),[o,l]=n(i),a=()=>{r(!1),l(i)};return{isEditing:e,cancelEdit:a,editValue:o,setEditValue:l,startEdit:()=>{r(!0)},submitEdit:()=>{t(o),a()}}})(d,f),R=C(m),S=d&&a(d,s)||c;return t(E,{label:m,hideLabel:v,tooltip:S,dense:h,sx:{display:"flex",flexDirection:"column"},children:v?t("datetime"===u?b:"time"===u?g:x,{value:I,format:s,label:m,onChange:i=>P(i||void 0),slots:{textField:r=>t(o,{...r,size:"small",InputProps:{...r.InputProps,endAdornment:i(e,{children:[r.InputProps?.endAdornment,t(k,{onClickCancel:z,onClickSubmit:D,sx:{ml:2}})]}),sx:{marginY:h?.2:1}}})}}):i(r,{display:"flex",alignItems:"center",children:[t(l,{variant:h?"body1":"h5",noWrap:!0,"aria-labelledby":R,children:S}),p&&t(y,{dense:h,onClick:T})]})})};export{v as ValueDatetime};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/value-base/value-displays.types.ts","../../src/value-content/value-content.tsx","../../src/value-base/value-edit.tsx","../../src/value-datetime/value-datetime.tsx"],"sourcesContent":["export interface BaseValueProps<T> {\n /**\n * Name of the displayed value\n */\n label: string;\n\n /**\n * Value displayed\n */\n value?: T;\n\n /**\n * String rendered if value is undefined\n */\n placeholder?: string;\n\n /**\n * The value has to be displayed as compact or not.\n * False by default\n */\n dense?: boolean;\n}\n\nexport interface EditableValueProps<T> {\n /**\n * This field can be edited or not\n */\n editable?: boolean;\n\n /**\n * Callback executed when the value is edited\n */\n onEdit?: (value?: T) => void;\n}\n\nexport const DefaultPlaceholder = \"-\";\n","import { Box, SxProps, Theme, Tooltip, Typography, useTheme } from \"@mui/material\";\nimport React from \"react\";\n\nexport const getValueContentLabelId = (label: string): string =>\n `label-${label.replace(/ /g, \"-\")}`;\n\nexport interface ValueContentProps {\n /**\n * Name of the displayed value\n */\n label: string;\n\n /**\n * If true, the label will not be shown\n */\n hideLabel?: boolean;\n\n /**\n * If defined, a tooltip is going to be added arround the children;\n */\n tooltip?: string;\n\n /**\n * Timeout before the tooltip appears when the user hovers the value\n */\n tooltipEnterDelay?: number;\n\n /**\n * Component that's going to be renderd under the label\n */\n children: React.ReactElement<any, any>;\n\n /**\n * The value has to be displayed as compact or not.\n * False by default\n */\n dense?: boolean;\n\n /**\n * Custom styles for the root component\n */\n sx?: SxProps<Theme>;\n}\n\n/**\n * Displays a string value with a label\n */\nexport const ValueContent = ({\n label,\n hideLabel,\n tooltip,\n tooltipEnterDelay = 2000,\n children,\n dense,\n sx,\n}: ValueContentProps) => {\n const { typography } = useTheme();\n const id = getValueContentLabelId(label);\n\n return (\n <Box width={1} lineHeight={dense ? 0 : undefined} sx={sx}>\n {!hideLabel && (\n <Typography\n variant={dense ? \"caption\" : \"subtitle2\"}\n role=\"label\"\n id={id}\n lineHeight={dense ? typography.pxToRem(15) : undefined}\n >\n {label}\n </Typography>\n )}\n {tooltip ? (\n <Tooltip title={tooltip} placement=\"top\" enterDelay={tooltipEnterDelay}>\n {children}\n </Tooltip>\n ) : (\n children\n )}\n </Box>\n );\n};\n","import React, { useState } from \"react\";\nimport CheckIcon from \"@mui/icons-material/Check\";\nimport ClearIcon from \"@mui/icons-material/Clear\";\nimport { Button, IconButton, InputAdornment, SxProps, Theme, useTheme } from \"@mui/material\";\nimport EditIcon from \"@mui/icons-material/Edit\";\n\nexport interface ValueEditButtonsProps {\n onClickCancel: () => void;\n onClickSubmit: () => void;\n sx?: SxProps<Theme>;\n}\n\nexport const ValueEditButtons = ({ onClickCancel, onClickSubmit, sx }: ValueEditButtonsProps) => {\n return (\n <InputAdornment position=\"end\" sx={sx}>\n <Button\n variant=\"contained\"\n size=\"small\"\n color=\"error\"\n aria-label=\"cancel button\"\n startIcon={<ClearIcon sx={{ fontSize: 12 }} />}\n onClick={onClickCancel}\n sx={{ paddingRight: 0, minWidth: 0, marginRight: 1 }}\n />\n <Button\n variant=\"contained\"\n size=\"small\"\n color=\"primary\"\n aria-label=\"submit button\"\n startIcon={<CheckIcon sx={{ fontSize: 12 }} />}\n onClick={onClickSubmit}\n sx={{ paddingRight: 0, minWidth: 0 }}\n />\n </InputAdornment>\n );\n};\n\n/**\n * Hook to manage the editing behaviour\n */\nexport const useEditableValueDisplay = <T,>(\n initialValue: T | undefined,\n onEdit: (value?: T) => void,\n) => {\n const [isEditing, setIsEditing] = useState(false);\n const [editValue, setEditValue] = useState<T | undefined>(initialValue);\n\n const cancelEdit = () => {\n setIsEditing(false);\n setEditValue(initialValue);\n };\n const startEdit = () => {\n setIsEditing(true);\n };\n\n const submitEdit = () => {\n onEdit(editValue);\n cancelEdit();\n };\n\n return { isEditing, cancelEdit, editValue, setEditValue, startEdit, submitEdit };\n};\n\nexport interface ValueEditButtonProps {\n dense?: boolean;\n onClick: () => void;\n}\n\nexport const ValueEditButton = ({ dense, onClick }: ValueEditButtonProps) => {\n const { typography } = useTheme();\n return (\n <IconButton\n size=\"small\"\n onClick={onClick}\n sx={{ ml: dense ? 0.5 : 1 }}\n aria-label=\"edit button\"\n >\n <EditIcon sx={{ fontSize: typography.pxToRem(dense ? 18 : 24) }} />\n </IconButton>\n );\n};\n","import { Box, TextField, Typography } from \"@mui/material\";\nimport React from \"react\";\nimport { format } from \"date-fns\";\nimport {\n BaseValueProps,\n DefaultPlaceholder,\n EditableValueProps,\n} from \"../value-base/value-displays.types\";\nimport { getValueContentLabelId, ValueContent } from \"../value-content\";\nimport { useEditableValueDisplay, ValueEditButton, ValueEditButtons } from \"../value-base\";\nimport { DatePicker, DateTimePicker, TimePicker } from \"@mui/x-date-pickers\";\n\nexport type EditInputType = \"datetime\" | \"date\" | \"time\";\n\nexport interface ValueDatetimeProps extends BaseValueProps<Date>, EditableValueProps<Date> {\n /**\n * Datetime format\n */\n format: string;\n\n /**\n * Edit input type\n */\n editInputType?: EditInputType;\n}\n\n/**\n * Displays a formated datetime with a label\n */\nexport const ValueDatetime = ({\n label,\n value: valueProp,\n format: fmt,\n placeholder = DefaultPlaceholder,\n editable,\n editInputType = \"datetime\",\n dense,\n onEdit = () => null,\n}: ValueDatetimeProps) => {\n const { isEditing, editValue, startEdit, cancelEdit, setEditValue, submitEdit } =\n useEditableValueDisplay(valueProp, onEdit);\n const id = getValueContentLabelId(label);\n const value = (valueProp && format(valueProp, fmt)) || placeholder;\n\n const EditPickerComponent =\n editInputType === \"datetime\"\n ? DateTimePicker\n : editInputType === \"time\"\n ? TimePicker\n : DatePicker;\n\n return (\n <ValueContent\n label={label}\n hideLabel={isEditing}\n tooltip={value}\n dense={dense}\n sx={{ display: \"flex\", flexDirection: \"column\" }}\n >\n {isEditing ? (\n <EditPickerComponent\n value={editValue}\n format={fmt}\n label={label}\n onChange={(newValue) => setEditValue(newValue ? newValue : undefined)}\n slots={{\n textField: (params) => (\n <TextField\n {...params}\n size=\"small\"\n InputProps={{\n ...params.InputProps,\n endAdornment: (\n <>\n {params.InputProps?.endAdornment}\n <ValueEditButtons\n onClickCancel={cancelEdit}\n onClickSubmit={submitEdit}\n sx={{ ml: 2 }}\n />\n </>\n ),\n sx: { marginY: !dense ? 1 : 0.2 },\n }}\n />\n ),\n }}\n />\n ) : (\n <Box display=\"flex\" alignItems=\"center\">\n <Typography variant={dense ? \"body1\" : \"h5\"} noWrap aria-labelledby={id}>\n {value}\n </Typography>\n {editable && <ValueEditButton dense={dense} onClick={startEdit} />}\n </Box>\n )}\n </ValueContent>\n );\n};\n"],"names":["getValueContentLabelId","label","replace","ValueContent","hideLabel","tooltip","tooltipEnterDelay","children","dense","sx","typography","useTheme","id","React","Box","width","lineHeight","undefined","createElement","Typography","variant","role","pxToRem","Tooltip","title","placement","enterDelay","ValueEditButtons","onClickCancel","onClickSubmit","InputAdornment","position","Button","size","color","startIcon","ClearIcon","fontSize","onClick","paddingRight","minWidth","marginRight","CheckIcon","ValueEditButton","IconButton","ml","EditIcon","ValueDatetime","value","valueProp","format","fmt","placeholder","editable","editInputType","onEdit","isEditing","editValue","startEdit","cancelEdit","setEditValue","submitEdit","initialValue","setIsEditing","useState","useEditableValueDisplay","EditPickerComponent","DateTimePicker","TimePicker","DatePicker","display","flexDirection","onChange","newValue","slots","textField","params","TextField","InputProps","endAdornment","Fragment","marginY","alignItems","noWrap"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../src/value-base/value-edit.tsx","../../src/value-content/value-content.tsx","../../src/value-datetime/value-datetime.tsx","../../src/value-base/value-displays.types.ts"],"sourcesContent":["import { useState } from \"react\";\nimport CheckIcon from \"@mui/icons-material/Check\";\nimport ClearIcon from \"@mui/icons-material/Clear\";\nimport { SxProps, Theme, useTheme } from \"@mui/material/styles\";\nimport Button from \"@mui/material/Button\";\nimport IconButton from \"@mui/material/IconButton\";\nimport InputAdornment from \"@mui/material/InputAdornment\";\nimport EditIcon from \"@mui/icons-material/Edit\";\n\nexport interface ValueEditButtonsProps {\n onClickCancel: () => void;\n onClickSubmit: () => void;\n sx?: SxProps<Theme>;\n}\n\nexport const ValueEditButtons = ({ onClickCancel, onClickSubmit, sx }: ValueEditButtonsProps) => {\n return (\n <InputAdornment position=\"end\" sx={sx}>\n <Button\n variant=\"contained\"\n size=\"small\"\n color=\"error\"\n aria-label=\"cancel button\"\n startIcon={<ClearIcon sx={{ fontSize: 12 }} />}\n onClick={onClickCancel}\n sx={{ paddingRight: 0, minWidth: 0, marginRight: 1 }}\n />\n <Button\n variant=\"contained\"\n size=\"small\"\n color=\"primary\"\n aria-label=\"submit button\"\n startIcon={<CheckIcon sx={{ fontSize: 12 }} />}\n onClick={onClickSubmit}\n sx={{ paddingRight: 0, minWidth: 0 }}\n />\n </InputAdornment>\n );\n};\n\n/**\n * Hook to manage the editing behaviour\n */\nexport const useEditableValueDisplay = <T,>(\n initialValue: T | undefined,\n onEdit: (value?: T) => void,\n) => {\n const [isEditing, setIsEditing] = useState(false);\n const [editValue, setEditValue] = useState<T | undefined>(initialValue);\n\n const cancelEdit = () => {\n setIsEditing(false);\n setEditValue(initialValue);\n };\n const startEdit = () => {\n setIsEditing(true);\n };\n\n const submitEdit = () => {\n onEdit(editValue);\n cancelEdit();\n };\n\n return { isEditing, cancelEdit, editValue, setEditValue, startEdit, submitEdit };\n};\n\nexport interface ValueEditButtonProps {\n dense?: boolean;\n onClick: () => void;\n}\n\nexport const ValueEditButton = ({ dense, onClick }: ValueEditButtonProps) => {\n const { typography } = useTheme();\n return (\n <IconButton\n size=\"small\"\n onClick={onClick}\n sx={{ ml: dense ? 0.5 : 1 }}\n aria-label=\"edit button\"\n >\n <EditIcon sx={{ fontSize: typography.pxToRem(dense ? 18 : 24) }} />\n </IconButton>\n );\n};\n","import { SxProps, Theme, useTheme } from \"@mui/material/styles\";\nimport Box from \"@mui/material/Box\";\nimport Tooltip from \"@mui/material/Tooltip\";\nimport Typography from \"@mui/material/Typography\";\n\nexport const getValueContentLabelId = (label: string): string =>\n `label-${label.replace(/ /g, \"-\")}`;\n\nexport interface ValueContentProps {\n /**\n * Name of the displayed value\n */\n label: string;\n\n /**\n * If true, the label will not be shown\n */\n hideLabel?: boolean;\n\n /**\n * If defined, a tooltip is going to be added arround the children;\n */\n tooltip?: string;\n\n /**\n * Timeout before the tooltip appears when the user hovers the value\n */\n tooltipEnterDelay?: number;\n\n /**\n * Component that's going to be renderd under the label\n */\n children: React.ReactElement<any, any>;\n\n /**\n * The value has to be displayed as compact or not.\n * False by default\n */\n dense?: boolean;\n\n /**\n * Custom styles for the root component\n */\n sx?: SxProps<Theme>;\n}\n\n/**\n * Displays a string value with a label\n */\nexport const ValueContent = ({\n label,\n hideLabel,\n tooltip,\n tooltipEnterDelay = 2000,\n children,\n dense,\n sx,\n}: ValueContentProps) => {\n const { typography } = useTheme();\n const id = getValueContentLabelId(label);\n\n return (\n <Box width={1} lineHeight={dense ? 0 : undefined} sx={sx}>\n {!hideLabel && (\n <Typography\n variant={dense ? \"caption\" : \"subtitle2\"}\n role=\"label\"\n id={id}\n lineHeight={dense ? typography.pxToRem(15) : undefined}\n >\n {label}\n </Typography>\n )}\n {tooltip ? (\n <Tooltip title={tooltip} placement=\"top\" enterDelay={tooltipEnterDelay}>\n {children}\n </Tooltip>\n ) : (\n children\n )}\n </Box>\n );\n};\n","import Box from \"@mui/material/Box\";\nimport TextField from \"@mui/material/TextField\";\nimport Typography from \"@mui/material/Typography\";\nimport { format } from \"date-fns\";\nimport { BaseValueProps, DefaultPlaceholder, EditableValueProps } from \"../value-base\";\nimport { getValueContentLabelId, ValueContent } from \"../value-content\";\nimport { useEditableValueDisplay, ValueEditButton, ValueEditButtons } from \"../value-base\";\nimport { DatePicker } from \"@mui/x-date-pickers/DatePicker\";\nimport { DateTimePicker } from \"@mui/x-date-pickers/DateTimePicker\";\nimport { TimePicker } from \"@mui/x-date-pickers/TimePicker\";\n\nexport type EditInputType = \"datetime\" | \"date\" | \"time\";\n\nexport interface ValueDatetimeProps extends BaseValueProps<Date>, EditableValueProps<Date> {\n /**\n * Datetime format\n */\n format: string;\n\n /**\n * Edit input type\n */\n editInputType?: EditInputType;\n}\n\n/**\n * Displays a formated datetime with a label\n */\nexport const ValueDatetime = ({\n label,\n value: valueProp,\n format: fmt,\n placeholder = DefaultPlaceholder,\n editable,\n editInputType = \"datetime\",\n dense,\n onEdit = () => null,\n}: ValueDatetimeProps) => {\n const { isEditing, editValue, startEdit, cancelEdit, setEditValue, submitEdit } =\n useEditableValueDisplay(valueProp, onEdit);\n const id = getValueContentLabelId(label);\n const value = (valueProp && format(valueProp, fmt)) || placeholder;\n\n const EditPickerComponent =\n editInputType === \"datetime\"\n ? DateTimePicker\n : editInputType === \"time\"\n ? TimePicker\n : DatePicker;\n\n return (\n <ValueContent\n label={label}\n hideLabel={isEditing}\n tooltip={value}\n dense={dense}\n sx={{ display: \"flex\", flexDirection: \"column\" }}\n >\n {isEditing ? (\n <EditPickerComponent\n value={editValue}\n format={fmt}\n label={label}\n onChange={(newValue) => setEditValue(newValue ? newValue : undefined)}\n slots={{\n textField: (params) => (\n <TextField\n {...params}\n size=\"small\"\n InputProps={{\n ...params.InputProps,\n endAdornment: (\n <>\n {params.InputProps?.endAdornment}\n <ValueEditButtons\n onClickCancel={cancelEdit}\n onClickSubmit={submitEdit}\n sx={{ ml: 2 }}\n />\n </>\n ),\n sx: { marginY: !dense ? 1 : 0.2 },\n }}\n />\n ),\n }}\n />\n ) : (\n <Box display=\"flex\" alignItems=\"center\">\n <Typography variant={dense ? \"body1\" : \"h5\"} noWrap aria-labelledby={id}>\n {value}\n </Typography>\n {editable && <ValueEditButton dense={dense} onClick={startEdit} />}\n </Box>\n )}\n </ValueContent>\n );\n};\n","export interface BaseValueProps<T> {\n /**\n * Name of the displayed value\n */\n label: string;\n\n /**\n * Value displayed\n */\n value?: T;\n\n /**\n * String rendered if value is undefined\n */\n placeholder?: string;\n\n /**\n * The value has to be displayed as compact or not.\n * False by default\n */\n dense?: boolean;\n}\n\nexport interface EditableValueProps<T> {\n /**\n * This field can be edited or not\n */\n editable?: boolean;\n\n /**\n * Callback executed when the value is edited\n */\n onEdit?: (value?: T) => void;\n}\n\nexport const DefaultPlaceholder = \"-\";\n"],"names":["ValueEditButtons","onClickCancel","onClickSubmit","sx","_jsxs","InputAdornment","position","children","_jsx","Button","variant","size","color","startIcon","ClearIcon","fontSize","onClick","paddingRight","minWidth","marginRight","CheckIcon","ValueEditButton","dense","typography","useTheme","IconButton","ml","EditIcon","pxToRem","getValueContentLabelId","label","replace","ValueContent","hideLabel","tooltip","tooltipEnterDelay","id","Box","width","lineHeight","undefined","Typography","role","Tooltip","title","placement","enterDelay","ValueDatetime","value","valueProp","format","fmt","placeholder","editable","editInputType","onEdit","isEditing","editValue","startEdit","cancelEdit","setEditValue","submitEdit","initialValue","setIsEditing","useState","useEditableValueDisplay","display","flexDirection","DateTimePicker","TimePicker","DatePicker","onChange","newValue","slots","textField","params","TextField","InputProps","endAdornment","_Fragment","marginY","alignItems","noWrap"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { BaseValueProps, EditableValueProps } from "../value-base/value-displays.types";
1
+ import { BaseValueProps, EditableValueProps } from "../value-base";
2
2
  export type EditInputType = "datetime" | "date" | "time";
3
3
  export interface ValueDatetimeProps extends BaseValueProps<Date>, EditableValueProps<Date> {
4
4
  /**
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@mui/material");function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var l=t(require("react"));const a=({label:t,hideLabel:a,tooltip:r,tooltipEnterDelay:i=2e3,children:n,dense:o,sx:u})=>{const{typography:c}=e.useTheme(),d=(e=>`label-${e.replace(/ /g,"-")}`)(t);return l.default.createElement(e.Box,{width:1,lineHeight:o?0:void 0,sx:u},!a&&l.default.createElement(e.Typography,{variant:o?"caption":"subtitle2",role:"label",id:d,lineHeight:o?c.pxToRem(15):void 0},t),r?l.default.createElement(e.Tooltip,{title:r,placement:"top",enterDelay:i},n):n)};exports.ValueImage=({label:t,value:r,size:i,dense:n})=>{const o=i||(n?50:100);return l.default.createElement(a,{label:t,dense:n},l.default.createElement(e.Box,{component:"img",src:r,alt:t,sx:{width:o,height:o}}))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("@mui/material/Box"),l=require("@mui/material/styles"),i=require("@mui/material/Tooltip"),r=require("@mui/material/Typography");function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var n=a(t),o=a(i),s=a(r);const u=({label:t,hideLabel:i,tooltip:r,tooltipEnterDelay:a=2e3,children:u,dense:d,sx:c})=>{const{typography:p}=l.useTheme(),h=(e=>`label-${e.replace(/ /g,"-")}`)(t);return e.jsxs(n.default,{width:1,lineHeight:d?0:void 0,sx:c,children:[!i&&e.jsx(s.default,{variant:d?"caption":"subtitle2",role:"label",id:h,lineHeight:d?p.pxToRem(15):void 0,children:t}),r?e.jsx(o.default,{title:r,placement:"top",enterDelay:a,children:u}):u]})};exports.ValueImage=({label:t,value:l,size:i,dense:r})=>{const a=i||(r?50:100);return e.jsx(u,{label:t,dense:r,children:e.jsx(n.default,{component:"img",src:l,alt:t,sx:{width:a,height:a}})})};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/value-content/value-content.tsx","../../../src/value-image/value-image.tsx"],"sourcesContent":["import { Box, SxProps, Theme, Tooltip, Typography, useTheme } from \"@mui/material\";\nimport React from \"react\";\n\nexport const getValueContentLabelId = (label: string): string =>\n `label-${label.replace(/ /g, \"-\")}`;\n\nexport interface ValueContentProps {\n /**\n * Name of the displayed value\n */\n label: string;\n\n /**\n * If true, the label will not be shown\n */\n hideLabel?: boolean;\n\n /**\n * If defined, a tooltip is going to be added arround the children;\n */\n tooltip?: string;\n\n /**\n * Timeout before the tooltip appears when the user hovers the value\n */\n tooltipEnterDelay?: number;\n\n /**\n * Component that's going to be renderd under the label\n */\n children: React.ReactElement<any, any>;\n\n /**\n * The value has to be displayed as compact or not.\n * False by default\n */\n dense?: boolean;\n\n /**\n * Custom styles for the root component\n */\n sx?: SxProps<Theme>;\n}\n\n/**\n * Displays a string value with a label\n */\nexport const ValueContent = ({\n label,\n hideLabel,\n tooltip,\n tooltipEnterDelay = 2000,\n children,\n dense,\n sx,\n}: ValueContentProps) => {\n const { typography } = useTheme();\n const id = getValueContentLabelId(label);\n\n return (\n <Box width={1} lineHeight={dense ? 0 : undefined} sx={sx}>\n {!hideLabel && (\n <Typography\n variant={dense ? \"caption\" : \"subtitle2\"}\n role=\"label\"\n id={id}\n lineHeight={dense ? typography.pxToRem(15) : undefined}\n >\n {label}\n </Typography>\n )}\n {tooltip ? (\n <Tooltip title={tooltip} placement=\"top\" enterDelay={tooltipEnterDelay}>\n {children}\n </Tooltip>\n ) : (\n children\n )}\n </Box>\n );\n};\n","import { Box } from \"@mui/material\";\nimport React from \"react\";\nimport { ValueContent } from \"../value-content\";\nimport { BaseValueProps } from \"../value-base/value-displays.types\";\n\nexport interface ValueImageProps extends BaseValueProps<string> {\n /**\n * Image size\n */\n size?: number;\n}\n\nconst DefaultSize = 100;\nconst DefaultDenseSize = 50;\n\n/**\n * Displays a image value with a label\n */\nexport const ValueImage = ({ label, value, size: sizeArg, dense }: ValueImageProps) => {\n const size = sizeArg || (dense ? DefaultDenseSize : DefaultSize);\n return (\n <ValueContent label={label} dense={dense}>\n <Box component=\"img\" src={value} alt={label} sx={{ width: size, height: size }} />\n </ValueContent>\n );\n};\n"],"names":["ValueContent","label","hideLabel","tooltip","tooltipEnterDelay","children","dense","sx","typography","useTheme","id","replace","getValueContentLabelId","React","Box","width","lineHeight","undefined","createElement","Typography","variant","role","pxToRem","Tooltip","title","placement","enterDelay","value","size","sizeArg","component","src","alt","height"],"mappings":"qMAGO,MA4CMA,EAAe,EAC1BC,QACAC,YACAC,UACAC,oBAAoB,IACpBC,WACAC,QACAC,SAEA,MAAMC,WAAEA,GAAeC,EAAAA,WACjBC,EAtD8B,CAACT,GACrC,SAASA,EAAMU,QAAQ,KAAM,OAqDlBC,CAAuBX,GAElC,OACEY,wBAACC,EAAGA,IAAA,CAACC,MAAO,EAAGC,WAAYV,EAAQ,OAAIW,EAAWV,GAAIA,IAClDL,GACAW,UAAAK,cAACC,EAAUA,WACT,CAAAC,QAASd,EAAQ,UAAY,YAC7Be,KAAK,QACLX,GAAIA,EACJM,WAAYV,EAAQE,EAAWc,QAAQ,SAAML,GAE5ChB,GAGJE,EACCU,EAAC,QAAAK,cAAAK,EAAOA,QAAC,CAAAC,MAAOrB,EAASsB,UAAU,MAAMC,WAAYtB,GAClDC,GAGH,EAGJ,qBC7DsB,EAAGJ,QAAO0B,QAAOC,KAAMC,EAASvB,YACxD,MAAMsB,EAAOC,IAAYvB,EANF,GADL,KAQlB,OACEO,EAAAA,QAACK,cAAAlB,EAAa,CAAAC,MAAOA,EAAOK,MAAOA,GACjCO,EAAA,QAAAK,cAACJ,MAAG,CAACgB,UAAU,MAAMC,IAAKJ,EAAOK,IAAK/B,EAAOM,GAAI,CAAEQ,MAAOa,EAAMK,OAAQL,KAE1E"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/value-content/value-content.tsx","../../../src/value-image/value-image.tsx"],"sourcesContent":["import { SxProps, Theme, useTheme } from \"@mui/material/styles\";\nimport Box from \"@mui/material/Box\";\nimport Tooltip from \"@mui/material/Tooltip\";\nimport Typography from \"@mui/material/Typography\";\n\nexport const getValueContentLabelId = (label: string): string =>\n `label-${label.replace(/ /g, \"-\")}`;\n\nexport interface ValueContentProps {\n /**\n * Name of the displayed value\n */\n label: string;\n\n /**\n * If true, the label will not be shown\n */\n hideLabel?: boolean;\n\n /**\n * If defined, a tooltip is going to be added arround the children;\n */\n tooltip?: string;\n\n /**\n * Timeout before the tooltip appears when the user hovers the value\n */\n tooltipEnterDelay?: number;\n\n /**\n * Component that's going to be renderd under the label\n */\n children: React.ReactElement<any, any>;\n\n /**\n * The value has to be displayed as compact or not.\n * False by default\n */\n dense?: boolean;\n\n /**\n * Custom styles for the root component\n */\n sx?: SxProps<Theme>;\n}\n\n/**\n * Displays a string value with a label\n */\nexport const ValueContent = ({\n label,\n hideLabel,\n tooltip,\n tooltipEnterDelay = 2000,\n children,\n dense,\n sx,\n}: ValueContentProps) => {\n const { typography } = useTheme();\n const id = getValueContentLabelId(label);\n\n return (\n <Box width={1} lineHeight={dense ? 0 : undefined} sx={sx}>\n {!hideLabel && (\n <Typography\n variant={dense ? \"caption\" : \"subtitle2\"}\n role=\"label\"\n id={id}\n lineHeight={dense ? typography.pxToRem(15) : undefined}\n >\n {label}\n </Typography>\n )}\n {tooltip ? (\n <Tooltip title={tooltip} placement=\"top\" enterDelay={tooltipEnterDelay}>\n {children}\n </Tooltip>\n ) : (\n children\n )}\n </Box>\n );\n};\n","import Box from \"@mui/material/Box\";\nimport { ValueContent } from \"../value-content\";\nimport { BaseValueProps } from \"../value-base\";\n\nexport interface ValueImageProps extends BaseValueProps<string> {\n /**\n * Image size\n */\n size?: number;\n}\n\nconst DefaultSize = 100;\nconst DefaultDenseSize = 50;\n\n/**\n * Displays a image value with a label\n */\nexport const ValueImage = ({ label, value, size: sizeArg, dense }: ValueImageProps) => {\n const size = sizeArg || (dense ? DefaultDenseSize : DefaultSize);\n return (\n <ValueContent label={label} dense={dense}>\n <Box component=\"img\" src={value} alt={label} sx={{ width: size, height: size }} />\n </ValueContent>\n );\n};\n"],"names":["ValueContent","label","hideLabel","tooltip","tooltipEnterDelay","children","dense","sx","typography","useTheme","id","replace","getValueContentLabelId","_jsxs","Box","width","lineHeight","undefined","_jsx","Typography","variant","role","pxToRem","jsx","Tooltip","title","placement","enterDelay","value","size","sizeArg","component","src","alt","height"],"mappings":"kVAKO,MA4CMA,EAAe,EAC1BC,QACAC,YACAC,UACAC,oBAAoB,IACpBC,WACAC,QACAC,SAEA,MAAMC,WAAEA,GAAeC,EAAAA,WACjBC,EAtD8B,CAACT,GACrC,SAASA,EAAMU,QAAQ,KAAM,OAqDlBC,CAAuBX,GAElC,OACEY,OAACC,EAAAA,QAAG,CAACC,MAAO,EAAGC,WAAYV,EAAQ,OAAIW,EAAWV,GAAIA,EAAEF,SAAA,EACpDH,GACAgB,EAAAA,IAACC,EAAU,SACTC,QAASd,EAAQ,UAAY,YAC7Be,KAAK,QACLX,GAAIA,EACJM,WAAYV,EAAQE,EAAWc,QAAQ,SAAML,EAE5CZ,SAAAJ,IAGJE,EACCe,EAAAK,IAACC,EAAO,QAAC,CAAAC,MAAOtB,EAASuB,UAAU,MAAMC,WAAYvB,WAClDC,IACO,IAKd,qBChEsB,EAAGJ,QAAO2B,QAAOC,KAAMC,EAASxB,YACxD,MAAMuB,EAAOC,IAAYxB,EANF,GADL,KAQlB,OACEY,MAAClB,GAAaC,MAAOA,EAAOK,MAAOA,WACjCY,EAAAA,IAACJ,EAAG,SAACiB,UAAU,MAAMC,IAAKJ,EAAOK,IAAKhC,EAAOM,GAAI,CAAEQ,MAAOc,EAAMK,OAAQL,MAE1E"}
@@ -1,2 +1,2 @@
1
- import{useTheme as e,Box as t,Typography as l,Tooltip as a}from"@mui/material";import i from"react";const r=({label:r,hideLabel:n,tooltip:o,tooltipEnterDelay:c=2e3,children:m,dense:p,sx:s})=>{const{typography:d}=e(),h=(e=>`label-${e.replace(/ /g,"-")}`)(r);return i.createElement(t,{width:1,lineHeight:p?0:void 0,sx:s},!n&&i.createElement(l,{variant:p?"caption":"subtitle2",role:"label",id:h,lineHeight:p?d.pxToRem(15):void 0},r),o?i.createElement(a,{title:o,placement:"top",enterDelay:c},m):m)},n=({label:e,value:l,size:a,dense:n})=>{const o=a||(n?50:100);return i.createElement(r,{label:e,dense:n},i.createElement(t,{component:"img",src:l,alt:e,sx:{width:o,height:o}}))};export{n as ValueImage};
1
+ import{jsxs as e,jsx as t}from"react/jsx-runtime";import i from"@mui/material/Box";import{useTheme as l}from"@mui/material/styles";import r from"@mui/material/Tooltip";import o from"@mui/material/Typography";const a=({label:a,hideLabel:m,tooltip:n,tooltipEnterDelay:p=2e3,children:s,dense:c,sx:d})=>{const{typography:h}=l(),u=(e=>`label-${e.replace(/ /g,"-")}`)(a);return e(i,{width:1,lineHeight:c?0:void 0,sx:d,children:[!m&&t(o,{variant:c?"caption":"subtitle2",role:"label",id:u,lineHeight:c?h.pxToRem(15):void 0,children:a}),n?t(r,{title:n,placement:"top",enterDelay:p,children:s}):s]})},m=({label:e,value:l,size:r,dense:o})=>{const m=r||(o?50:100);return t(a,{label:e,dense:o,children:t(i,{component:"img",src:l,alt:e,sx:{width:m,height:m}})})};export{m as ValueImage};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/value-content/value-content.tsx","../../src/value-image/value-image.tsx"],"sourcesContent":["import { Box, SxProps, Theme, Tooltip, Typography, useTheme } from \"@mui/material\";\nimport React from \"react\";\n\nexport const getValueContentLabelId = (label: string): string =>\n `label-${label.replace(/ /g, \"-\")}`;\n\nexport interface ValueContentProps {\n /**\n * Name of the displayed value\n */\n label: string;\n\n /**\n * If true, the label will not be shown\n */\n hideLabel?: boolean;\n\n /**\n * If defined, a tooltip is going to be added arround the children;\n */\n tooltip?: string;\n\n /**\n * Timeout before the tooltip appears when the user hovers the value\n */\n tooltipEnterDelay?: number;\n\n /**\n * Component that's going to be renderd under the label\n */\n children: React.ReactElement<any, any>;\n\n /**\n * The value has to be displayed as compact or not.\n * False by default\n */\n dense?: boolean;\n\n /**\n * Custom styles for the root component\n */\n sx?: SxProps<Theme>;\n}\n\n/**\n * Displays a string value with a label\n */\nexport const ValueContent = ({\n label,\n hideLabel,\n tooltip,\n tooltipEnterDelay = 2000,\n children,\n dense,\n sx,\n}: ValueContentProps) => {\n const { typography } = useTheme();\n const id = getValueContentLabelId(label);\n\n return (\n <Box width={1} lineHeight={dense ? 0 : undefined} sx={sx}>\n {!hideLabel && (\n <Typography\n variant={dense ? \"caption\" : \"subtitle2\"}\n role=\"label\"\n id={id}\n lineHeight={dense ? typography.pxToRem(15) : undefined}\n >\n {label}\n </Typography>\n )}\n {tooltip ? (\n <Tooltip title={tooltip} placement=\"top\" enterDelay={tooltipEnterDelay}>\n {children}\n </Tooltip>\n ) : (\n children\n )}\n </Box>\n );\n};\n","import { Box } from \"@mui/material\";\nimport React from \"react\";\nimport { ValueContent } from \"../value-content\";\nimport { BaseValueProps } from \"../value-base/value-displays.types\";\n\nexport interface ValueImageProps extends BaseValueProps<string> {\n /**\n * Image size\n */\n size?: number;\n}\n\nconst DefaultSize = 100;\nconst DefaultDenseSize = 50;\n\n/**\n * Displays a image value with a label\n */\nexport const ValueImage = ({ label, value, size: sizeArg, dense }: ValueImageProps) => {\n const size = sizeArg || (dense ? DefaultDenseSize : DefaultSize);\n return (\n <ValueContent label={label} dense={dense}>\n <Box component=\"img\" src={value} alt={label} sx={{ width: size, height: size }} />\n </ValueContent>\n );\n};\n"],"names":["ValueContent","label","hideLabel","tooltip","tooltipEnterDelay","children","dense","sx","typography","useTheme","id","replace","getValueContentLabelId","React","Box","width","lineHeight","undefined","createElement","Typography","variant","role","pxToRem","Tooltip","title","placement","enterDelay","ValueImage","value","size","sizeArg","component","src","alt","height"],"mappings":"oGAGO,MA4CMA,EAAe,EAC1BC,QACAC,YACAC,UACAC,oBAAoB,IACpBC,WACAC,QACAC,SAEA,MAAMC,WAAEA,GAAeC,IACjBC,EAtD8B,CAACT,GACrC,SAASA,EAAMU,QAAQ,KAAM,OAqDlBC,CAAuBX,GAElC,OACEY,gBAACC,EAAG,CAACC,MAAO,EAAGC,WAAYV,EAAQ,OAAIW,EAAWV,GAAIA,IAClDL,GACAW,EAAAK,cAACC,EACC,CAAAC,QAASd,EAAQ,UAAY,YAC7Be,KAAK,QACLX,GAAIA,EACJM,WAAYV,EAAQE,EAAWc,QAAQ,SAAML,GAE5ChB,GAGJE,EACCU,EAACK,cAAAK,EAAQ,CAAAC,MAAOrB,EAASsB,UAAU,MAAMC,WAAYtB,GAClDC,GAGH,EAGJ,EC7DSsB,EAAa,EAAG1B,QAAO2B,QAAOC,KAAMC,EAASxB,YACxD,MAAMuB,EAAOC,IAAYxB,EANF,GADL,KAQlB,OACEO,EAACK,cAAAlB,EAAa,CAAAC,MAAOA,EAAOK,MAAOA,GACjCO,EAAAK,cAACJ,EAAG,CAACiB,UAAU,MAAMC,IAAKJ,EAAOK,IAAKhC,EAAOM,GAAI,CAAEQ,MAAOc,EAAMK,OAAQL,KAE1E"}
1
+ {"version":3,"file":"index.js","sources":["../../src/value-content/value-content.tsx","../../src/value-image/value-image.tsx"],"sourcesContent":["import { SxProps, Theme, useTheme } from \"@mui/material/styles\";\nimport Box from \"@mui/material/Box\";\nimport Tooltip from \"@mui/material/Tooltip\";\nimport Typography from \"@mui/material/Typography\";\n\nexport const getValueContentLabelId = (label: string): string =>\n `label-${label.replace(/ /g, \"-\")}`;\n\nexport interface ValueContentProps {\n /**\n * Name of the displayed value\n */\n label: string;\n\n /**\n * If true, the label will not be shown\n */\n hideLabel?: boolean;\n\n /**\n * If defined, a tooltip is going to be added arround the children;\n */\n tooltip?: string;\n\n /**\n * Timeout before the tooltip appears when the user hovers the value\n */\n tooltipEnterDelay?: number;\n\n /**\n * Component that's going to be renderd under the label\n */\n children: React.ReactElement<any, any>;\n\n /**\n * The value has to be displayed as compact or not.\n * False by default\n */\n dense?: boolean;\n\n /**\n * Custom styles for the root component\n */\n sx?: SxProps<Theme>;\n}\n\n/**\n * Displays a string value with a label\n */\nexport const ValueContent = ({\n label,\n hideLabel,\n tooltip,\n tooltipEnterDelay = 2000,\n children,\n dense,\n sx,\n}: ValueContentProps) => {\n const { typography } = useTheme();\n const id = getValueContentLabelId(label);\n\n return (\n <Box width={1} lineHeight={dense ? 0 : undefined} sx={sx}>\n {!hideLabel && (\n <Typography\n variant={dense ? \"caption\" : \"subtitle2\"}\n role=\"label\"\n id={id}\n lineHeight={dense ? typography.pxToRem(15) : undefined}\n >\n {label}\n </Typography>\n )}\n {tooltip ? (\n <Tooltip title={tooltip} placement=\"top\" enterDelay={tooltipEnterDelay}>\n {children}\n </Tooltip>\n ) : (\n children\n )}\n </Box>\n );\n};\n","import Box from \"@mui/material/Box\";\nimport { ValueContent } from \"../value-content\";\nimport { BaseValueProps } from \"../value-base\";\n\nexport interface ValueImageProps extends BaseValueProps<string> {\n /**\n * Image size\n */\n size?: number;\n}\n\nconst DefaultSize = 100;\nconst DefaultDenseSize = 50;\n\n/**\n * Displays a image value with a label\n */\nexport const ValueImage = ({ label, value, size: sizeArg, dense }: ValueImageProps) => {\n const size = sizeArg || (dense ? DefaultDenseSize : DefaultSize);\n return (\n <ValueContent label={label} dense={dense}>\n <Box component=\"img\" src={value} alt={label} sx={{ width: size, height: size }} />\n </ValueContent>\n );\n};\n"],"names":["ValueContent","label","hideLabel","tooltip","tooltipEnterDelay","children","dense","sx","typography","useTheme","id","replace","getValueContentLabelId","_jsxs","Box","width","lineHeight","undefined","_jsx","Typography","variant","role","pxToRem","Tooltip","title","placement","enterDelay","ValueImage","value","size","sizeArg","component","src","alt","height"],"mappings":"gNAKO,MA4CMA,EAAe,EAC1BC,QACAC,YACAC,UACAC,oBAAoB,IACpBC,WACAC,QACAC,SAEA,MAAMC,WAAEA,GAAeC,IACjBC,EAtD8B,CAACT,GACrC,SAASA,EAAMU,QAAQ,KAAM,OAqDlBC,CAAuBX,GAElC,OACEY,EAACC,EAAG,CAACC,MAAO,EAAGC,WAAYV,EAAQ,OAAIW,EAAWV,GAAIA,EAAEF,SAAA,EACpDH,GACAgB,EAACC,GACCC,QAASd,EAAQ,UAAY,YAC7Be,KAAK,QACLX,GAAIA,EACJM,WAAYV,EAAQE,EAAWc,QAAQ,SAAML,EAE5CZ,SAAAJ,IAGJE,EACCe,EAACK,EAAQ,CAAAC,MAAOrB,EAASsB,UAAU,MAAMC,WAAYtB,WAClDC,IACO,IAKd,EChESsB,EAAa,EAAG1B,QAAO2B,QAAOC,KAAMC,EAASxB,YACxD,MAAMuB,EAAOC,IAAYxB,EANF,GADL,KAQlB,OACEY,EAAClB,GAAaC,MAAOA,EAAOK,MAAOA,WACjCY,EAACJ,GAAIiB,UAAU,MAAMC,IAAKJ,EAAOK,IAAKhC,EAAOM,GAAI,CAAEQ,MAAOc,EAAMK,OAAQL,MAE1E"}
@@ -1,4 +1,4 @@
1
- import { BaseValueProps } from "../value-base/value-displays.types";
1
+ import { BaseValueProps } from "../value-base";
2
2
  export interface ValueImageProps extends BaseValueProps<string> {
3
3
  /**
4
4
  * Image size
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@mui/material");function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var r=t(require("react"));const o={root:"RdsValueItem-root",content:"RdsValueItem-content"};exports.ValueItem=({children:t,bordered:a=!0,...n})=>{const i=((e,t)=>{const r=`solid ${t} 1px`,o="none";if(e){if(Array.isArray(e))return e.map((e=>e?r:o));if("object"==typeof e){const t={};return Object.entries(e).forEach((([e,a])=>{t[e]=a?r:o})),t}return r}})(a,(({lightWeight:t=100,darkWeight:r=900}={})=>{const{palette:o}=e.useTheme();return"light"===o.mode?o.grey[t]:o.grey[r]})({lightWeight:200,darkWeight:800}));return r.default.createElement(e.Grid,{item:!0,className:o.root,...n},r.default.createElement(e.Box,{className:o.content,px:1,borderLeft:i},t))},exports.valueItemClasses=o;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("@mui/material/Grid"),r=require("@mui/material/Box"),i=require("@mui/material");function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var a=o(t),n=o(r);const s={root:"RdsValueItem-root",content:"RdsValueItem-content"};exports.ValueItem=({children:t,bordered:r=!0,...o})=>{const u=((e,t)=>{const r=`solid ${t} 1px`,i="none";if(e){if(Array.isArray(e))return e.map((e=>e?r:i));if("object"==typeof e){const t={};return Object.entries(e).forEach((([e,o])=>{t[e]=o?r:i})),t}return r}})(r,(({lightWeight:e=100,darkWeight:t=900}={})=>{const{palette:r}=i.useTheme();return"light"===r.mode?r.grey[e]:r.grey[t]})({lightWeight:200,darkWeight:800}));return e.jsx(a.default,{item:!0,className:s.root,...o,children:e.jsx(n.default,{className:s.content,px:1,borderLeft:u,children:t})})},exports.valueItemClasses=s;
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/utils/theme.ts","../../../src/value-item/value-item.tsx"],"sourcesContent":["import { Color, useTheme } from \"@mui/material\";\n\ntype KeyColor = keyof Color;\n\nexport const useGetDefaultThemeColor = ({\n lightWeight = 100,\n darkWeight = 900,\n}: { lightWeight?: KeyColor; darkWeight?: KeyColor } = {}) => {\n const { palette } = useTheme();\n return palette.mode === \"light\" ? palette.grey[lightWeight] : palette.grey[darkWeight];\n};\n","import { GridProps, Grid, Box } from \"@mui/material\";\nimport { ResponsiveStyleValue } from \"@mui/system\";\nimport React, { PropsWithChildren, FunctionComponent, ReactElement } from \"react\";\nimport { useGetDefaultThemeColor } from \"~/utils\";\n\nexport type ValueItemProps = PropsWithChildren<\n Omit<GridProps, \"item\" | \"container\"> & { bordered?: ResponsiveStyleValue<boolean> }\n>;\nexport type ValueItemComponent = FunctionComponent<ValueItemProps>;\nexport type ValueItemElement = ReactElement<ValueItemProps, ValueItemComponent>;\n\nexport const valueItemClasses = {\n root: \"RdsValueItem-root\",\n content: \"RdsValueItem-content\",\n};\n\nconst resolveBorderStyle = (bordered: ResponsiveStyleValue<boolean>, color: string) => {\n const borderStyle = `solid ${color} 1px`;\n const noBorder = \"none\";\n\n if (!bordered) {\n return undefined;\n }\n\n if (Array.isArray(bordered)) {\n return bordered.map((b) => (b ? borderStyle : noBorder));\n }\n\n if (typeof bordered === \"object\") {\n const style: Record<string, string | undefined> = {};\n Object.entries(bordered).forEach(([key, value]) => {\n style[key] = value ? borderStyle : noBorder;\n });\n return style;\n }\n\n return borderStyle;\n};\n\nexport const ValueItem: ValueItemComponent = ({\n children,\n bordered = true,\n ...rest\n}: ValueItemProps) => {\n const defaultColor = useGetDefaultThemeColor({ lightWeight: 200, darkWeight: 800 });\n const borderLeft = resolveBorderStyle(bordered, defaultColor);\n return (\n <Grid item className={valueItemClasses.root} {...rest}>\n <Box className={valueItemClasses.content} px={1} borderLeft={borderLeft}>\n {children}\n </Box>\n </Grid>\n );\n};\n"],"names":["valueItemClasses","root","content","children","bordered","rest","borderLeft","color","borderStyle","noBorder","Array","isArray","map","b","style","Object","entries","forEach","key","value","resolveBorderStyle","lightWeight","darkWeight","palette","useTheme","mode","grey","useGetDefaultThemeColor","React","createElement","Grid","item","className","Box","px"],"mappings":"qMAIO,MCOMA,EAAmB,CAC9BC,KAAM,oBACNC,QAAS,0CA0BkC,EAC3CC,WACAC,YAAW,KACRC,MAEH,MACMC,EA7BmB,EAACF,EAAyCG,KACnE,MAAMC,EAAc,SAASD,QACvBE,EAAW,OAEjB,GAAKL,EAAL,CAIA,GAAIM,MAAMC,QAAQP,GAChB,OAAOA,EAASQ,KAAKC,GAAOA,EAAIL,EAAcC,IAGhD,GAAwB,iBAAbL,EAAuB,CAChC,MAAMU,EAA4C,CAAA,EAIlD,OAHAC,OAAOC,QAAQZ,GAAUa,SAAQ,EAAEC,EAAKC,MACtCL,EAAMI,GAAOC,EAAQX,EAAcC,CAAQ,IAEtCK,CACR,CAED,OAAON,CAdN,CAciB,EASCY,CAAmBhB,EDzCD,GACrCiB,cAAc,IACdC,aAAa,KACwC,MACrD,MAAMC,QAAEA,GAAYC,EAAAA,WACpB,MAAwB,UAAjBD,EAAQE,KAAmBF,EAAQG,KAAKL,GAAeE,EAAQG,KAAKJ,EAAW,ECmCjEK,CAAwB,CAAEN,YAAa,IAAKC,WAAY,OAE7E,OACEM,UAAAC,cAACC,EAAIA,KAAA,CAACC,MAAI,EAACC,UAAWhC,EAAiBC,QAAUI,GAC/CuB,EAAAA,QAACC,cAAAI,EAAAA,KAAID,UAAWhC,EAAiBE,QAASgC,GAAI,EAAG5B,WAAYA,GAC1DH,GAGL"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/utils/theme.ts","../../../src/value-item/value-item.tsx"],"sourcesContent":["import { Color, useTheme } from \"@mui/material\";\n\ntype KeyColor = keyof Color;\n\nexport const useGetDefaultThemeColor = ({\n lightWeight = 100,\n darkWeight = 900,\n}: { lightWeight?: KeyColor; darkWeight?: KeyColor } = {}) => {\n const { palette } = useTheme();\n return palette.mode === \"light\" ? palette.grey[lightWeight] : palette.grey[darkWeight];\n};\n","import Grid, { GridProps } from \"@mui/material/Grid\";\nimport Box from \"@mui/material/Box\";\nimport { ResponsiveStyleValue } from \"@mui/system\";\nimport { PropsWithChildren, FunctionComponent, ReactElement } from \"react\";\nimport { useGetDefaultThemeColor } from \"../utils\";\n\nexport type ValueItemProps = PropsWithChildren<\n Omit<GridProps, \"item\" | \"container\"> & { bordered?: ResponsiveStyleValue<boolean> }\n>;\nexport type ValueItemComponent = FunctionComponent<ValueItemProps>;\nexport type ValueItemElement = ReactElement<ValueItemProps, ValueItemComponent>;\n\nexport const valueItemClasses = {\n root: \"RdsValueItem-root\",\n content: \"RdsValueItem-content\",\n};\n\nconst resolveBorderStyle = (bordered: ResponsiveStyleValue<boolean>, color: string) => {\n const borderStyle = `solid ${color} 1px`;\n const noBorder = \"none\";\n\n if (!bordered) {\n return undefined;\n }\n\n if (Array.isArray(bordered)) {\n return bordered.map((b) => (b ? borderStyle : noBorder));\n }\n\n if (typeof bordered === \"object\") {\n const style: Record<string, string | undefined> = {};\n Object.entries(bordered).forEach(([key, value]) => {\n style[key] = value ? borderStyle : noBorder;\n });\n return style;\n }\n\n return borderStyle;\n};\n\nexport const ValueItem: ValueItemComponent = ({\n children,\n bordered = true,\n ...rest\n}: ValueItemProps) => {\n const defaultColor = useGetDefaultThemeColor({ lightWeight: 200, darkWeight: 800 });\n const borderLeft = resolveBorderStyle(bordered, defaultColor);\n return (\n <Grid item className={valueItemClasses.root} {...rest}>\n <Box className={valueItemClasses.content} px={1} borderLeft={borderLeft}>\n {children}\n </Box>\n </Grid>\n );\n};\n"],"names":["valueItemClasses","root","content","children","bordered","rest","borderLeft","color","borderStyle","noBorder","Array","isArray","map","b","style","Object","entries","forEach","key","value","resolveBorderStyle","lightWeight","darkWeight","palette","useTheme","mode","grey","useGetDefaultThemeColor","_jsx","Grid","item","className","Box","px"],"mappings":"2RAIO,MCQMA,EAAmB,CAC9BC,KAAM,oBACNC,QAAS,0CA0BkC,EAC3CC,WACAC,YAAW,KACRC,MAEH,MACMC,EA7BmB,EAACF,EAAyCG,KACnE,MAAMC,EAAc,SAASD,QACvBE,EAAW,OAEjB,GAAKL,EAAL,CAIA,GAAIM,MAAMC,QAAQP,GAChB,OAAOA,EAASQ,KAAKC,GAAOA,EAAIL,EAAcC,IAGhD,GAAwB,iBAAbL,EAAuB,CAChC,MAAMU,EAA4C,CAAA,EAIlD,OAHAC,OAAOC,QAAQZ,GAAUa,SAAQ,EAAEC,EAAKC,MACtCL,EAAMI,GAAOC,EAAQX,EAAcC,CAAQ,IAEtCK,CACR,CAED,OAAON,CAdN,CAciB,EASCY,CAAmBhB,ED1CD,GACrCiB,cAAc,IACdC,aAAa,KACwC,MACrD,MAAMC,QAAEA,GAAYC,EAAAA,WACpB,MAAwB,UAAjBD,EAAQE,KAAmBF,EAAQG,KAAKL,GAAeE,EAAQG,KAAKJ,EAAW,ECoCjEK,CAAwB,CAAEN,YAAa,IAAKC,WAAY,OAE7E,OACEM,MAACC,EAAAA,QAAI,CAACC,MAAK,EAAAC,UAAW/B,EAAiBC,QAAUI,EAAIF,SACnDyB,MAACI,UAAG,CAACD,UAAW/B,EAAiBE,QAAS+B,GAAI,EAAG3B,WAAYA,EAC1DH,SAAAA,KAGL"}
@@ -1,2 +1,2 @@
1
- import{useTheme as e,Grid as t,Box as r}from"@mui/material";import o from"react";const n={root:"RdsValueItem-root",content:"RdsValueItem-content"},i=({children:i,bordered:a=!0,...c})=>{const m=((e,t)=>{const r=`solid ${t} 1px`,o="none";if(e){if(Array.isArray(e))return e.map((e=>e?r:o));if("object"==typeof e){const t={};return Object.entries(e).forEach((([e,n])=>{t[e]=n?r:o})),t}return r}})(a,(({lightWeight:t=100,darkWeight:r=900}={})=>{const{palette:o}=e();return"light"===o.mode?o.grey[t]:o.grey[r]})({lightWeight:200,darkWeight:800}));return o.createElement(t,{item:!0,className:n.root,...c},o.createElement(r,{className:n.content,px:1,borderLeft:m},i))};export{i as ValueItem,n as valueItemClasses};
1
+ import{jsx as t}from"react/jsx-runtime";import r from"@mui/material/Grid";import e from"@mui/material/Box";import{useTheme as o}from"@mui/material";const i={root:"RdsValueItem-root",content:"RdsValueItem-content"},n=({children:n,bordered:m=!0,...a})=>{const c=((t,r)=>{const e=`solid ${r} 1px`,o="none";if(t){if(Array.isArray(t))return t.map((t=>t?e:o));if("object"==typeof t){const r={};return Object.entries(t).forEach((([t,i])=>{r[t]=i?e:o})),r}return e}})(m,(({lightWeight:t=100,darkWeight:r=900}={})=>{const{palette:e}=o();return"light"===e.mode?e.grey[t]:e.grey[r]})({lightWeight:200,darkWeight:800}));return t(r,{item:!0,className:i.root,...a,children:t(e,{className:i.content,px:1,borderLeft:c,children:n})})};export{n as ValueItem,i as valueItemClasses};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/utils/theme.ts","../../src/value-item/value-item.tsx"],"sourcesContent":["import { Color, useTheme } from \"@mui/material\";\n\ntype KeyColor = keyof Color;\n\nexport const useGetDefaultThemeColor = ({\n lightWeight = 100,\n darkWeight = 900,\n}: { lightWeight?: KeyColor; darkWeight?: KeyColor } = {}) => {\n const { palette } = useTheme();\n return palette.mode === \"light\" ? palette.grey[lightWeight] : palette.grey[darkWeight];\n};\n","import { GridProps, Grid, Box } from \"@mui/material\";\nimport { ResponsiveStyleValue } from \"@mui/system\";\nimport React, { PropsWithChildren, FunctionComponent, ReactElement } from \"react\";\nimport { useGetDefaultThemeColor } from \"~/utils\";\n\nexport type ValueItemProps = PropsWithChildren<\n Omit<GridProps, \"item\" | \"container\"> & { bordered?: ResponsiveStyleValue<boolean> }\n>;\nexport type ValueItemComponent = FunctionComponent<ValueItemProps>;\nexport type ValueItemElement = ReactElement<ValueItemProps, ValueItemComponent>;\n\nexport const valueItemClasses = {\n root: \"RdsValueItem-root\",\n content: \"RdsValueItem-content\",\n};\n\nconst resolveBorderStyle = (bordered: ResponsiveStyleValue<boolean>, color: string) => {\n const borderStyle = `solid ${color} 1px`;\n const noBorder = \"none\";\n\n if (!bordered) {\n return undefined;\n }\n\n if (Array.isArray(bordered)) {\n return bordered.map((b) => (b ? borderStyle : noBorder));\n }\n\n if (typeof bordered === \"object\") {\n const style: Record<string, string | undefined> = {};\n Object.entries(bordered).forEach(([key, value]) => {\n style[key] = value ? borderStyle : noBorder;\n });\n return style;\n }\n\n return borderStyle;\n};\n\nexport const ValueItem: ValueItemComponent = ({\n children,\n bordered = true,\n ...rest\n}: ValueItemProps) => {\n const defaultColor = useGetDefaultThemeColor({ lightWeight: 200, darkWeight: 800 });\n const borderLeft = resolveBorderStyle(bordered, defaultColor);\n return (\n <Grid item className={valueItemClasses.root} {...rest}>\n <Box className={valueItemClasses.content} px={1} borderLeft={borderLeft}>\n {children}\n </Box>\n </Grid>\n );\n};\n"],"names":["valueItemClasses","root","content","ValueItem","children","bordered","rest","borderLeft","color","borderStyle","noBorder","Array","isArray","map","b","style","Object","entries","forEach","key","value","resolveBorderStyle","lightWeight","darkWeight","palette","useTheme","mode","grey","useGetDefaultThemeColor","React","createElement","Grid","item","className","Box","px"],"mappings":"iFAIO,MCOMA,EAAmB,CAC9BC,KAAM,oBACNC,QAAS,wBA0BEC,EAAgC,EAC3CC,WACAC,YAAW,KACRC,MAEH,MACMC,EA7BmB,EAACF,EAAyCG,KACnE,MAAMC,EAAc,SAASD,QACvBE,EAAW,OAEjB,GAAKL,EAAL,CAIA,GAAIM,MAAMC,QAAQP,GAChB,OAAOA,EAASQ,KAAKC,GAAOA,EAAIL,EAAcC,IAGhD,GAAwB,iBAAbL,EAAuB,CAChC,MAAMU,EAA4C,CAAA,EAIlD,OAHAC,OAAOC,QAAQZ,GAAUa,SAAQ,EAAEC,EAAKC,MACtCL,EAAMI,GAAOC,EAAQX,EAAcC,CAAQ,IAEtCK,CACR,CAED,OAAON,CAdN,CAciB,EASCY,CAAmBhB,EDzCD,GACrCiB,cAAc,IACdC,aAAa,KACwC,MACrD,MAAMC,QAAEA,GAAYC,IACpB,MAAwB,UAAjBD,EAAQE,KAAmBF,EAAQG,KAAKL,GAAeE,EAAQG,KAAKJ,EAAW,ECmCjEK,CAAwB,CAAEN,YAAa,IAAKC,WAAY,OAE7E,OACEM,EAAAC,cAACC,EAAI,CAACC,MAAI,EAACC,UAAWjC,EAAiBC,QAAUK,GAC/CuB,EAACC,cAAAI,GAAID,UAAWjC,EAAiBE,QAASiC,GAAI,EAAG5B,WAAYA,GAC1DH,GAGL"}
1
+ {"version":3,"file":"index.js","sources":["../../src/utils/theme.ts","../../src/value-item/value-item.tsx"],"sourcesContent":["import { Color, useTheme } from \"@mui/material\";\n\ntype KeyColor = keyof Color;\n\nexport const useGetDefaultThemeColor = ({\n lightWeight = 100,\n darkWeight = 900,\n}: { lightWeight?: KeyColor; darkWeight?: KeyColor } = {}) => {\n const { palette } = useTheme();\n return palette.mode === \"light\" ? palette.grey[lightWeight] : palette.grey[darkWeight];\n};\n","import Grid, { GridProps } from \"@mui/material/Grid\";\nimport Box from \"@mui/material/Box\";\nimport { ResponsiveStyleValue } from \"@mui/system\";\nimport { PropsWithChildren, FunctionComponent, ReactElement } from \"react\";\nimport { useGetDefaultThemeColor } from \"../utils\";\n\nexport type ValueItemProps = PropsWithChildren<\n Omit<GridProps, \"item\" | \"container\"> & { bordered?: ResponsiveStyleValue<boolean> }\n>;\nexport type ValueItemComponent = FunctionComponent<ValueItemProps>;\nexport type ValueItemElement = ReactElement<ValueItemProps, ValueItemComponent>;\n\nexport const valueItemClasses = {\n root: \"RdsValueItem-root\",\n content: \"RdsValueItem-content\",\n};\n\nconst resolveBorderStyle = (bordered: ResponsiveStyleValue<boolean>, color: string) => {\n const borderStyle = `solid ${color} 1px`;\n const noBorder = \"none\";\n\n if (!bordered) {\n return undefined;\n }\n\n if (Array.isArray(bordered)) {\n return bordered.map((b) => (b ? borderStyle : noBorder));\n }\n\n if (typeof bordered === \"object\") {\n const style: Record<string, string | undefined> = {};\n Object.entries(bordered).forEach(([key, value]) => {\n style[key] = value ? borderStyle : noBorder;\n });\n return style;\n }\n\n return borderStyle;\n};\n\nexport const ValueItem: ValueItemComponent = ({\n children,\n bordered = true,\n ...rest\n}: ValueItemProps) => {\n const defaultColor = useGetDefaultThemeColor({ lightWeight: 200, darkWeight: 800 });\n const borderLeft = resolveBorderStyle(bordered, defaultColor);\n return (\n <Grid item className={valueItemClasses.root} {...rest}>\n <Box className={valueItemClasses.content} px={1} borderLeft={borderLeft}>\n {children}\n </Box>\n </Grid>\n );\n};\n"],"names":["valueItemClasses","root","content","ValueItem","children","bordered","rest","borderLeft","color","borderStyle","noBorder","Array","isArray","map","b","style","Object","entries","forEach","key","value","resolveBorderStyle","lightWeight","darkWeight","palette","useTheme","mode","grey","useGetDefaultThemeColor","_jsx","Grid","item","className","Box","px"],"mappings":"oJAIO,MCQMA,EAAmB,CAC9BC,KAAM,oBACNC,QAAS,wBA0BEC,EAAgC,EAC3CC,WACAC,YAAW,KACRC,MAEH,MACMC,EA7BmB,EAACF,EAAyCG,KACnE,MAAMC,EAAc,SAASD,QACvBE,EAAW,OAEjB,GAAKL,EAAL,CAIA,GAAIM,MAAMC,QAAQP,GAChB,OAAOA,EAASQ,KAAKC,GAAOA,EAAIL,EAAcC,IAGhD,GAAwB,iBAAbL,EAAuB,CAChC,MAAMU,EAA4C,CAAA,EAIlD,OAHAC,OAAOC,QAAQZ,GAAUa,SAAQ,EAAEC,EAAKC,MACtCL,EAAMI,GAAOC,EAAQX,EAAcC,CAAQ,IAEtCK,CACR,CAED,OAAON,CAdN,CAciB,EASCY,CAAmBhB,ED1CD,GACrCiB,cAAc,IACdC,aAAa,KACwC,MACrD,MAAMC,QAAEA,GAAYC,IACpB,MAAwB,UAAjBD,EAAQE,KAAmBF,EAAQG,KAAKL,GAAeE,EAAQG,KAAKJ,EAAW,ECoCjEK,CAAwB,CAAEN,YAAa,IAAKC,WAAY,OAE7E,OACEM,EAACC,EAAI,CAACC,MAAK,EAAAC,UAAWhC,EAAiBC,QAAUK,EAAIF,SACnDyB,EAACI,EAAG,CAACD,UAAWhC,EAAiBE,QAASgC,GAAI,EAAG3B,WAAYA,EAC1DH,SAAAA,KAGL"}
@@ -1,4 +1,4 @@
1
- import { GridProps } from "@mui/material";
1
+ import { GridProps } from "@mui/material/Grid";
2
2
  import { ResponsiveStyleValue } from "@mui/system";
3
3
  import { PropsWithChildren, FunctionComponent, ReactElement } from "react";
4
4
  export type ValueItemProps = PropsWithChildren<Omit<GridProps, "item" | "container"> & {
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");require("@mui/icons-material/Check"),require("@mui/icons-material/Clear");var t=require("@mui/material");function r(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("@mui/icons-material/Edit");var a=r(e);const i=e=>`label-${e.replace(/ /g,"-")}`,l=({label:e,hideLabel:r,tooltip:l,tooltipEnterDelay:n=2e3,children:o,dense:c,sx:s})=>{const{typography:u}=t.useTheme(),d=i(e);return a.default.createElement(t.Box,{width:1,lineHeight:c?0:void 0,sx:s},!r&&a.default.createElement(t.Typography,{variant:c?"caption":"subtitle2",role:"label",id:d,lineHeight:c?u.pxToRem(15):void 0},e),l?a.default.createElement(t.Tooltip,{title:l,placement:"top",enterDelay:n},o):o)},n=({text:e,variant:r="default",textTransform:i="capitalize",sx:l})=>{const{palette:n,typography:o}=t.useTheme(),c={default:"light"===n.mode?n.grey[100]:n.grey[900],primary:n.primary.light,secondary:n.secondary.light,info:n.info.light,warning:n.warning.light,error:n.error.light,success:n.success.light},s={default:n.getContrastText(c.default),primary:n.primary.contrastText,secondary:n.secondary.contrastText,info:n.info.contrastText,warning:n.warning.contrastText,error:n.error.contrastText,success:n.success.contrastText};return a.default.createElement(t.Box,{height:24,minWidth:22,display:"inline-flex",justifyContent:"center",alignItems:"center",bgcolor:c[r],color:s[r],fontSize:o.caption.fontSize,fontWeight:o.fontWeightBold,lineHeight:0,textTransform:i,whiteSpace:"nowrap",borderRadius:2,role:"label","aria-label":`${e} ${r} label`,py:0,px:1,sx:{cursor:"default",...l}},e)};exports.ValueLabel=({label:e,value:r,placeholder:o="-",variant:c})=>{const s=i(e);let u;return u=Array.isArray(r)?r.map(((e,t)=>a.default.createElement(n,{text:e.toString()||o,variant:Array.isArray(c)?c[t]:c,key:t}))):a.default.createElement(n,{text:r?.toString()||o,variant:Array.isArray(c)?c[0]:c}),a.default.createElement(l,{label:e},a.default.createElement(t.Grid,{container:!0,gap:1,"aria-labelledby":s},u))};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime");require("react"),require("@mui/icons-material/Check"),require("@mui/icons-material/Clear");var r=require("@mui/material/styles");require("@mui/material/Button"),require("@mui/material/IconButton"),require("@mui/material/InputAdornment"),require("@mui/icons-material/Edit");var t=require("@mui/material/Box"),i=require("@mui/material/Tooltip"),a=require("@mui/material/Typography"),l=require("@mui/material/Grid");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var o=n(t),s=n(i),u=n(a),c=n(l);const d=e=>`label-${e.replace(/ /g,"-")}`,m=({label:t,hideLabel:i,tooltip:a,tooltipEnterDelay:l=2e3,children:n,dense:c,sx:m})=>{const{typography:p}=r.useTheme(),h=d(t);return e.jsxs(o.default,{width:1,lineHeight:c?0:void 0,sx:m,children:[!i&&e.jsx(u.default,{variant:c?"caption":"subtitle2",role:"label",id:h,lineHeight:c?p.pxToRem(15):void 0,children:t}),a?e.jsx(s.default,{title:a,placement:"top",enterDelay:l,children:n}):n]})},p=({text:t,variant:i="default",textTransform:a="capitalize",sx:l})=>{const{palette:n,typography:s}=r.useTheme(),u={default:"light"===n.mode?n.grey[100]:n.grey[900],primary:n.primary.light,secondary:n.secondary.light,info:n.info.light,warning:n.warning.light,error:n.error.light,success:n.success.light},c={default:n.getContrastText(u.default),primary:n.primary.contrastText,secondary:n.secondary.contrastText,info:n.info.contrastText,warning:n.warning.contrastText,error:n.error.contrastText,success:n.success.contrastText};return e.jsx(o.default,{height:24,minWidth:22,display:"inline-flex",justifyContent:"center",alignItems:"center",bgcolor:u[i],color:c[i],fontSize:s.caption.fontSize,fontWeight:s.fontWeightBold,lineHeight:0,textTransform:a,whiteSpace:"nowrap",borderRadius:2,role:"label","aria-label":`${t} ${i} label`,py:0,px:1,sx:{cursor:"default",...l},children:t})};exports.ValueLabel=({label:r,value:t,placeholder:i="-",variant:a})=>{const l=d(r);let n;return n=Array.isArray(t)?t.map(((r,t)=>e.jsx(p,{text:r.toString()||i,variant:Array.isArray(a)?a[t]:a},t))):e.jsx(p,{text:t?.toString()||i,variant:Array.isArray(a)?a[0]:a}),e.jsx(m,{label:r,children:e.jsx(c.default,{container:!0,gap:1,"aria-labelledby":l,children:n})})};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/value-base/value-displays.types.ts","../../../src/value-content/value-content.tsx","../../../src/label/label.tsx","../../../src/value-label/value-label.tsx"],"sourcesContent":["export interface BaseValueProps<T> {\n /**\n * Name of the displayed value\n */\n label: string;\n\n /**\n * Value displayed\n */\n value?: T;\n\n /**\n * String rendered if value is undefined\n */\n placeholder?: string;\n\n /**\n * The value has to be displayed as compact or not.\n * False by default\n */\n dense?: boolean;\n}\n\nexport interface EditableValueProps<T> {\n /**\n * This field can be edited or not\n */\n editable?: boolean;\n\n /**\n * Callback executed when the value is edited\n */\n onEdit?: (value?: T) => void;\n}\n\nexport const DefaultPlaceholder = \"-\";\n","import { Box, SxProps, Theme, Tooltip, Typography, useTheme } from \"@mui/material\";\nimport React from \"react\";\n\nexport const getValueContentLabelId = (label: string): string =>\n `label-${label.replace(/ /g, \"-\")}`;\n\nexport interface ValueContentProps {\n /**\n * Name of the displayed value\n */\n label: string;\n\n /**\n * If true, the label will not be shown\n */\n hideLabel?: boolean;\n\n /**\n * If defined, a tooltip is going to be added arround the children;\n */\n tooltip?: string;\n\n /**\n * Timeout before the tooltip appears when the user hovers the value\n */\n tooltipEnterDelay?: number;\n\n /**\n * Component that's going to be renderd under the label\n */\n children: React.ReactElement<any, any>;\n\n /**\n * The value has to be displayed as compact or not.\n * False by default\n */\n dense?: boolean;\n\n /**\n * Custom styles for the root component\n */\n sx?: SxProps<Theme>;\n}\n\n/**\n * Displays a string value with a label\n */\nexport const ValueContent = ({\n label,\n hideLabel,\n tooltip,\n tooltipEnterDelay = 2000,\n children,\n dense,\n sx,\n}: ValueContentProps) => {\n const { typography } = useTheme();\n const id = getValueContentLabelId(label);\n\n return (\n <Box width={1} lineHeight={dense ? 0 : undefined} sx={sx}>\n {!hideLabel && (\n <Typography\n variant={dense ? \"caption\" : \"subtitle2\"}\n role=\"label\"\n id={id}\n lineHeight={dense ? typography.pxToRem(15) : undefined}\n >\n {label}\n </Typography>\n )}\n {tooltip ? (\n <Tooltip title={tooltip} placement=\"top\" enterDelay={tooltipEnterDelay}>\n {children}\n </Tooltip>\n ) : (\n children\n )}\n </Box>\n );\n};\n","import { Box, SxProps, Theme, useTheme } from \"@mui/material\";\nimport React from \"react\";\n\nexport type LabelVariant =\n | \"primary\"\n | \"secondary\"\n | \"default\"\n | \"info\"\n | \"warning\"\n | \"error\"\n | \"success\";\n\nexport const labelClasses = {\n root: \"RdsLabel-root\",\n};\n\nexport interface LabelProps {\n /**\n * Content of the component\n */\n text: string;\n /**\n * Color palette used to draw the component\n */\n variant?: LabelVariant;\n\n /**\n * Custom styles\n */\n sx?: SxProps<Theme>;\n\n /**\n * Show the text as uppercase\n */\n textTransform?: \"none\" | \"capitalize\" | \"uppercase\";\n}\n\n/**\n * Compact element to represent a text\n */\nexport const Label = ({\n text,\n variant = \"default\",\n textTransform = \"capitalize\",\n sx,\n}: LabelProps) => {\n const { palette, typography } = useTheme();\n\n const backgroundColor: Record<LabelVariant, string> = {\n default: palette.mode === \"light\" ? palette.grey[100] : palette.grey[900],\n primary: palette.primary.light,\n secondary: palette.secondary.light,\n info: palette.info.light,\n warning: palette.warning.light,\n error: palette.error.light,\n success: palette.success.light,\n };\n\n const textColor: Record<LabelVariant, string> = {\n default: palette.getContrastText(backgroundColor.default),\n primary: palette.primary.contrastText,\n secondary: palette.secondary.contrastText,\n info: palette.info.contrastText,\n warning: palette.warning.contrastText,\n error: palette.error.contrastText,\n success: palette.success.contrastText,\n };\n\n return (\n <Box\n height={24}\n minWidth={22}\n display=\"inline-flex\"\n justifyContent=\"center\"\n alignItems=\"center\"\n bgcolor={backgroundColor[variant]}\n color={textColor[variant]}\n fontSize={typography.caption.fontSize}\n fontWeight={typography.fontWeightBold}\n lineHeight={0}\n textTransform={textTransform}\n whiteSpace=\"nowrap\"\n borderRadius={2}\n role=\"label\"\n aria-label={`${text} ${variant} label`}\n py={0}\n px={1}\n sx={{ cursor: \"default\", ...sx }}\n >\n {text}\n </Box>\n );\n};\n","import React from \"react\";\nimport { BaseValueProps, DefaultPlaceholder } from \"../value-base\";\nimport { getValueContentLabelId, ValueContent } from \"../value-content\";\nimport { Label, LabelVariant } from \"~/label\";\nimport { Grid } from \"@mui/material\";\n\nexport type ValueLabelProps = BaseValueProps<string | number | string[] | number[]> & {\n variant: LabelVariant | LabelVariant[];\n};\n\n/**\n * Displays a label component value with a label\n */\nexport const ValueLabel = ({\n label,\n value: valueProp,\n placeholder = DefaultPlaceholder,\n variant,\n}: ValueLabelProps) => {\n const id = getValueContentLabelId(label);\n let value;\n\n Array.isArray(valueProp)\n ? (value = valueProp.map((value, i) => (\n <Label\n text={value.toString() || placeholder}\n variant={Array.isArray(variant) ? variant[i] : variant}\n key={i}\n />\n )))\n : (value = (\n <Label\n text={valueProp?.toString() || placeholder}\n variant={Array.isArray(variant) ? variant[0] : variant}\n />\n ));\n\n return (\n <ValueContent label={label}>\n <Grid container gap={1} aria-labelledby={id}>\n {value}\n </Grid>\n </ValueContent>\n );\n};\n"],"names":["getValueContentLabelId","label","replace","ValueContent","hideLabel","tooltip","tooltipEnterDelay","children","dense","sx","typography","useTheme","id","React","Box","width","lineHeight","undefined","createElement","Typography","variant","role","pxToRem","Tooltip","title","placement","enterDelay","Label","text","textTransform","palette","backgroundColor","default","mode","grey","primary","light","secondary","info","warning","error","success","textColor","getContrastText","contrastText","height","minWidth","display","justifyContent","alignItems","bgcolor","color","fontSize","caption","fontWeight","fontWeightBold","whiteSpace","borderRadius","py","px","cursor","value","valueProp","placeholder","Array","isArray","map","i","toString","key","Grid","container","gap"],"mappings":"2TAmCO,MChCMA,EAA0BC,GACrC,SAASA,EAAMC,QAAQ,KAAM,OA2ClBC,EAAe,EAC1BF,QACAG,YACAC,UACAC,oBAAoB,IACpBC,WACAC,QACAC,SAEA,MAAMC,WAAEA,GAAeC,EAAAA,WACjBC,EAAKZ,EAAuBC,GAElC,OACEY,wBAACC,EAAGA,IAAA,CAACC,MAAO,EAAGC,WAAYR,EAAQ,OAAIS,EAAWR,GAAIA,IAClDL,GACAS,UAAAK,cAACC,EAAUA,WACT,CAAAC,QAASZ,EAAQ,UAAY,YAC7Ba,KAAK,QACLT,GAAIA,EACJI,WAAYR,EAAQE,EAAWY,QAAQ,SAAML,GAE5ChB,GAGJI,EACCQ,EAAC,QAAAK,cAAAK,EAAOA,QAAC,CAAAC,MAAOnB,EAASoB,UAAU,MAAMC,WAAYpB,GAClDC,GAGH,EAGJ,ECvCSoB,EAAQ,EACnBC,OACAR,UAAU,UACVS,gBAAgB,aAChBpB,SAEA,MAAMqB,QAAEA,EAAOpB,WAAEA,GAAeC,EAAQA,WAElCoB,EAAgD,CACpDC,QAA0B,UAAjBF,EAAQG,KAAmBH,EAAQI,KAAK,KAAOJ,EAAQI,KAAK,KACrEC,QAASL,EAAQK,QAAQC,MACzBC,UAAWP,EAAQO,UAAUD,MAC7BE,KAAMR,EAAQQ,KAAKF,MACnBG,QAAST,EAAQS,QAAQH,MACzBI,MAAOV,EAAQU,MAAMJ,MACrBK,QAASX,EAAQW,QAAQL,OAGrBM,EAA0C,CAC9CV,QAASF,EAAQa,gBAAgBZ,EAAgBC,SACjDG,QAASL,EAAQK,QAAQS,aACzBP,UAAWP,EAAQO,UAAUO,aAC7BN,KAAMR,EAAQQ,KAAKM,aACnBL,QAAST,EAAQS,QAAQK,aACzBJ,MAAOV,EAAQU,MAAMI,aACrBH,QAASX,EAAQW,QAAQG,cAG3B,OACE/B,wBAACC,MAAG,CACF+B,OAAQ,GACRC,SAAU,GACVC,QAAQ,cACRC,eAAe,SACfC,WAAW,SACXC,QAASnB,EAAgBX,GACzB+B,MAAOT,EAAUtB,GACjBgC,SAAU1C,EAAW2C,QAAQD,SAC7BE,WAAY5C,EAAW6C,eACvBvC,WAAY,EACZa,cAAeA,EACf2B,WAAW,SACXC,aAAc,EACdpC,KAAK,QAAO,aACA,GAAGO,KAAQR,UACvBsC,GAAI,EACJC,GAAI,EACJlD,GAAI,CAAEmD,OAAQ,aAAcnD,IAE3BmB,EAEH,qBC9EsB,EACxB3B,QACA4D,MAAOC,EACPC,cHmBgC,IGlBhC3C,cAEA,MAAMR,EAAKZ,EAAuBC,GAClC,IAAI4D,EAiBJ,OAdKA,EADLG,MAAMC,QAAQH,GACDA,EAAUI,KAAI,CAACL,EAAOM,IAC7BtD,UAAAK,cAACS,EAAK,CACJC,KAAMiC,EAAMO,YAAcL,EAC1B3C,QAAS4C,MAAMC,QAAQ7C,GAAWA,EAAQ+C,GAAK/C,EAC/CiD,IAAKF,MAIPtD,EAAAA,sBAACc,EAAK,CACJC,KAAMkC,GAAWM,YAAcL,EAC/B3C,QAAS4C,MAAMC,QAAQ7C,GAAWA,EAAQ,GAAKA,IAKrDP,EAAC,QAAAK,cAAAf,EAAa,CAAAF,MAAOA,GACnBY,EAAAA,QAAAK,cAACoD,OAAI,CAACC,WAAS,EAACC,IAAK,EAAoB,kBAAA5D,GACtCiD,GAGL"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/value-base/value-displays.types.ts","../../../src/value-content/value-content.tsx","../../../src/label/label.tsx","../../../src/value-label/value-label.tsx"],"sourcesContent":["export interface BaseValueProps<T> {\n /**\n * Name of the displayed value\n */\n label: string;\n\n /**\n * Value displayed\n */\n value?: T;\n\n /**\n * String rendered if value is undefined\n */\n placeholder?: string;\n\n /**\n * The value has to be displayed as compact or not.\n * False by default\n */\n dense?: boolean;\n}\n\nexport interface EditableValueProps<T> {\n /**\n * This field can be edited or not\n */\n editable?: boolean;\n\n /**\n * Callback executed when the value is edited\n */\n onEdit?: (value?: T) => void;\n}\n\nexport const DefaultPlaceholder = \"-\";\n","import { SxProps, Theme, useTheme } from \"@mui/material/styles\";\nimport Box from \"@mui/material/Box\";\nimport Tooltip from \"@mui/material/Tooltip\";\nimport Typography from \"@mui/material/Typography\";\n\nexport const getValueContentLabelId = (label: string): string =>\n `label-${label.replace(/ /g, \"-\")}`;\n\nexport interface ValueContentProps {\n /**\n * Name of the displayed value\n */\n label: string;\n\n /**\n * If true, the label will not be shown\n */\n hideLabel?: boolean;\n\n /**\n * If defined, a tooltip is going to be added arround the children;\n */\n tooltip?: string;\n\n /**\n * Timeout before the tooltip appears when the user hovers the value\n */\n tooltipEnterDelay?: number;\n\n /**\n * Component that's going to be renderd under the label\n */\n children: React.ReactElement<any, any>;\n\n /**\n * The value has to be displayed as compact or not.\n * False by default\n */\n dense?: boolean;\n\n /**\n * Custom styles for the root component\n */\n sx?: SxProps<Theme>;\n}\n\n/**\n * Displays a string value with a label\n */\nexport const ValueContent = ({\n label,\n hideLabel,\n tooltip,\n tooltipEnterDelay = 2000,\n children,\n dense,\n sx,\n}: ValueContentProps) => {\n const { typography } = useTheme();\n const id = getValueContentLabelId(label);\n\n return (\n <Box width={1} lineHeight={dense ? 0 : undefined} sx={sx}>\n {!hideLabel && (\n <Typography\n variant={dense ? \"caption\" : \"subtitle2\"}\n role=\"label\"\n id={id}\n lineHeight={dense ? typography.pxToRem(15) : undefined}\n >\n {label}\n </Typography>\n )}\n {tooltip ? (\n <Tooltip title={tooltip} placement=\"top\" enterDelay={tooltipEnterDelay}>\n {children}\n </Tooltip>\n ) : (\n children\n )}\n </Box>\n );\n};\n","import Box from \"@mui/material/Box\";\nimport { SxProps, Theme, useTheme } from \"@mui/material/styles\";\n\nexport type LabelVariant =\n | \"primary\"\n | \"secondary\"\n | \"default\"\n | \"info\"\n | \"warning\"\n | \"error\"\n | \"success\";\n\nexport const labelClasses = {\n root: \"RdsLabel-root\",\n};\n\nexport interface LabelProps {\n /**\n * Content of the component\n */\n text: string;\n /**\n * Color palette used to draw the component\n */\n variant?: LabelVariant;\n\n /**\n * Custom styles\n */\n sx?: SxProps<Theme>;\n\n /**\n * Show the text as uppercase\n */\n textTransform?: \"none\" | \"capitalize\" | \"uppercase\";\n}\n\n/**\n * Compact element to represent a text\n */\nexport const Label = ({\n text,\n variant = \"default\",\n textTransform = \"capitalize\",\n sx,\n}: LabelProps) => {\n const { palette, typography } = useTheme();\n\n const backgroundColor: Record<LabelVariant, string> = {\n default: palette.mode === \"light\" ? palette.grey[100] : palette.grey[900],\n primary: palette.primary.light,\n secondary: palette.secondary.light,\n info: palette.info.light,\n warning: palette.warning.light,\n error: palette.error.light,\n success: palette.success.light,\n };\n\n const textColor: Record<LabelVariant, string> = {\n default: palette.getContrastText(backgroundColor.default),\n primary: palette.primary.contrastText,\n secondary: palette.secondary.contrastText,\n info: palette.info.contrastText,\n warning: palette.warning.contrastText,\n error: palette.error.contrastText,\n success: palette.success.contrastText,\n };\n\n return (\n <Box\n height={24}\n minWidth={22}\n display=\"inline-flex\"\n justifyContent=\"center\"\n alignItems=\"center\"\n bgcolor={backgroundColor[variant]}\n color={textColor[variant]}\n fontSize={typography.caption.fontSize}\n fontWeight={typography.fontWeightBold}\n lineHeight={0}\n textTransform={textTransform}\n whiteSpace=\"nowrap\"\n borderRadius={2}\n role=\"label\"\n aria-label={`${text} ${variant} label`}\n py={0}\n px={1}\n sx={{ cursor: \"default\", ...sx }}\n >\n {text}\n </Box>\n );\n};\n","import { BaseValueProps, DefaultPlaceholder } from \"../value-base\";\nimport { getValueContentLabelId, ValueContent } from \"../value-content\";\nimport { Label, LabelVariant } from \"../label\";\nimport Grid from \"@mui/material/Grid\";\n\nexport type ValueLabelProps = BaseValueProps<string | number | string[] | number[]> & {\n variant: LabelVariant | LabelVariant[];\n};\n\n/**\n * Displays a label component value with a label\n */\nexport const ValueLabel = ({\n label,\n value: valueProp,\n placeholder = DefaultPlaceholder,\n variant,\n}: ValueLabelProps) => {\n const id = getValueContentLabelId(label);\n let value;\n\n Array.isArray(valueProp)\n ? (value = valueProp.map((value, i) => (\n <Label\n text={value.toString() || placeholder}\n variant={Array.isArray(variant) ? variant[i] : variant}\n key={i}\n />\n )))\n : (value = (\n <Label\n text={valueProp?.toString() || placeholder}\n variant={Array.isArray(variant) ? variant[0] : variant}\n />\n ));\n\n return (\n <ValueContent label={label}>\n <Grid container gap={1} aria-labelledby={id}>\n {value}\n </Grid>\n </ValueContent>\n );\n};\n"],"names":["getValueContentLabelId","label","replace","ValueContent","hideLabel","tooltip","tooltipEnterDelay","children","dense","sx","typography","useTheme","id","_jsxs","Box","width","lineHeight","undefined","_jsx","Typography","variant","role","pxToRem","jsx","Tooltip","title","placement","enterDelay","Label","text","textTransform","palette","backgroundColor","default","mode","grey","primary","light","secondary","info","warning","error","success","textColor","getContrastText","contrastText","height","minWidth","display","justifyContent","alignItems","bgcolor","color","fontSize","caption","fontWeight","fontWeightBold","whiteSpace","borderRadius","py","px","cursor","value","valueProp","placeholder","Array","isArray","map","i","toString","Grid","container","gap"],"mappings":"4mBAmCO,MC9BMA,EAA0BC,GACrC,SAASA,EAAMC,QAAQ,KAAM,OA2ClBC,EAAe,EAC1BF,QACAG,YACAC,UACAC,oBAAoB,IACpBC,WACAC,QACAC,SAEA,MAAMC,WAAEA,GAAeC,EAAAA,WACjBC,EAAKZ,EAAuBC,GAElC,OACEY,OAACC,EAAAA,QAAG,CAACC,MAAO,EAAGC,WAAYR,EAAQ,OAAIS,EAAWR,GAAIA,EAAEF,SAAA,EACpDH,GACAc,EAAAA,IAACC,EAAU,SACTC,QAASZ,EAAQ,UAAY,YAC7Ba,KAAK,QACLT,GAAIA,EACJI,WAAYR,EAAQE,EAAWY,QAAQ,SAAML,EAE5CV,SAAAN,IAGJI,EACCa,EAAAK,IAACC,EAAO,QAAC,CAAAC,MAAOpB,EAASqB,UAAU,MAAMC,WAAYrB,WAClDC,IACO,IAKd,ECzCSqB,EAAQ,EACnBC,OACAT,UAAU,UACVU,gBAAgB,aAChBrB,SAEA,MAAMsB,QAAEA,EAAOrB,WAAEA,GAAeC,EAAQA,WAElCqB,EAAgD,CACpDC,QAA0B,UAAjBF,EAAQG,KAAmBH,EAAQI,KAAK,KAAOJ,EAAQI,KAAK,KACrEC,QAASL,EAAQK,QAAQC,MACzBC,UAAWP,EAAQO,UAAUD,MAC7BE,KAAMR,EAAQQ,KAAKF,MACnBG,QAAST,EAAQS,QAAQH,MACzBI,MAAOV,EAAQU,MAAMJ,MACrBK,QAASX,EAAQW,QAAQL,OAGrBM,EAA0C,CAC9CV,QAASF,EAAQa,gBAAgBZ,EAAgBC,SACjDG,QAASL,EAAQK,QAAQS,aACzBP,UAAWP,EAAQO,UAAUO,aAC7BN,KAAMR,EAAQQ,KAAKM,aACnBL,QAAST,EAAQS,QAAQK,aACzBJ,MAAOV,EAAQU,MAAMI,aACrBH,QAASX,EAAQW,QAAQG,cAG3B,OACE3B,MAACJ,EAAG,QAAA,CACFgC,OAAQ,GACRC,SAAU,GACVC,QAAQ,cACRC,eAAe,SACfC,WAAW,SACXC,QAASnB,EAAgBZ,GACzBgC,MAAOT,EAAUvB,GACjBiC,SAAU3C,EAAW4C,QAAQD,SAC7BE,WAAY7C,EAAW8C,eACvBxC,WAAY,EACZc,cAAeA,EACf2B,WAAW,SACXC,aAAc,EACdrC,KAAK,QAAO,aACA,GAAGQ,KAAQT,UACvBuC,GAAI,EACJC,GAAI,EACJnD,GAAI,CAAEoD,OAAQ,aAAcpD,GAE3BF,SAAAsB,GAEH,qBC/EsB,EACxB5B,QACA6D,MAAOC,EACPC,cHoBgC,IGnBhC5C,cAEA,MAAMR,EAAKZ,EAAuBC,GAClC,IAAI6D,EAiBJ,OAdKA,EADLG,MAAMC,QAAQH,GACDA,EAAUI,KAAI,CAACL,EAAOM,IAC7BlD,EAAAK,IAACK,EAAK,CACJC,KAAMiC,EAAMO,YAAcL,EAC1B5C,QAAS6C,MAAMC,QAAQ9C,GAAWA,EAAQgD,GAAKhD,GAC1CgD,KAIPlD,MAACU,EAAK,CACJC,KAAMkC,GAAWM,YAAcL,EAC/B5C,QAAS6C,MAAMC,QAAQ9C,GAAWA,EAAQ,GAAKA,IAKrDF,MAACf,EAAY,CAACF,MAAOA,EACnBM,SAAAW,EAAAA,IAACoD,EAAAA,QAAI,CAACC,WAAU,EAAAC,IAAK,EAAoB,kBAAA5D,WACtCkD,KAGL"}
@@ -1,2 +1,2 @@
1
- import e from"react";import"@mui/icons-material/Check";import"@mui/icons-material/Clear";import{useTheme as t,Box as r,Typography as a,Tooltip as i,Grid as n}from"@mui/material";import"@mui/icons-material/Edit";const l=e=>`label-${e.replace(/ /g,"-")}`,o=({label:n,hideLabel:o,tooltip:c,tooltipEnterDelay:s=2e3,children:m,dense:p,sx:g})=>{const{typography:y}=t(),d=l(n);return e.createElement(r,{width:1,lineHeight:p?0:void 0,sx:g},!o&&e.createElement(a,{variant:p?"caption":"subtitle2",role:"label",id:d,lineHeight:p?y.pxToRem(15):void 0},n),c?e.createElement(i,{title:c,placement:"top",enterDelay:s},m):m)},c=({text:a,variant:i="default",textTransform:n="capitalize",sx:l})=>{const{palette:o,typography:c}=t(),s={default:"light"===o.mode?o.grey[100]:o.grey[900],primary:o.primary.light,secondary:o.secondary.light,info:o.info.light,warning:o.warning.light,error:o.error.light,success:o.success.light},m={default:o.getContrastText(s.default),primary:o.primary.contrastText,secondary:o.secondary.contrastText,info:o.info.contrastText,warning:o.warning.contrastText,error:o.error.contrastText,success:o.success.contrastText};return e.createElement(r,{height:24,minWidth:22,display:"inline-flex",justifyContent:"center",alignItems:"center",bgcolor:s[i],color:m[i],fontSize:c.caption.fontSize,fontWeight:c.fontWeightBold,lineHeight:0,textTransform:n,whiteSpace:"nowrap",borderRadius:2,role:"label","aria-label":`${a} ${i} label`,py:0,px:1,sx:{cursor:"default",...l}},a)},s=({label:t,value:r,placeholder:a="-",variant:i})=>{const s=l(t);let m;return m=Array.isArray(r)?r.map(((t,r)=>e.createElement(c,{text:t.toString()||a,variant:Array.isArray(i)?i[r]:i,key:r}))):e.createElement(c,{text:r?.toString()||a,variant:Array.isArray(i)?i[0]:i}),e.createElement(o,{label:t},e.createElement(n,{container:!0,gap:1,"aria-labelledby":s},m))};export{s as ValueLabel};
1
+ import{jsxs as t,jsx as r}from"react/jsx-runtime";import"react";import"@mui/icons-material/Check";import"@mui/icons-material/Clear";import{useTheme as e}from"@mui/material/styles";import"@mui/material/Button";import"@mui/material/IconButton";import"@mui/material/InputAdornment";import"@mui/icons-material/Edit";import i from"@mui/material/Box";import a from"@mui/material/Tooltip";import o from"@mui/material/Typography";import n from"@mui/material/Grid";const l=t=>`label-${t.replace(/ /g,"-")}`,m=({label:n,hideLabel:m,tooltip:c,tooltipEnterDelay:s=2e3,children:p,dense:d,sx:u})=>{const{typography:h}=e(),g=l(n);return t(i,{width:1,lineHeight:d?0:void 0,sx:u,children:[!m&&r(o,{variant:d?"caption":"subtitle2",role:"label",id:g,lineHeight:d?h.pxToRem(15):void 0,children:n}),c?r(a,{title:c,placement:"top",enterDelay:s,children:p}):p]})},c=({text:t,variant:a="default",textTransform:o="capitalize",sx:n})=>{const{palette:l,typography:m}=e(),c={default:"light"===l.mode?l.grey[100]:l.grey[900],primary:l.primary.light,secondary:l.secondary.light,info:l.info.light,warning:l.warning.light,error:l.error.light,success:l.success.light},s={default:l.getContrastText(c.default),primary:l.primary.contrastText,secondary:l.secondary.contrastText,info:l.info.contrastText,warning:l.warning.contrastText,error:l.error.contrastText,success:l.success.contrastText};return r(i,{height:24,minWidth:22,display:"inline-flex",justifyContent:"center",alignItems:"center",bgcolor:c[a],color:s[a],fontSize:m.caption.fontSize,fontWeight:m.fontWeightBold,lineHeight:0,textTransform:o,whiteSpace:"nowrap",borderRadius:2,role:"label","aria-label":`${t} ${a} label`,py:0,px:1,sx:{cursor:"default",...n},children:t})},s=({label:t,value:e,placeholder:i="-",variant:a})=>{const o=l(t);let s;return s=Array.isArray(e)?e.map(((t,e)=>r(c,{text:t.toString()||i,variant:Array.isArray(a)?a[e]:a},e))):r(c,{text:e?.toString()||i,variant:Array.isArray(a)?a[0]:a}),r(m,{label:t,children:r(n,{container:!0,gap:1,"aria-labelledby":o,children:s})})};export{s as ValueLabel};
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/value-base/value-displays.types.ts","../../src/value-content/value-content.tsx","../../src/label/label.tsx","../../src/value-label/value-label.tsx"],"sourcesContent":["export interface BaseValueProps<T> {\n /**\n * Name of the displayed value\n */\n label: string;\n\n /**\n * Value displayed\n */\n value?: T;\n\n /**\n * String rendered if value is undefined\n */\n placeholder?: string;\n\n /**\n * The value has to be displayed as compact or not.\n * False by default\n */\n dense?: boolean;\n}\n\nexport interface EditableValueProps<T> {\n /**\n * This field can be edited or not\n */\n editable?: boolean;\n\n /**\n * Callback executed when the value is edited\n */\n onEdit?: (value?: T) => void;\n}\n\nexport const DefaultPlaceholder = \"-\";\n","import { Box, SxProps, Theme, Tooltip, Typography, useTheme } from \"@mui/material\";\nimport React from \"react\";\n\nexport const getValueContentLabelId = (label: string): string =>\n `label-${label.replace(/ /g, \"-\")}`;\n\nexport interface ValueContentProps {\n /**\n * Name of the displayed value\n */\n label: string;\n\n /**\n * If true, the label will not be shown\n */\n hideLabel?: boolean;\n\n /**\n * If defined, a tooltip is going to be added arround the children;\n */\n tooltip?: string;\n\n /**\n * Timeout before the tooltip appears when the user hovers the value\n */\n tooltipEnterDelay?: number;\n\n /**\n * Component that's going to be renderd under the label\n */\n children: React.ReactElement<any, any>;\n\n /**\n * The value has to be displayed as compact or not.\n * False by default\n */\n dense?: boolean;\n\n /**\n * Custom styles for the root component\n */\n sx?: SxProps<Theme>;\n}\n\n/**\n * Displays a string value with a label\n */\nexport const ValueContent = ({\n label,\n hideLabel,\n tooltip,\n tooltipEnterDelay = 2000,\n children,\n dense,\n sx,\n}: ValueContentProps) => {\n const { typography } = useTheme();\n const id = getValueContentLabelId(label);\n\n return (\n <Box width={1} lineHeight={dense ? 0 : undefined} sx={sx}>\n {!hideLabel && (\n <Typography\n variant={dense ? \"caption\" : \"subtitle2\"}\n role=\"label\"\n id={id}\n lineHeight={dense ? typography.pxToRem(15) : undefined}\n >\n {label}\n </Typography>\n )}\n {tooltip ? (\n <Tooltip title={tooltip} placement=\"top\" enterDelay={tooltipEnterDelay}>\n {children}\n </Tooltip>\n ) : (\n children\n )}\n </Box>\n );\n};\n","import { Box, SxProps, Theme, useTheme } from \"@mui/material\";\nimport React from \"react\";\n\nexport type LabelVariant =\n | \"primary\"\n | \"secondary\"\n | \"default\"\n | \"info\"\n | \"warning\"\n | \"error\"\n | \"success\";\n\nexport const labelClasses = {\n root: \"RdsLabel-root\",\n};\n\nexport interface LabelProps {\n /**\n * Content of the component\n */\n text: string;\n /**\n * Color palette used to draw the component\n */\n variant?: LabelVariant;\n\n /**\n * Custom styles\n */\n sx?: SxProps<Theme>;\n\n /**\n * Show the text as uppercase\n */\n textTransform?: \"none\" | \"capitalize\" | \"uppercase\";\n}\n\n/**\n * Compact element to represent a text\n */\nexport const Label = ({\n text,\n variant = \"default\",\n textTransform = \"capitalize\",\n sx,\n}: LabelProps) => {\n const { palette, typography } = useTheme();\n\n const backgroundColor: Record<LabelVariant, string> = {\n default: palette.mode === \"light\" ? palette.grey[100] : palette.grey[900],\n primary: palette.primary.light,\n secondary: palette.secondary.light,\n info: palette.info.light,\n warning: palette.warning.light,\n error: palette.error.light,\n success: palette.success.light,\n };\n\n const textColor: Record<LabelVariant, string> = {\n default: palette.getContrastText(backgroundColor.default),\n primary: palette.primary.contrastText,\n secondary: palette.secondary.contrastText,\n info: palette.info.contrastText,\n warning: palette.warning.contrastText,\n error: palette.error.contrastText,\n success: palette.success.contrastText,\n };\n\n return (\n <Box\n height={24}\n minWidth={22}\n display=\"inline-flex\"\n justifyContent=\"center\"\n alignItems=\"center\"\n bgcolor={backgroundColor[variant]}\n color={textColor[variant]}\n fontSize={typography.caption.fontSize}\n fontWeight={typography.fontWeightBold}\n lineHeight={0}\n textTransform={textTransform}\n whiteSpace=\"nowrap\"\n borderRadius={2}\n role=\"label\"\n aria-label={`${text} ${variant} label`}\n py={0}\n px={1}\n sx={{ cursor: \"default\", ...sx }}\n >\n {text}\n </Box>\n );\n};\n","import React from \"react\";\nimport { BaseValueProps, DefaultPlaceholder } from \"../value-base\";\nimport { getValueContentLabelId, ValueContent } from \"../value-content\";\nimport { Label, LabelVariant } from \"~/label\";\nimport { Grid } from \"@mui/material\";\n\nexport type ValueLabelProps = BaseValueProps<string | number | string[] | number[]> & {\n variant: LabelVariant | LabelVariant[];\n};\n\n/**\n * Displays a label component value with a label\n */\nexport const ValueLabel = ({\n label,\n value: valueProp,\n placeholder = DefaultPlaceholder,\n variant,\n}: ValueLabelProps) => {\n const id = getValueContentLabelId(label);\n let value;\n\n Array.isArray(valueProp)\n ? (value = valueProp.map((value, i) => (\n <Label\n text={value.toString() || placeholder}\n variant={Array.isArray(variant) ? variant[i] : variant}\n key={i}\n />\n )))\n : (value = (\n <Label\n text={valueProp?.toString() || placeholder}\n variant={Array.isArray(variant) ? variant[0] : variant}\n />\n ));\n\n return (\n <ValueContent label={label}>\n <Grid container gap={1} aria-labelledby={id}>\n {value}\n </Grid>\n </ValueContent>\n );\n};\n"],"names":["getValueContentLabelId","label","replace","ValueContent","hideLabel","tooltip","tooltipEnterDelay","children","dense","sx","typography","useTheme","id","React","Box","width","lineHeight","undefined","createElement","Typography","variant","role","pxToRem","Tooltip","title","placement","enterDelay","Label","text","textTransform","palette","backgroundColor","default","mode","grey","primary","light","secondary","info","warning","error","success","textColor","getContrastText","contrastText","height","minWidth","display","justifyContent","alignItems","bgcolor","color","fontSize","caption","fontWeight","fontWeightBold","whiteSpace","borderRadius","py","px","cursor","ValueLabel","value","valueProp","placeholder","Array","isArray","map","i","toString","key","Grid","container","gap"],"mappings":"mNAmCO,MChCMA,EAA0BC,GACrC,SAASA,EAAMC,QAAQ,KAAM,OA2ClBC,EAAe,EAC1BF,QACAG,YACAC,UACAC,oBAAoB,IACpBC,WACAC,QACAC,SAEA,MAAMC,WAAEA,GAAeC,IACjBC,EAAKZ,EAAuBC,GAElC,OACEY,gBAACC,EAAG,CAACC,MAAO,EAAGC,WAAYR,EAAQ,OAAIS,EAAWR,GAAIA,IAClDL,GACAS,EAAAK,cAACC,EACC,CAAAC,QAASZ,EAAQ,UAAY,YAC7Ba,KAAK,QACLT,GAAIA,EACJI,WAAYR,EAAQE,EAAWY,QAAQ,SAAML,GAE5ChB,GAGJI,EACCQ,EAACK,cAAAK,EAAQ,CAAAC,MAAOnB,EAASoB,UAAU,MAAMC,WAAYpB,GAClDC,GAGH,EAGJ,ECvCSoB,EAAQ,EACnBC,OACAR,UAAU,UACVS,gBAAgB,aAChBpB,SAEA,MAAMqB,QAAEA,EAAOpB,WAAEA,GAAeC,IAE1BoB,EAAgD,CACpDC,QAA0B,UAAjBF,EAAQG,KAAmBH,EAAQI,KAAK,KAAOJ,EAAQI,KAAK,KACrEC,QAASL,EAAQK,QAAQC,MACzBC,UAAWP,EAAQO,UAAUD,MAC7BE,KAAMR,EAAQQ,KAAKF,MACnBG,QAAST,EAAQS,QAAQH,MACzBI,MAAOV,EAAQU,MAAMJ,MACrBK,QAASX,EAAQW,QAAQL,OAGrBM,EAA0C,CAC9CV,QAASF,EAAQa,gBAAgBZ,EAAgBC,SACjDG,QAASL,EAAQK,QAAQS,aACzBP,UAAWP,EAAQO,UAAUO,aAC7BN,KAAMR,EAAQQ,KAAKM,aACnBL,QAAST,EAAQS,QAAQK,aACzBJ,MAAOV,EAAQU,MAAMI,aACrBH,QAASX,EAAQW,QAAQG,cAG3B,OACE/B,gBAACC,EAAG,CACF+B,OAAQ,GACRC,SAAU,GACVC,QAAQ,cACRC,eAAe,SACfC,WAAW,SACXC,QAASnB,EAAgBX,GACzB+B,MAAOT,EAAUtB,GACjBgC,SAAU1C,EAAW2C,QAAQD,SAC7BE,WAAY5C,EAAW6C,eACvBvC,WAAY,EACZa,cAAeA,EACf2B,WAAW,SACXC,aAAc,EACdpC,KAAK,QAAO,aACA,GAAGO,KAAQR,UACvBsC,GAAI,EACJC,GAAI,EACJlD,GAAI,CAAEmD,OAAQ,aAAcnD,IAE3BmB,EAEH,EC9ESiC,EAAa,EACxB5D,QACA6D,MAAOC,EACPC,cHmBgC,IGlBhC5C,cAEA,MAAMR,EAAKZ,EAAuBC,GAClC,IAAI6D,EAiBJ,OAdKA,EADLG,MAAMC,QAAQH,GACDA,EAAUI,KAAI,CAACL,EAAOM,IAC7BvD,EAAAK,cAACS,EAAK,CACJC,KAAMkC,EAAMO,YAAcL,EAC1B5C,QAAS6C,MAAMC,QAAQ9C,GAAWA,EAAQgD,GAAKhD,EAC/CkD,IAAKF,MAIPvD,gBAACc,EAAK,CACJC,KAAMmC,GAAWM,YAAcL,EAC/B5C,QAAS6C,MAAMC,QAAQ9C,GAAWA,EAAQ,GAAKA,IAKrDP,EAACK,cAAAf,EAAa,CAAAF,MAAOA,GACnBY,EAAAK,cAACqD,EAAI,CAACC,WAAS,EAACC,IAAK,EAAoB,kBAAA7D,GACtCkD,GAGL"}
1
+ {"version":3,"file":"index.js","sources":["../../src/value-base/value-displays.types.ts","../../src/value-content/value-content.tsx","../../src/label/label.tsx","../../src/value-label/value-label.tsx"],"sourcesContent":["export interface BaseValueProps<T> {\n /**\n * Name of the displayed value\n */\n label: string;\n\n /**\n * Value displayed\n */\n value?: T;\n\n /**\n * String rendered if value is undefined\n */\n placeholder?: string;\n\n /**\n * The value has to be displayed as compact or not.\n * False by default\n */\n dense?: boolean;\n}\n\nexport interface EditableValueProps<T> {\n /**\n * This field can be edited or not\n */\n editable?: boolean;\n\n /**\n * Callback executed when the value is edited\n */\n onEdit?: (value?: T) => void;\n}\n\nexport const DefaultPlaceholder = \"-\";\n","import { SxProps, Theme, useTheme } from \"@mui/material/styles\";\nimport Box from \"@mui/material/Box\";\nimport Tooltip from \"@mui/material/Tooltip\";\nimport Typography from \"@mui/material/Typography\";\n\nexport const getValueContentLabelId = (label: string): string =>\n `label-${label.replace(/ /g, \"-\")}`;\n\nexport interface ValueContentProps {\n /**\n * Name of the displayed value\n */\n label: string;\n\n /**\n * If true, the label will not be shown\n */\n hideLabel?: boolean;\n\n /**\n * If defined, a tooltip is going to be added arround the children;\n */\n tooltip?: string;\n\n /**\n * Timeout before the tooltip appears when the user hovers the value\n */\n tooltipEnterDelay?: number;\n\n /**\n * Component that's going to be renderd under the label\n */\n children: React.ReactElement<any, any>;\n\n /**\n * The value has to be displayed as compact or not.\n * False by default\n */\n dense?: boolean;\n\n /**\n * Custom styles for the root component\n */\n sx?: SxProps<Theme>;\n}\n\n/**\n * Displays a string value with a label\n */\nexport const ValueContent = ({\n label,\n hideLabel,\n tooltip,\n tooltipEnterDelay = 2000,\n children,\n dense,\n sx,\n}: ValueContentProps) => {\n const { typography } = useTheme();\n const id = getValueContentLabelId(label);\n\n return (\n <Box width={1} lineHeight={dense ? 0 : undefined} sx={sx}>\n {!hideLabel && (\n <Typography\n variant={dense ? \"caption\" : \"subtitle2\"}\n role=\"label\"\n id={id}\n lineHeight={dense ? typography.pxToRem(15) : undefined}\n >\n {label}\n </Typography>\n )}\n {tooltip ? (\n <Tooltip title={tooltip} placement=\"top\" enterDelay={tooltipEnterDelay}>\n {children}\n </Tooltip>\n ) : (\n children\n )}\n </Box>\n );\n};\n","import Box from \"@mui/material/Box\";\nimport { SxProps, Theme, useTheme } from \"@mui/material/styles\";\n\nexport type LabelVariant =\n | \"primary\"\n | \"secondary\"\n | \"default\"\n | \"info\"\n | \"warning\"\n | \"error\"\n | \"success\";\n\nexport const labelClasses = {\n root: \"RdsLabel-root\",\n};\n\nexport interface LabelProps {\n /**\n * Content of the component\n */\n text: string;\n /**\n * Color palette used to draw the component\n */\n variant?: LabelVariant;\n\n /**\n * Custom styles\n */\n sx?: SxProps<Theme>;\n\n /**\n * Show the text as uppercase\n */\n textTransform?: \"none\" | \"capitalize\" | \"uppercase\";\n}\n\n/**\n * Compact element to represent a text\n */\nexport const Label = ({\n text,\n variant = \"default\",\n textTransform = \"capitalize\",\n sx,\n}: LabelProps) => {\n const { palette, typography } = useTheme();\n\n const backgroundColor: Record<LabelVariant, string> = {\n default: palette.mode === \"light\" ? palette.grey[100] : palette.grey[900],\n primary: palette.primary.light,\n secondary: palette.secondary.light,\n info: palette.info.light,\n warning: palette.warning.light,\n error: palette.error.light,\n success: palette.success.light,\n };\n\n const textColor: Record<LabelVariant, string> = {\n default: palette.getContrastText(backgroundColor.default),\n primary: palette.primary.contrastText,\n secondary: palette.secondary.contrastText,\n info: palette.info.contrastText,\n warning: palette.warning.contrastText,\n error: palette.error.contrastText,\n success: palette.success.contrastText,\n };\n\n return (\n <Box\n height={24}\n minWidth={22}\n display=\"inline-flex\"\n justifyContent=\"center\"\n alignItems=\"center\"\n bgcolor={backgroundColor[variant]}\n color={textColor[variant]}\n fontSize={typography.caption.fontSize}\n fontWeight={typography.fontWeightBold}\n lineHeight={0}\n textTransform={textTransform}\n whiteSpace=\"nowrap\"\n borderRadius={2}\n role=\"label\"\n aria-label={`${text} ${variant} label`}\n py={0}\n px={1}\n sx={{ cursor: \"default\", ...sx }}\n >\n {text}\n </Box>\n );\n};\n","import { BaseValueProps, DefaultPlaceholder } from \"../value-base\";\nimport { getValueContentLabelId, ValueContent } from \"../value-content\";\nimport { Label, LabelVariant } from \"../label\";\nimport Grid from \"@mui/material/Grid\";\n\nexport type ValueLabelProps = BaseValueProps<string | number | string[] | number[]> & {\n variant: LabelVariant | LabelVariant[];\n};\n\n/**\n * Displays a label component value with a label\n */\nexport const ValueLabel = ({\n label,\n value: valueProp,\n placeholder = DefaultPlaceholder,\n variant,\n}: ValueLabelProps) => {\n const id = getValueContentLabelId(label);\n let value;\n\n Array.isArray(valueProp)\n ? (value = valueProp.map((value, i) => (\n <Label\n text={value.toString() || placeholder}\n variant={Array.isArray(variant) ? variant[i] : variant}\n key={i}\n />\n )))\n : (value = (\n <Label\n text={valueProp?.toString() || placeholder}\n variant={Array.isArray(variant) ? variant[0] : variant}\n />\n ));\n\n return (\n <ValueContent label={label}>\n <Grid container gap={1} aria-labelledby={id}>\n {value}\n </Grid>\n </ValueContent>\n );\n};\n"],"names":["getValueContentLabelId","label","replace","ValueContent","hideLabel","tooltip","tooltipEnterDelay","children","dense","sx","typography","useTheme","id","_jsxs","Box","width","lineHeight","undefined","_jsx","Typography","variant","role","pxToRem","Tooltip","title","placement","enterDelay","Label","text","textTransform","palette","backgroundColor","default","mode","grey","primary","light","secondary","info","warning","error","success","textColor","getContrastText","contrastText","height","minWidth","display","justifyContent","alignItems","bgcolor","color","fontSize","caption","fontWeight","fontWeightBold","whiteSpace","borderRadius","py","px","cursor","ValueLabel","value","valueProp","placeholder","Array","isArray","map","i","toString","Grid","container","gap"],"mappings":"wcAmCO,MC9BMA,EAA0BC,GACrC,SAASA,EAAMC,QAAQ,KAAM,OA2ClBC,EAAe,EAC1BF,QACAG,YACAC,UACAC,oBAAoB,IACpBC,WACAC,QACAC,SAEA,MAAMC,WAAEA,GAAeC,IACjBC,EAAKZ,EAAuBC,GAElC,OACEY,EAACC,EAAG,CAACC,MAAO,EAAGC,WAAYR,EAAQ,OAAIS,EAAWR,GAAIA,EAAEF,SAAA,EACpDH,GACAc,EAACC,GACCC,QAASZ,EAAQ,UAAY,YAC7Ba,KAAK,QACLT,GAAIA,EACJI,WAAYR,EAAQE,EAAWY,QAAQ,SAAML,EAE5CV,SAAAN,IAGJI,EACCa,EAACK,EAAQ,CAAAC,MAAOnB,EAASoB,UAAU,MAAMC,WAAYpB,WAClDC,IACO,IAKd,ECzCSoB,EAAQ,EACnBC,OACAR,UAAU,UACVS,gBAAgB,aAChBpB,SAEA,MAAMqB,QAAEA,EAAOpB,WAAEA,GAAeC,IAE1BoB,EAAgD,CACpDC,QAA0B,UAAjBF,EAAQG,KAAmBH,EAAQI,KAAK,KAAOJ,EAAQI,KAAK,KACrEC,QAASL,EAAQK,QAAQC,MACzBC,UAAWP,EAAQO,UAAUD,MAC7BE,KAAMR,EAAQQ,KAAKF,MACnBG,QAAST,EAAQS,QAAQH,MACzBI,MAAOV,EAAQU,MAAMJ,MACrBK,QAASX,EAAQW,QAAQL,OAGrBM,EAA0C,CAC9CV,QAASF,EAAQa,gBAAgBZ,EAAgBC,SACjDG,QAASL,EAAQK,QAAQS,aACzBP,UAAWP,EAAQO,UAAUO,aAC7BN,KAAMR,EAAQQ,KAAKM,aACnBL,QAAST,EAAQS,QAAQK,aACzBJ,MAAOV,EAAQU,MAAMI,aACrBH,QAASX,EAAQW,QAAQG,cAG3B,OACE1B,EAACJ,EAAG,CACF+B,OAAQ,GACRC,SAAU,GACVC,QAAQ,cACRC,eAAe,SACfC,WAAW,SACXC,QAASnB,EAAgBX,GACzB+B,MAAOT,EAAUtB,GACjBgC,SAAU1C,EAAW2C,QAAQD,SAC7BE,WAAY5C,EAAW6C,eACvBvC,WAAY,EACZa,cAAeA,EACf2B,WAAW,SACXC,aAAc,EACdpC,KAAK,QAAO,aACA,GAAGO,KAAQR,UACvBsC,GAAI,EACJC,GAAI,EACJlD,GAAI,CAAEmD,OAAQ,aAAcnD,GAE3BF,SAAAqB,GAEH,EC/ESiC,EAAa,EACxB5D,QACA6D,MAAOC,EACPC,cHoBgC,IGnBhC5C,cAEA,MAAMR,EAAKZ,EAAuBC,GAClC,IAAI6D,EAiBJ,OAdKA,EADLG,MAAMC,QAAQH,GACDA,EAAUI,KAAI,CAACL,EAAOM,IAC7BlD,EAACS,EAAK,CACJC,KAAMkC,EAAMO,YAAcL,EAC1B5C,QAAS6C,MAAMC,QAAQ9C,GAAWA,EAAQgD,GAAKhD,GAC1CgD,KAIPlD,EAACS,EAAK,CACJC,KAAMmC,GAAWM,YAAcL,EAC/B5C,QAAS6C,MAAMC,QAAQ9C,GAAWA,EAAQ,GAAKA,IAKrDF,EAACf,EAAY,CAACF,MAAOA,EACnBM,SAAAW,EAACoD,EAAI,CAACC,WAAU,EAAAC,IAAK,EAAoB,kBAAA5D,WACtCkD,KAGL"}
@@ -1,5 +1,5 @@
1
1
  import { BaseValueProps } from "../value-base";
2
- import { LabelVariant } from "~/label";
2
+ import { LabelVariant } from "../label";
3
3
  export type ValueLabelProps = BaseValueProps<string | number | string[] | number[]> & {
4
4
  variant: LabelVariant | LabelVariant[];
5
5
  };