@macive/ui 0.0.13 → 0.0.15

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 (273) hide show
  1. package/dist/locales/da.json +1 -1
  2. package/dist/locales/de.json +1 -1
  3. package/dist/locales/en.json +1 -1
  4. package/dist/locales/es.json +1 -1
  5. package/dist/locales/fi.json +1 -1
  6. package/dist/locales/fr.json +1 -1
  7. package/dist/locales/it.json +1 -1
  8. package/dist/locales/ja.json +1 -1
  9. package/dist/locales/ko.json +1 -1
  10. package/dist/locales/nb.json +1 -1
  11. package/dist/locales/nl.json +1 -1
  12. package/dist/locales/pl.json +1 -1
  13. package/dist/locales/pt-BR.json +1 -1
  14. package/dist/locales/pt-PT.json +1 -1
  15. package/dist/locales/sv.json +1 -1
  16. package/dist/locales/th.json +1 -1
  17. package/dist/locales/tr.json +1 -1
  18. package/dist/locales/vi.json +1 -1
  19. package/dist/locales/zh-CN.json +1 -1
  20. package/dist/locales/zh-TW.json +1 -1
  21. package/dist/scripts/build-scss.js +27 -3
  22. package/dist/src/components/AlphaTabs/AlphaTabs.classnames.js +7 -7
  23. package/dist/src/components/AlphaTabs/utilities.js +7 -3
  24. package/dist/src/components/AppProvider/AppProvider.js +8 -2
  25. package/dist/src/components/Box/Box.js +2 -1
  26. package/dist/src/components/BulkActions/BulkActions.classnames.js +6 -6
  27. package/dist/src/components/ButtonGroup/ButtonGroup.classnames.js +2 -2
  28. package/dist/src/components/Checkbox/Checkbox.classnames.js +1 -1
  29. package/dist/src/components/Checkbox/Checkbox.js +4 -5
  30. package/dist/src/components/CheckboxTree/CheckboxList.js +29 -30
  31. package/dist/src/components/CheckboxTree/Tree.js +69 -28
  32. package/dist/src/components/CheckboxTree/updateItemStates.js +8 -8
  33. package/dist/src/components/Connected/Connected.classnames.js +5 -5
  34. package/dist/src/components/DataTable/DataTable.classnames.js +17 -17
  35. package/dist/src/components/DatePicker/DatePicker.classnames.js +28 -0
  36. package/dist/src/components/DatePicker/DatePicker.js +138 -0
  37. package/dist/src/components/DatePicker/components/Day/Day.js +52 -0
  38. package/dist/src/components/DatePicker/components/Day/index.js +17 -0
  39. package/dist/src/components/DatePicker/components/Month/Month.js +82 -0
  40. package/dist/src/components/DatePicker/components/Month/index.js +17 -0
  41. package/dist/src/components/DatePicker/components/Weekday/Weekday.js +14 -0
  42. package/dist/src/components/DatePicker/components/Weekday/index.js +17 -0
  43. package/dist/src/components/DatePicker/components/index.js +19 -0
  44. package/dist/src/components/DatePicker/index.js +17 -0
  45. package/dist/src/components/DatePicker/utilities.js +51 -0
  46. package/dist/src/components/FlexBox.js +30 -15
  47. package/dist/src/components/Frame/Frame.classnames.js +5 -5
  48. package/dist/src/components/Frame/Frame.js +2 -11
  49. package/dist/src/components/Frame/components/ContextualSaveBar/ContextualSaveBar.classnames.js +1 -2
  50. package/dist/src/components/Frame/components/ContextualSaveBar/ContextualSaveBar.js +6 -31
  51. package/dist/src/components/Frame/components/ToastManager/ToastManager.classnames.js +3 -3
  52. package/dist/src/components/Grid/components/Cell/Cell.classnames.js +42 -42
  53. package/dist/src/components/Icon/Icon.js +57 -39
  54. package/dist/src/components/Icons/MaArrowRight.js +5 -0
  55. package/dist/src/components/Icons/MaCheck.js +2 -8
  56. package/dist/src/components/Icons/MaClose.js +2 -8
  57. package/dist/src/components/Icons/MaCopyLink.js +2 -8
  58. package/dist/src/components/Icons/MaDown.js +2 -8
  59. package/dist/src/components/Icons/MaDragGrid.js +5 -0
  60. package/dist/src/components/Icons/MaEyes.js +2 -8
  61. package/dist/src/components/Icons/MaLeft.js +2 -8
  62. package/dist/src/components/Icons/MaMinus.js +2 -8
  63. package/dist/src/components/Icons/MaPlus.js +2 -8
  64. package/dist/src/components/Icons/MaRight.js +2 -8
  65. package/dist/src/components/Icons/MaSelect.js +5 -0
  66. package/dist/src/components/Icons/MaUp.js +2 -8
  67. package/dist/src/components/Icons/index.js +9 -6
  68. package/dist/src/components/Image/Image.js +89 -22
  69. package/dist/src/components/IndexFilters/components/SortButton/components/DirectionButton/DirectionButton.classnames.js +1 -1
  70. package/dist/src/components/IndexTable/IndexTable.classnames.js +36 -36
  71. package/dist/src/components/Input/Input.classnames.js +7 -7
  72. package/dist/src/components/Input/Input.js +3 -1
  73. package/dist/src/components/Labelled/Labelled.classnames.js +1 -0
  74. package/dist/src/components/Labelled/Labelled.js +1 -2
  75. package/dist/src/components/Layout/Layout.classnames.js +4 -4
  76. package/dist/src/components/LegacyCard/LegacyCard.classnames.js +4 -4
  77. package/dist/src/components/LegacyStack/LegacyStack.classnames.js +1 -1
  78. package/dist/src/components/Navigation/Navigation.classnames.js +11 -11
  79. package/dist/src/components/OptionList/components/Checkbox/Checkbox.classnames.js +1 -1
  80. package/dist/src/components/PageActions/PageActions.js +2 -1
  81. package/dist/src/components/Pagination/V1/Page.js +6 -1
  82. package/dist/src/components/Pagination/V1/PaginationV1.classnames.js +12 -0
  83. package/dist/src/components/Pagination/V1/pagination.js +7 -1
  84. package/dist/src/components/Popover/Popover.classnames.js +8 -8
  85. package/dist/src/components/Popover/components/PopoverOverlay/PopoverOverlay.js +1 -3
  86. package/dist/src/components/RangeSlider/components/DualThumb/DualThumb.classnames.js +1 -1
  87. package/dist/src/components/ResourceList/ResourceList.classnames.js +8 -8
  88. package/dist/src/components/SelectAllActions/SelectAllActions.classnames.js +4 -4
  89. package/dist/src/components/SkeletonTabs/SkeletonTabs.classnames.js +2 -2
  90. package/dist/src/components/Stack/Stack-old.js +21 -0
  91. package/dist/src/components/Stack/Stack.classnames.js +18 -18
  92. package/dist/src/components/Stack/Stack.js +43 -15
  93. package/dist/src/components/Switch/Switch.classnames.js +4 -4
  94. package/dist/src/components/Tabs/Tabs.classnames.js +3 -3
  95. package/dist/src/components/Tag/Tag.js +1 -1
  96. package/dist/src/components/Text/Text.classnames.js +5 -5
  97. package/dist/src/components/TextField/TextField.classnames.js +7 -7
  98. package/dist/src/components/TextField/components/Spinner/Spinner.js +1 -1
  99. package/dist/src/components/Upload/components/FileViewer/FileViewer.classnames.js +11 -0
  100. package/dist/src/components/Upload/components/FileViewer/FileViewer.js +7 -11
  101. package/dist/src/components/Upload/components/Modal/UploadFilterSection.js +14 -13
  102. package/dist/src/components/Upload/components/Modal/UploadModalContainer.classnames.js +23 -2
  103. package/dist/src/components/Upload/components/Modal/UploadModalContainer.js +49 -63
  104. package/dist/src/components/Upload/components/Modal/UploadModalFileItem.classnames.js +15 -0
  105. package/dist/src/components/Upload/components/Modal/UploadModalFileItem.js +18 -61
  106. package/dist/src/components/Upload/components/Thumbnail/Thumbanail.js +20 -48
  107. package/dist/src/components/Upload/components/Thumbnail/Thumbnail.classnames.js +24 -0
  108. package/dist/src/components/Upload/components/Upload/UploadContainer.js +9 -8
  109. package/dist/src/components/Upload/components/UploaderButton/UploaderButton.classnames.js +17 -0
  110. package/dist/src/components/Upload/components/UploaderButton/UploaderButtonFileList.js +17 -21
  111. package/dist/src/components/Upload/components/UploaderInput/FileUploadInput.classnames.js +23 -0
  112. package/dist/src/components/Upload/components/UploaderInput/FileUploadInput.js +14 -22
  113. package/dist/src/components/VerticalStack/VerticalStack.js +2 -2
  114. package/dist/src/components/index.js +3 -0
  115. package/dist/src/index.js +14 -5
  116. package/dist/src/utilities/capitalize.js +16 -3
  117. package/dist/src/utilities/renderSafeTemplate.js +41 -0
  118. package/dist/tsconfig.tsbuildinfo +1 -1
  119. package/dist/types/scripts/build-scss.d.ts.map +1 -1
  120. package/dist/types/src/components/AlphaTabs/utilities.d.ts +1 -1
  121. package/dist/types/src/components/AlphaTabs/utilities.d.ts.map +1 -1
  122. package/dist/types/src/components/AppProvider/AppProvider.d.ts +1 -1
  123. package/dist/types/src/components/AppProvider/AppProvider.d.ts.map +1 -1
  124. package/dist/types/src/components/Box/Box.d.ts +1 -0
  125. package/dist/types/src/components/Box/Box.d.ts.map +1 -1
  126. package/dist/types/src/components/CheckboxTree/CheckboxList.d.ts +27 -2
  127. package/dist/types/src/components/CheckboxTree/CheckboxList.d.ts.map +1 -1
  128. package/dist/types/src/components/CheckboxTree/Tree.d.ts +55 -11
  129. package/dist/types/src/components/CheckboxTree/Tree.d.ts.map +1 -1
  130. package/dist/types/src/components/CheckboxTree/index.d.ts +1 -0
  131. package/dist/types/src/components/CheckboxTree/index.d.ts.map +1 -1
  132. package/dist/types/src/components/CheckboxTree/updateItemStates.d.ts +2 -2
  133. package/dist/types/src/components/CheckboxTree/updateItemStates.d.ts.map +1 -1
  134. package/dist/types/src/components/DatePicker/DatePicker.classnames.d.ts +27 -0
  135. package/dist/types/src/components/DatePicker/DatePicker.classnames.d.ts.map +1 -0
  136. package/dist/types/src/components/DatePicker/DatePicker.d.ts +35 -0
  137. package/dist/types/src/components/DatePicker/DatePicker.d.ts.map +1 -0
  138. package/dist/types/src/components/DatePicker/components/Day/Day.d.ts +20 -0
  139. package/dist/types/src/components/DatePicker/components/Day/Day.d.ts.map +1 -0
  140. package/dist/types/src/components/DatePicker/components/Day/index.d.ts +2 -0
  141. package/dist/types/src/components/DatePicker/components/Day/index.d.ts.map +1 -0
  142. package/dist/types/src/components/DatePicker/components/Month/Month.d.ts +19 -0
  143. package/dist/types/src/components/DatePicker/components/Month/Month.d.ts.map +1 -0
  144. package/dist/types/src/components/DatePicker/components/Month/index.d.ts +2 -0
  145. package/dist/types/src/components/DatePicker/components/Month/index.d.ts.map +1 -0
  146. package/dist/types/src/components/DatePicker/components/Weekday/Weekday.d.ts +7 -0
  147. package/dist/types/src/components/DatePicker/components/Weekday/Weekday.d.ts.map +1 -0
  148. package/dist/types/src/components/DatePicker/components/Weekday/index.d.ts +2 -0
  149. package/dist/types/src/components/DatePicker/components/Weekday/index.d.ts.map +1 -0
  150. package/dist/types/src/components/DatePicker/components/index.d.ts +4 -0
  151. package/dist/types/src/components/DatePicker/components/index.d.ts.map +1 -0
  152. package/dist/types/src/components/DatePicker/index.d.ts +2 -0
  153. package/dist/types/src/components/DatePicker/index.d.ts.map +1 -0
  154. package/dist/types/src/components/DatePicker/utilities.d.ts +3 -0
  155. package/dist/types/src/components/DatePicker/utilities.d.ts.map +1 -0
  156. package/dist/types/src/components/FlexBox.d.ts +2 -1
  157. package/dist/types/src/components/FlexBox.d.ts.map +1 -1
  158. package/dist/types/src/components/Frame/Frame.d.ts.map +1 -1
  159. package/dist/types/src/components/Frame/components/ContextualSaveBar/ContextualSaveBar.classnames.d.ts +0 -1
  160. package/dist/types/src/components/Frame/components/ContextualSaveBar/ContextualSaveBar.classnames.d.ts.map +1 -1
  161. package/dist/types/src/components/Frame/components/ContextualSaveBar/ContextualSaveBar.d.ts.map +1 -1
  162. package/dist/types/src/components/Grid/Grid.d.ts +0 -16
  163. package/dist/types/src/components/Grid/Grid.d.ts.map +1 -1
  164. package/dist/types/src/components/Icon/Icon.d.ts +5 -3
  165. package/dist/types/src/components/Icon/Icon.d.ts.map +1 -1
  166. package/dist/types/src/components/Icons/MaArrowRight.d.ts +4 -0
  167. package/dist/types/src/components/Icons/MaArrowRight.d.ts.map +1 -0
  168. package/dist/types/src/components/Icons/MaCheck.d.ts +3 -6
  169. package/dist/types/src/components/Icons/MaCheck.d.ts.map +1 -1
  170. package/dist/types/src/components/Icons/MaClose.d.ts +3 -6
  171. package/dist/types/src/components/Icons/MaClose.d.ts.map +1 -1
  172. package/dist/types/src/components/Icons/MaCopyLink.d.ts +3 -6
  173. package/dist/types/src/components/Icons/MaCopyLink.d.ts.map +1 -1
  174. package/dist/types/src/components/Icons/MaDown.d.ts +3 -6
  175. package/dist/types/src/components/Icons/MaDown.d.ts.map +1 -1
  176. package/dist/types/src/components/Icons/MaDragGrid.d.ts +4 -0
  177. package/dist/types/src/components/Icons/MaDragGrid.d.ts.map +1 -0
  178. package/dist/types/src/components/Icons/MaEyes.d.ts +3 -6
  179. package/dist/types/src/components/Icons/MaEyes.d.ts.map +1 -1
  180. package/dist/types/src/components/Icons/MaLeft.d.ts +3 -6
  181. package/dist/types/src/components/Icons/MaLeft.d.ts.map +1 -1
  182. package/dist/types/src/components/Icons/MaMinus.d.ts +3 -6
  183. package/dist/types/src/components/Icons/MaMinus.d.ts.map +1 -1
  184. package/dist/types/src/components/Icons/MaPlus.d.ts +3 -6
  185. package/dist/types/src/components/Icons/MaPlus.d.ts.map +1 -1
  186. package/dist/types/src/components/Icons/MaRight.d.ts +3 -6
  187. package/dist/types/src/components/Icons/MaRight.d.ts.map +1 -1
  188. package/dist/types/src/components/Icons/MaSelect.d.ts +4 -0
  189. package/dist/types/src/components/Icons/MaSelect.d.ts.map +1 -0
  190. package/dist/types/src/components/Icons/MaUp.d.ts +3 -6
  191. package/dist/types/src/components/Icons/MaUp.d.ts.map +1 -1
  192. package/dist/types/src/components/Icons/index.d.ts +3 -0
  193. package/dist/types/src/components/Icons/index.d.ts.map +1 -1
  194. package/dist/types/src/components/Image/Image.d.ts +4 -2
  195. package/dist/types/src/components/Image/Image.d.ts.map +1 -1
  196. package/dist/types/src/components/Input/Input.d.ts +3 -1
  197. package/dist/types/src/components/Input/Input.d.ts.map +1 -1
  198. package/dist/types/src/components/Labelled/Labelled.classnames.d.ts +1 -0
  199. package/dist/types/src/components/Labelled/Labelled.classnames.d.ts.map +1 -1
  200. package/dist/types/src/components/Labelled/Labelled.d.ts.map +1 -1
  201. package/dist/types/src/components/PageActions/PageActions.d.ts.map +1 -1
  202. package/dist/types/src/components/Pagination/V1/PaginationV1.classnames.d.ts +11 -0
  203. package/dist/types/src/components/Pagination/V1/PaginationV1.classnames.d.ts.map +1 -0
  204. package/dist/types/src/components/Pagination/V1/pagination.d.ts.map +1 -1
  205. package/dist/types/src/components/Popover/components/PopoverOverlay/PopoverOverlay.d.ts.map +1 -1
  206. package/dist/types/src/components/Scrollable/Scrollable.d.ts +1 -1
  207. package/dist/types/src/components/Stack/Stack-old.d.ts +20 -0
  208. package/dist/types/src/components/Stack/Stack-old.d.ts.map +1 -0
  209. package/dist/types/src/components/Stack/Stack.d.ts +95 -17
  210. package/dist/types/src/components/Stack/Stack.d.ts.map +1 -1
  211. package/dist/types/src/components/Text/Text.d.ts +1 -1
  212. package/dist/types/src/components/Text/Text.d.ts.map +1 -1
  213. package/dist/types/src/components/Upload/components/FileViewer/FileViewer.classnames.d.ts +10 -0
  214. package/dist/types/src/components/Upload/components/FileViewer/FileViewer.classnames.d.ts.map +1 -0
  215. package/dist/types/src/components/Upload/components/FileViewer/FileViewer.d.ts.map +1 -1
  216. package/dist/types/src/components/Upload/components/Modal/UploadFilterSection.d.ts.map +1 -1
  217. package/dist/types/src/components/Upload/components/Modal/UploadModalContainer.classnames.d.ts +21 -0
  218. package/dist/types/src/components/Upload/components/Modal/UploadModalContainer.classnames.d.ts.map +1 -1
  219. package/dist/types/src/components/Upload/components/Modal/UploadModalContainer.d.ts.map +1 -1
  220. package/dist/types/src/components/Upload/components/Modal/UploadModalFileItem.classnames.d.ts +14 -0
  221. package/dist/types/src/components/Upload/components/Modal/UploadModalFileItem.classnames.d.ts.map +1 -0
  222. package/dist/types/src/components/Upload/components/Modal/UploadModalFileItem.d.ts +2 -10
  223. package/dist/types/src/components/Upload/components/Modal/UploadModalFileItem.d.ts.map +1 -1
  224. package/dist/types/src/components/Upload/components/Thumbnail/Thumbanail.d.ts +9 -8
  225. package/dist/types/src/components/Upload/components/Thumbnail/Thumbanail.d.ts.map +1 -1
  226. package/dist/types/src/components/Upload/components/Thumbnail/Thumbnail.classnames.d.ts +23 -0
  227. package/dist/types/src/components/Upload/components/Thumbnail/Thumbnail.classnames.d.ts.map +1 -0
  228. package/dist/types/src/components/Upload/components/Upload/UploadContainer.d.ts.map +1 -1
  229. package/dist/types/src/components/Upload/components/UploaderButton/UploaderButton.classnames.d.ts +16 -0
  230. package/dist/types/src/components/Upload/components/UploaderButton/UploaderButton.classnames.d.ts.map +1 -0
  231. package/dist/types/src/components/Upload/components/UploaderButton/UploaderButtonFileList.d.ts.map +1 -1
  232. package/dist/types/src/components/Upload/components/UploaderInput/FileUploadInput.classnames.d.ts +22 -0
  233. package/dist/types/src/components/Upload/components/UploaderInput/FileUploadInput.classnames.d.ts.map +1 -0
  234. package/dist/types/src/components/Upload/components/UploaderInput/FileUploadInput.d.ts +7 -6
  235. package/dist/types/src/components/Upload/components/UploaderInput/FileUploadInput.d.ts.map +1 -1
  236. package/dist/types/src/components/Upload/typings/index.d.ts +1 -1
  237. package/dist/types/src/components/Upload/typings/index.d.ts.map +1 -1
  238. package/dist/types/src/components/VerticalStack/VerticalStack.d.ts +1 -2
  239. package/dist/types/src/components/VerticalStack/VerticalStack.d.ts.map +1 -1
  240. package/dist/types/src/components/index.d.ts +1 -0
  241. package/dist/types/src/components/index.d.ts.map +1 -1
  242. package/dist/types/src/index.d.ts +11 -5
  243. package/dist/types/src/index.d.ts.map +1 -1
  244. package/dist/types/src/tokens/metadata.d.ts +6 -6
  245. package/dist/types/src/utilities/capitalize.d.ts +12 -1
  246. package/dist/types/src/utilities/capitalize.d.ts.map +1 -1
  247. package/dist/types/src/utilities/renderSafeTemplate.d.ts +38 -0
  248. package/dist/types/src/utilities/renderSafeTemplate.d.ts.map +1 -0
  249. package/dist/ui.min.css +3 -3
  250. package/locales/da.json +1 -1
  251. package/locales/de.json +1 -1
  252. package/locales/en.json +1 -1
  253. package/locales/es.json +1 -1
  254. package/locales/fi.json +1 -1
  255. package/locales/fr.json +1 -1
  256. package/locales/it.json +1 -1
  257. package/locales/ja.json +1 -1
  258. package/locales/ko.json +1 -1
  259. package/locales/nb.json +1 -1
  260. package/locales/nl.json +1 -1
  261. package/locales/pl.json +1 -1
  262. package/locales/pt-BR.json +1 -1
  263. package/locales/pt-PT.json +1 -1
  264. package/locales/sv.json +1 -1
  265. package/locales/th.json +1 -1
  266. package/locales/tr.json +1 -1
  267. package/locales/vi.json +1 -1
  268. package/locales/zh-CN.json +1 -1
  269. package/locales/zh-TW.json +1 -1
  270. package/package.json +4 -3
  271. package/dist/src/components/VerticalStack/VerticalStack copy.js +0 -24
  272. package/dist/types/src/components/VerticalStack/VerticalStack copy.d.ts +0 -25
  273. package/dist/types/src/components/VerticalStack/VerticalStack copy.d.ts.map +0 -1
@@ -7,13 +7,17 @@ exports.PendingUploadFileList = void 0;
7
7
  const jsx_runtime_1 = require("react/jsx-runtime");
8
8
  const react_1 = require("react");
9
9
  const utils_1 = require("../../../../utils");
10
+ const Button_1 = require("../../../Button");
11
+ const Icons_1 = require("../../../Icons");
10
12
  const utils_2 = require("../../utils");
11
13
  const FileViewer_1 = require("../FileViewer");
12
14
  const Thumbanail_1 = __importDefault(require("../Thumbnail/Thumbanail"));
13
15
  const UploadProvider_1 = require("../UploadProvider");
16
+ const FileUploadInput_classnames_1 = __importDefault(require("./FileUploadInput.classnames"));
14
17
  function FileUploadInput({ acceptFileTypes, updateUploadsList }) {
15
18
  const { error, files, setFiles, removeFile, progress } = (0, UploadProvider_1.useUpload)();
16
- const inputRef = (0, react_1.useRef)();
19
+ const inputRef = (0, react_1.useRef)(null);
20
+ const [dragging, setDragging] = (0, react_1.useState)(false);
17
21
  const acceptFilesLike = (0, utils_2.getAceptedFileTypesValues)(acceptFileTypes);
18
22
  const initiateUpload = async (file) => {
19
23
  const newAttachments = await setFiles(file);
@@ -21,7 +25,6 @@ function FileUploadInput({ acceptFileTypes, updateUploadsList }) {
21
25
  updateUploadsList === null || updateUploadsList === void 0 ? void 0 : updateUploadsList(newAttachments);
22
26
  }
23
27
  };
24
- const [dragging, setDragging] = (0, react_1.useState)(false);
25
28
  const handleDragStart = (e) => {
26
29
  e.stopPropagation();
27
30
  e.preventDefault();
@@ -35,30 +38,19 @@ function FileUploadInput({ acceptFileTypes, updateUploadsList }) {
35
38
  e.stopPropagation();
36
39
  e.preventDefault();
37
40
  setDragging(false);
41
+ initiateUpload(e);
38
42
  };
39
- return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("div", { className: 'relative flex items-center justify-self-center', children: (0, jsx_runtime_1.jsxs)("div", { className: 'relative w-full', onDragStart: handleDragStart, onDragEnter: handleDragStart, onDragOver: handleDragOver, onDrop: (e) => {
40
- e.stopPropagation();
41
- e.preventDefault();
42
- handleDrop(e);
43
- initiateUpload(e);
44
- }, children: [(0, jsx_runtime_1.jsx)(Thumbanail_1.default, { acceptFileTypes: acceptFileTypes, thumbnailSize: 'normal', hasDragAndDrop: true, dragging: dragging }), (0, jsx_runtime_1.jsx)("input", { accept: acceptFilesLike, type: 'file', multiple: true, className: 'absolute inset-0 z-50 m-0 h-full w-full cursor-pointer p-0 opacity-0 outline-none', title: '', onChange: (e) => {
45
- initiateUpload(e);
43
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("div", { className: FileUploadInput_classnames_1.default.fileUploadInput__container, children: (0, jsx_runtime_1.jsxs)("div", { className: (0, utils_1.cn)(FileUploadInput_classnames_1.default.fileUploadInput__dropzone, dragging && FileUploadInput_classnames_1.default['fileUploadInput__dropzone--dragging']), style: { borderRadius: 'var(--p-border-radius-3)' }, onDragEnter: handleDragStart, onDragOver: handleDragOver, onDrop: handleDrop, children: [(0, jsx_runtime_1.jsx)(Thumbanail_1.default, { acceptFileTypes: acceptFileTypes, thumbnailSize: 'normal', hasDragAndDrop: true, dragging: dragging }), (0, jsx_runtime_1.jsx)("input", { accept: acceptFilesLike, type: 'file', multiple: true, className: FileUploadInput_classnames_1.default.fileUploadInput__input, title: 'input', onChange: (e) => {
44
+ if (e.target.files)
45
+ initiateUpload(e);
46
46
  }, ref: inputRef })] }) }), (0, jsx_runtime_1.jsx)(exports.PendingUploadFileList, { files: files, removeFile: removeFile, progress: progress, error: error })] }));
47
47
  }
48
48
  exports.default = FileUploadInput;
49
49
  const PendingUploadFileList = ({ files, removeFile, progress, error, }) => {
50
- return (
51
- // eslint-disable-next-line react/jsx-no-useless-fragment
52
- (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: files === null || files === void 0 ? void 0 : files.map((file, idx) => {
53
- return ((0, jsx_runtime_1.jsxs)("div", { className: ' relative flex cursor-move select-none flex-col items-center overflow-hidden rounded border bg-gray-100 text-center dark:bg-gray-600', style: { paddingTop: '100%' }, children: [(0, jsx_runtime_1.jsx)("button", { className: 'bg-skin-primary absolute top-0 right-0 z-50 rounded-bl p-1 focus:outline-none', type: 'button', onClick: () => removeFile(file.name) }), (0, jsx_runtime_1.jsx)("div", { className: 'preview dh-full dw-full absolute inset-0 z-0 border-4 border-white object-cover dark:border-gray-600', children: (0, jsx_runtime_1.jsx)(FileViewer_1.FileViewer, { file: {
54
- ...file,
55
- src: URL.createObjectURL(file),
56
- type: (0, utils_2.getFileTypeCategory)(file === null || file === void 0 ? void 0 : file.type) || 'image',
57
- } }) }), (0, jsx_runtime_1.jsxs)("div", { className: 'bg-skin-primary absolute bottom-0 left-0 right-0 flex flex-col bg-opacity-50 p-2 text-xs', children: [(0, jsx_runtime_1.jsx)("span", { className: 'hi w-full truncate font-bold text-gray-900', children: file === null || file === void 0 ? void 0 : file.name }), (0, jsx_runtime_1.jsxs)("span", { className: 'text-xs text-gray-900', children: [file === null || file === void 0 ? void 0 : file.size, " ..."] })] }), (0, jsx_runtime_1.jsx)("div", { className: 'absolute inset-0 z-40 transition-colors duration-300' }), (0, jsx_runtime_1.jsx)("div", { className: 'absolute bottom-0 w-full rounded-full bg-gray-200 dark:bg-gray-700', children: (0, jsx_runtime_1.jsx)("div", { className: (0, utils_1.cn)(' rounded-fulld line-clamp-1 rounded-r-full p-[1px] text-center text-xs font-medium leading-none text-blue-100', error
58
- ? '!w-full bg-red-500'
59
- : progress === 100
60
- ? '!rounded-none bg-green-600'
61
- : 'bg-blue-600'), style: { width: `${progress}%` }, children: error ? error : `${progress}%` }) })] }, idx));
62
- }) }));
50
+ return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: files === null || files === void 0 ? void 0 : files.map((file, idx) => ((0, jsx_runtime_1.jsxs)("div", { className: FileUploadInput_classnames_1.default.pendingUploadFileList__item, children: [(0, jsx_runtime_1.jsx)("div", { className: FileUploadInput_classnames_1.default.pendingUploadFileList__deleteButton, role: 'button', children: (0, jsx_runtime_1.jsx)(Button_1.Button, { plain: true, icon: Icons_1.MaTrash, destructive: true, onClick: () => removeFile(file.name) }) }), (0, jsx_runtime_1.jsx)("div", { className: FileUploadInput_classnames_1.default.pendingUploadFileList__preview, children: (0, jsx_runtime_1.jsx)(FileViewer_1.FileViewer, { file: {
51
+ ...file,
52
+ src: URL.createObjectURL(file),
53
+ type: (0, utils_2.getFileTypeCategory)(file === null || file === void 0 ? void 0 : file.type) || 'image',
54
+ } }) }), (0, jsx_runtime_1.jsxs)("div", { className: FileUploadInput_classnames_1.default.pendingUploadFileList__fileInfo, children: [(0, jsx_runtime_1.jsx)("span", { className: FileUploadInput_classnames_1.default.pendingUploadFileList__fileName, children: file === null || file === void 0 ? void 0 : file.name }), (0, jsx_runtime_1.jsxs)("span", { className: FileUploadInput_classnames_1.default.pendingUploadFileList__fileSize, children: [file === null || file === void 0 ? void 0 : file.size, " ..."] })] }), (0, jsx_runtime_1.jsx)("div", { className: FileUploadInput_classnames_1.default.pendingUploadFileList__progressBar, children: (0, jsx_runtime_1.jsx)("div", { className: (0, utils_1.cn)(FileUploadInput_classnames_1.default.pendingUploadFileList__progress, error && FileUploadInput_classnames_1.default['pendingUploadFileList__progress--error'], progress === 100 && FileUploadInput_classnames_1.default['pendingUploadFileList__progress--complete'], !error && progress < 100 && FileUploadInput_classnames_1.default['pendingUploadFileList__progress--loading']), style: { width: `${error ? 100 : progress}%` }, children: error ? error === null || error === void 0 ? void 0 : error.slice(0, 15) : `${progress}%` }) })] }, idx))) }));
63
55
  };
64
56
  exports.PendingUploadFileList = PendingUploadFileList;
@@ -7,7 +7,7 @@ exports.VerticalStack = void 0;
7
7
  const react_1 = __importDefault(require("react"));
8
8
  const css_1 = require("../../utilities/css");
9
9
  const VerticalStack_classnames_1 = __importDefault(require("./VerticalStack.classnames"));
10
- const VerticalStack = ({ as = 'div', children, align, inlineAlign, gap, id, height, width, reverseOrder = false, ...restProps }) => {
10
+ const VerticalStack = ({ as = 'div', children, align, inlineAlign, gap, id, height, width, reverseOrder = false, spacer, ...restProps }) => {
11
11
  const heightClasses = {
12
12
  auto: 'h-auto',
13
13
  full: 'h-full',
@@ -20,7 +20,7 @@ const VerticalStack = ({ as = 'div', children, align, inlineAlign, gap, id, heig
20
20
  max: 'w-max',
21
21
  none: '',
22
22
  }[width !== null && width !== void 0 ? width : 'none'];
23
- const className = (0, css_1.classNames)(VerticalStack_classnames_1.default.VerticalStack, (as === 'ul' || as === 'ol') && VerticalStack_classnames_1.default.listReset, as === 'fieldset' && VerticalStack_classnames_1.default.fieldsetReset, heightClasses, widthClasses);
23
+ const className = (0, css_1.classNames)(VerticalStack_classnames_1.default.VerticalStack, (as === 'ul' || as === 'ol') && VerticalStack_classnames_1.default.listReset, as === 'fieldset' && VerticalStack_classnames_1.default.fieldsetReset, heightClasses, widthClasses, spacer && '');
24
24
  const style = {
25
25
  '--pc-vertical-stack-align': align ? `${align}` : '',
26
26
  '--pc-vertical-stack-inline-align': inlineAlign ? `${inlineAlign}` : '',
@@ -14,6 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.Card = void 0;
17
18
  __exportStar(require("./ActionMenu"), exports);
18
19
  __exportStar(require("./AppProvider"), exports);
19
20
  __exportStar(require("./Autocomplete"), exports);
@@ -45,6 +46,8 @@ __exportStar(require("./Image"), exports);
45
46
  __exportStar(require("./KeyboardKey"), exports);
46
47
  __exportStar(require("./Label"), exports);
47
48
  __exportStar(require("./LegacyCard"), exports);
49
+ var LegacyCard_1 = require("./LegacyCard");
50
+ Object.defineProperty(exports, "Card", { enumerable: true, get: function () { return LegacyCard_1.LegacyCard; } });
48
51
  __exportStar(require("./LegacyStack"), exports);
49
52
  __exportStar(require("./Link"), exports);
50
53
  __exportStar(require("./Listbox"), exports);
package/dist/src/index.js CHANGED
@@ -15,13 +15,14 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
16
16
  };
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.rgbString = exports.rgbaString = exports.hslToRgb = exports.hsbToRgb = exports.hsbToHex = exports.hexToRgb = exports.Upload = exports.FileViewer = exports.TopBar = exports.Toast = exports.Switch = exports.SkeletonThumbnail = exports.SkeletonTabs = exports.SkeletonTable = exports.SkeletonPage = exports.SkeletonDisplayText = exports.SkeletonBodyText = exports.Scrollable = exports.ResourceList = exports.ResourceItem = exports.PaginationV1 = exports.VerticalSingleMenuItem = exports.VerticalCollapsedMenuItem = exports.CollapsedMenuItemList = exports.Navigation = exports.isNavigationItemActive = exports.Loading = exports.Layout = exports.Input = exports.Indicator = exports.IndexTable = exports.useSetIndexFiltersMode = exports.IndexFiltersMode = exports.IndexFilters = exports.FlexBox = exports.DataTable = exports.ContextualSaveBar = exports.ChoiceCard = exports.CheckboxTree = exports.ButtonGroup = exports.CopyButton = exports.buttonsFrom = exports.buttonFrom = exports.Button = exports.BadgeStatusValue = exports.BadgeProgressValue = exports.Badge = exports.Avatar = exports.AlphaTabs = exports.ActionList = void 0;
19
- exports.useIndexResourceState = exports.useFrame = exports.useDeviceType = exports.cn = exports.rgbToHsl = exports.rgbToHsb = exports.rgbToHex = void 0;
18
+ exports.hsbToHex = exports.hexToRgb = exports.capitalize = exports.Upload = exports.FileViewer = exports.TopBar = exports.Toast = exports.Switch = exports.SkeletonThumbnail = exports.SkeletonTabs = exports.SkeletonTable = exports.SkeletonPage = exports.SkeletonDisplayText = exports.SkeletonBodyText = exports.Scrollable = exports.ResourceList = exports.ResourceItem = exports.PaginationV1 = exports.VerticalSingleMenuItem = exports.VerticalCollapsedMenuItem = exports.CollapsedMenuItemList = exports.isNavigationItemActive = exports.Navigation = exports.Loading = exports.Layout = exports.Input = exports.InlineError = exports.Indicator = exports.IndexTable = exports.useSetIndexFiltersMode = exports.IndexFiltersMode = exports.IndexFilters = exports.FlexBox = exports.DatePicker = exports.DataTable = exports.ContextualSaveBar = exports.ChoiceCard = exports.CheckboxTree = exports.ButtonGroup = exports.buttonsFrom = exports.buttonFrom = exports.CopyButton = exports.Button = exports.BadgeStatusValue = exports.BadgeProgressValue = exports.Badge = exports.Avatar = exports.Tabs = exports.AlphaTabs = exports.ActionList = void 0;
19
+ exports.useIndexResourceState = exports.renderSafeTemplate = exports.useFrame = exports.useDeviceType = exports.cn = exports.rgbaString = exports.rgbToHsl = exports.rgbToHsb = exports.rgbToHex = exports.rgbString = exports.hslToRgb = exports.hsbToRgb = void 0;
20
20
  __exportStar(require("./components"), exports);
21
21
  var ActionList_1 = require("./components/ActionList");
22
22
  Object.defineProperty(exports, "ActionList", { enumerable: true, get: function () { return ActionList_1.ActionList; } });
23
23
  var AlphaTabs_1 = require("./components/AlphaTabs");
24
24
  Object.defineProperty(exports, "AlphaTabs", { enumerable: true, get: function () { return AlphaTabs_1.AlphaTabs; } });
25
+ Object.defineProperty(exports, "Tabs", { enumerable: true, get: function () { return AlphaTabs_1.AlphaTabs; } });
25
26
  var Avatar_1 = require("./components/Avatar");
26
27
  Object.defineProperty(exports, "Avatar", { enumerable: true, get: function () { return Avatar_1.Avatar; } });
27
28
  var Badge_1 = require("./components/Badge");
@@ -30,9 +31,9 @@ Object.defineProperty(exports, "BadgeProgressValue", { enumerable: true, get: fu
30
31
  Object.defineProperty(exports, "BadgeStatusValue", { enumerable: true, get: function () { return Badge_1.StatusValue; } });
31
32
  var Button_1 = require("./components/Button");
32
33
  Object.defineProperty(exports, "Button", { enumerable: true, get: function () { return Button_1.Button; } });
34
+ Object.defineProperty(exports, "CopyButton", { enumerable: true, get: function () { return Button_1.CopyButton; } });
33
35
  Object.defineProperty(exports, "buttonFrom", { enumerable: true, get: function () { return Button_1.buttonFrom; } });
34
36
  Object.defineProperty(exports, "buttonsFrom", { enumerable: true, get: function () { return Button_1.buttonsFrom; } });
35
- Object.defineProperty(exports, "CopyButton", { enumerable: true, get: function () { return Button_1.CopyButton; } });
36
37
  var ButtonGroup_1 = require("./components/ButtonGroup");
37
38
  Object.defineProperty(exports, "ButtonGroup", { enumerable: true, get: function () { return ButtonGroup_1.ButtonGroup; } });
38
39
  var CheckboxTree_1 = require("./components/CheckboxTree");
@@ -43,6 +44,8 @@ var ContextualSaveBar_1 = require("./components/ContextualSaveBar");
43
44
  Object.defineProperty(exports, "ContextualSaveBar", { enumerable: true, get: function () { return ContextualSaveBar_1.ContextualSaveBar; } });
44
45
  var DataTable_1 = require("./components/DataTable");
45
46
  Object.defineProperty(exports, "DataTable", { enumerable: true, get: function () { return DataTable_1.DataTable; } });
47
+ var DatePicker_1 = require("./components/DatePicker");
48
+ Object.defineProperty(exports, "DatePicker", { enumerable: true, get: function () { return DatePicker_1.DatePicker; } });
46
49
  var FlexBox_1 = require("./components/FlexBox");
47
50
  Object.defineProperty(exports, "FlexBox", { enumerable: true, get: function () { return FlexBox_1.FlexBox; } });
48
51
  var IndexFilters_1 = require("./components/IndexFilters");
@@ -53,6 +56,8 @@ var IndexTable_1 = require("./components/IndexTable");
53
56
  Object.defineProperty(exports, "IndexTable", { enumerable: true, get: function () { return IndexTable_1.IndexTable; } });
54
57
  var Indicator_1 = require("./components/Indicator");
55
58
  Object.defineProperty(exports, "Indicator", { enumerable: true, get: function () { return Indicator_1.Indicator; } });
59
+ var InlineError_1 = require("./components/InlineError");
60
+ Object.defineProperty(exports, "InlineError", { enumerable: true, get: function () { return InlineError_1.InlineError; } });
56
61
  var Input_1 = require("./components/Input");
57
62
  Object.defineProperty(exports, "Input", { enumerable: true, get: function () { return Input_1.Input; } });
58
63
  var Layout_1 = require("./components/Layout");
@@ -60,8 +65,8 @@ Object.defineProperty(exports, "Layout", { enumerable: true, get: function () {
60
65
  var Loading_1 = require("./components/Loading");
61
66
  Object.defineProperty(exports, "Loading", { enumerable: true, get: function () { return Loading_1.Loading; } });
62
67
  var Navigation_1 = require("./components/Navigation");
63
- Object.defineProperty(exports, "isNavigationItemActive", { enumerable: true, get: function () { return Navigation_1.isNavigationItemActive; } });
64
68
  Object.defineProperty(exports, "Navigation", { enumerable: true, get: function () { return Navigation_1.Navigation; } });
69
+ Object.defineProperty(exports, "isNavigationItemActive", { enumerable: true, get: function () { return Navigation_1.isNavigationItemActive; } });
65
70
  var VerticalMenuContent_1 = require("./components/NavigationV1/VerticalMenuContent");
66
71
  Object.defineProperty(exports, "CollapsedMenuItemList", { enumerable: true, get: function () { return VerticalMenuContent_1.CollapsedMenuItemList; } });
67
72
  Object.defineProperty(exports, "VerticalCollapsedMenuItem", { enumerable: true, get: function () { return VerticalMenuContent_1.VerticalCollapsedMenuItem; } });
@@ -95,21 +100,25 @@ Object.defineProperty(exports, "TopBar", { enumerable: true, get: function () {
95
100
  var Upload_1 = require("./components/Upload");
96
101
  Object.defineProperty(exports, "FileViewer", { enumerable: true, get: function () { return Upload_1.FileViewer; } });
97
102
  Object.defineProperty(exports, "Upload", { enumerable: true, get: function () { return Upload_1.Upload; } });
103
+ var capitalize_1 = require("./utilities/capitalize");
104
+ Object.defineProperty(exports, "capitalize", { enumerable: true, get: function () { return capitalize_1.capitalize; } });
98
105
  var color_transformers_1 = require("./utilities/color-transformers");
99
106
  Object.defineProperty(exports, "hexToRgb", { enumerable: true, get: function () { return color_transformers_1.hexToRgb; } });
100
107
  Object.defineProperty(exports, "hsbToHex", { enumerable: true, get: function () { return color_transformers_1.hsbToHex; } });
101
108
  Object.defineProperty(exports, "hsbToRgb", { enumerable: true, get: function () { return color_transformers_1.hsbToRgb; } });
102
109
  Object.defineProperty(exports, "hslToRgb", { enumerable: true, get: function () { return color_transformers_1.hslToRgb; } });
103
- Object.defineProperty(exports, "rgbaString", { enumerable: true, get: function () { return color_transformers_1.rgbaString; } });
104
110
  Object.defineProperty(exports, "rgbString", { enumerable: true, get: function () { return color_transformers_1.rgbString; } });
105
111
  Object.defineProperty(exports, "rgbToHex", { enumerable: true, get: function () { return color_transformers_1.rgbToHex; } });
106
112
  Object.defineProperty(exports, "rgbToHsb", { enumerable: true, get: function () { return color_transformers_1.rgbToHsb; } });
107
113
  Object.defineProperty(exports, "rgbToHsl", { enumerable: true, get: function () { return color_transformers_1.rgbToHsl; } });
114
+ Object.defineProperty(exports, "rgbaString", { enumerable: true, get: function () { return color_transformers_1.rgbaString; } });
108
115
  var css_1 = require("./utilities/css");
109
116
  Object.defineProperty(exports, "cn", { enumerable: true, get: function () { return css_1.classNames; } });
110
117
  var device_type_1 = require("./utilities/device-type");
111
118
  Object.defineProperty(exports, "useDeviceType", { enumerable: true, get: function () { return device_type_1.useDeviceType; } });
112
119
  var frame_1 = require("./utilities/frame");
113
120
  Object.defineProperty(exports, "useFrame", { enumerable: true, get: function () { return frame_1.useFrame; } });
121
+ var renderSafeTemplate_1 = require("./utilities/renderSafeTemplate");
122
+ Object.defineProperty(exports, "renderSafeTemplate", { enumerable: true, get: function () { return renderSafeTemplate_1.renderSafeTemplate; } });
114
123
  var use_index_resource_state_1 = require("./utilities/use-index-resource-state");
115
124
  Object.defineProperty(exports, "useIndexResourceState", { enumerable: true, get: function () { return use_index_resource_state_1.useIndexResourceState; } });
@@ -1,8 +1,21 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.capitalize = void 0;
4
- function capitalize(word = '') {
5
- const wordLower = word.toLowerCase();
6
- return wordLower.charAt(0).toUpperCase() + wordLower.slice(1);
4
+ /**
5
+ * Capitalizes the first letter of a string and makes the rest of the string lowercase.
6
+ * @param {string | null | undefined} str - The input string to be processed. Can be a string, null, or undefined.
7
+ * @returns {string} - The formatted string with the first letter capitalized and the rest lowercase.
8
+ * If the input is null or undefined, an empty string is returned.
9
+ * @example
10
+ * capitalizeFirstLetter("hello"); // Returns "Hello"
11
+ * capitalizeFirstLetter("HELLO"); // Returns "Hello"
12
+ * capitalizeFirstLetter(null); // Returns ""
13
+ * capitalizeFirstLetter(undefined); // Returns ""
14
+ */
15
+ function capitalize(str) {
16
+ // Ensure the input is treated as a string (convert null/undefined to an empty string)
17
+ const inputString = str || '';
18
+ // Return the formatted string
19
+ return inputString.charAt(0).toUpperCase() + inputString.slice(1).toLowerCase();
7
20
  }
8
21
  exports.capitalize = capitalize;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.renderSafeTemplate = void 0;
4
+ /**
5
+ * Renders a template string by replacing placeholders with sanitized values.
6
+ * @param {string} template - The template string containing placeholders (e.g., `{{key}}`).
7
+ * @param {Record<ExtractPlaceholders<Template>, string>} values - An object containing key-value pairs for replacement.
8
+ * @returns {string} - The processed string with placeholders replaced and sanitized.
9
+ * @example
10
+ * // Scenario 1: Basic usage
11
+ * const template1 = "Hello, {{name}}! Welcome to {{app}}.";
12
+ * const values1 = { name: "John", app: "MyApp" };
13
+ * renderSafeTemplate(template1, values1); // Returns "Hello, John! Welcome to MyApp."
14
+ *
15
+ * @example
16
+ * // Scenario 2: Sanitization to prevent XSS
17
+ * const template2 = "Hello, {{name}}! Welcome to {{app}}.";
18
+ * const values2 = { name: "<script>alert('XSS')</script>John", app: "MyApp" };
19
+ * renderSafeTemplate(template2, values2); // Returns "Hello, &lt;script&gt;alert('XSS')&lt;/script&gt;John! Welcome to MyApp."
20
+ *
21
+ * @example
22
+ * // Scenario 3: Missing placeholder key
23
+ * const template3 = "Hello, {{name}}! Welcome to {{app}}.";
24
+ * const values3 = { name: "John" }; // `app` key is missing
25
+ * renderSafeTemplate(template3, values3); // Returns "Hello, John! Welcome to ."
26
+ *
27
+ * @example
28
+ * // Scenario 4: HTML link replacement
29
+ * const template4 = "Visit us at <a href='{{link}}'>{{link}}</a>.";
30
+ * const values4 = { link: "https://example.com" };
31
+ * renderSafeTemplate(template4, values4); // Returns "Visit us at <a href='https://example.com'>https://example.com</a>."
32
+ */
33
+ function renderSafeTemplate(template, values) {
34
+ // Sanitize function to prevent XSS or unwanted HTML/script injection
35
+ const sanitize = (input) => {
36
+ return input.replace(/</g, '&lt;').replace(/>/g, '&gt;');
37
+ };
38
+ // Replace placeholders with sanitized values
39
+ return template.replace(/\{\{(\w+)\}\}/g, (_, key) => sanitize(values[key] || ''));
40
+ }
41
+ exports.renderSafeTemplate = renderSafeTemplate;