@imposium-hub/components 2.14.7-0 → 2.14.7-1

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 (269) hide show
  1. package/dist/cjs/components/advanced-number-field/AdvancedNumberField.d.ts +1 -1
  2. package/dist/cjs/components/anchor-field/AnchorField.d.ts +1 -1
  3. package/dist/cjs/components/assets/AssetsTableDateCell.d.ts +6 -1
  4. package/dist/cjs/components/assets/AssetsTableGlobalCell.d.ts +5 -1
  5. package/dist/cjs/components/assets/AssetsTablePreviewCell.d.ts +17 -1
  6. package/dist/cjs/components/assets/AssetsTableStatusCell.d.ts +5 -1
  7. package/dist/cjs/components/assets/AssetsTableTagsCell.d.ts +6 -1
  8. package/dist/cjs/components/assets/AssetsTableTypeCell.d.ts +5 -1
  9. package/dist/cjs/components/assets/AssetsTypeIcon.d.ts +5 -1
  10. package/dist/cjs/components/assets/FontAssetPreview.d.ts +1 -1
  11. package/dist/cjs/components/assets/StoryTableTotalRendersCell.d.ts +2 -1
  12. package/dist/cjs/components/button/Button.d.ts +1 -1
  13. package/dist/cjs/components/button/Button.stories.d.ts +6 -5
  14. package/dist/cjs/components/button-group-field/ButtonGroupField.d.ts +1 -1
  15. package/dist/cjs/components/button-group-field/ButtonGroupField.stories.d.ts +2 -1
  16. package/dist/cjs/components/button-menu/ButtonMenu.d.ts +2 -2
  17. package/dist/cjs/components/button-menu/ButtonMenu.stories.d.ts +2 -1
  18. package/dist/cjs/components/button-menu/ButtonMenuItem.d.ts +1 -1
  19. package/dist/cjs/components/card/Card.d.ts +4 -4
  20. package/dist/cjs/components/card/Card.stories.d.ts +2 -1
  21. package/dist/cjs/components/checkbox-field/CheckboxField.d.ts +1 -1
  22. package/dist/cjs/components/checkbox-field/CheckboxField.stories.d.ts +2 -1
  23. package/dist/cjs/components/color-field/ColorField.d.ts +1 -1
  24. package/dist/cjs/components/color-field/ColorFiled.stories.d.ts +2 -1
  25. package/dist/cjs/components/compositions/TextLayer.d.ts +1 -1
  26. package/dist/cjs/components/config-variable-button/ConfigVariableButton.d.ts +42 -1
  27. package/dist/cjs/components/confirm-modal/ConfirmModal.d.ts +2 -1
  28. package/dist/cjs/components/controlled-list/ControlledList.d.ts +2 -2
  29. package/dist/cjs/components/controlled-list/ControlledList.stories.d.ts +2 -1
  30. package/dist/cjs/components/copy-prop-id-button/CopyPropIdButton.d.ts +1 -1
  31. package/dist/cjs/components/determinate-loader/DeterminateLoader.stories.d.ts +4 -3
  32. package/dist/cjs/components/dropdown/Dropdown.d.ts +1 -1
  33. package/dist/cjs/components/dropdown/{dropdown.stories.d.ts → Dropdown.stories.d.ts} +1 -1
  34. package/dist/cjs/components/field-wrapper/FieldWrapper.d.ts +2 -2
  35. package/dist/cjs/components/field-wrapper/FieldWrapper.stories.d.ts +2 -1
  36. package/dist/cjs/components/font-field/FontField.d.ts +2 -1
  37. package/dist/cjs/components/font-picker/FontPicker.d.ts +1 -1
  38. package/dist/cjs/components/h-rule/HRule.d.ts +2 -1
  39. package/dist/cjs/components/h-rule/HRule.stories.d.ts +3 -2
  40. package/dist/cjs/components/header/ProjectDropdown.d.ts +2 -1
  41. package/dist/cjs/components/list-field/ListField.d.ts +1 -1
  42. package/dist/cjs/components/list-field/ListField.stories.d.ts +2 -1
  43. package/dist/cjs/components/log-viewer/LogViewer.d.ts +1 -1
  44. package/dist/cjs/components/media-variable-field/MediaVariableField.d.ts +1 -1
  45. package/dist/cjs/components/modal/Modal.d.ts +1 -1
  46. package/dist/cjs/components/modal/Modal.stories.d.ts +2 -1
  47. package/dist/cjs/components/number-field/NumberField.d.ts +3 -3
  48. package/dist/cjs/components/number-field/NumberField.js +7 -4
  49. package/dist/cjs/components/number-field/NumberField.js.map +1 -1
  50. package/dist/cjs/components/number-field/NumberField.stories.d.ts +2 -1
  51. package/dist/cjs/components/players/AudioPlayer.d.ts +1 -1
  52. package/dist/cjs/components/players/AudioPreview.d.ts +1 -1
  53. package/dist/cjs/components/players/ImagePlayer.d.ts +1 -1
  54. package/dist/cjs/components/players/ImagePreview.d.ts +1 -1
  55. package/dist/cjs/components/players/ImageSequencePlayer.d.ts +1 -1
  56. package/dist/cjs/components/players/TemplatePlayer.d.ts +1 -1
  57. package/dist/cjs/components/players/VideoPlayer.d.ts +1 -1
  58. package/dist/cjs/components/players/VideoPreview.d.ts +1 -1
  59. package/dist/cjs/components/publish-wizard/PublishWizard.d.ts +3 -3
  60. package/dist/cjs/components/publish-wizard/publish/APIIntegration.d.ts +1 -1
  61. package/dist/cjs/components/publish-wizard/publish/HubSpotFlow.d.ts +1 -1
  62. package/dist/cjs/components/publish-wizard/publish/WebpageHosted.d.ts +2 -2
  63. package/dist/cjs/components/section/Section.d.ts +2 -1
  64. package/dist/cjs/components/section/Section.stories.d.ts +3 -2
  65. package/dist/cjs/components/select-field/SelectField.d.ts +1 -1
  66. package/dist/cjs/components/select-field/SelectField.stories.d.ts +2 -1
  67. package/dist/cjs/components/shortcut-menu/ShortcutMenu.stories.d.ts +2 -1
  68. package/dist/cjs/components/slider-field/SliderField.d.ts +1 -1
  69. package/dist/cjs/components/slider-field/SliderField.stories.d.ts +2 -1
  70. package/dist/cjs/components/smpte-field/SMPTEField.d.ts +1 -1
  71. package/dist/cjs/components/tabs/Tabs.stories.d.ts +3 -2
  72. package/dist/cjs/components/tag/Tag.d.ts +9 -1
  73. package/dist/cjs/components/text-area-autocomplete/TextAreaAutocomplete.d.ts +2 -1
  74. package/dist/cjs/components/text-area-field/TextAreaField.d.ts +1 -1
  75. package/dist/cjs/components/text-area-field/TextAreaField.stories.d.ts +2 -1
  76. package/dist/cjs/components/text-field/TextField.d.ts +1 -1
  77. package/dist/cjs/components/text-field/TextField.stories.d.ts +2 -1
  78. package/dist/cjs/constants/icons.d.ts +80 -79
  79. package/dist/esm/components/advanced-number-field/AdvancedNumberField.d.ts +1 -1
  80. package/dist/esm/components/anchor-field/AnchorField.d.ts +1 -1
  81. package/dist/esm/components/assets/AssetsTableDateCell.d.ts +6 -1
  82. package/dist/esm/components/assets/AssetsTableGlobalCell.d.ts +5 -1
  83. package/dist/esm/components/assets/AssetsTablePreviewCell.d.ts +17 -1
  84. package/dist/esm/components/assets/AssetsTableStatusCell.d.ts +5 -1
  85. package/dist/esm/components/assets/AssetsTableTagsCell.d.ts +6 -1
  86. package/dist/esm/components/assets/AssetsTableTypeCell.d.ts +5 -1
  87. package/dist/esm/components/assets/AssetsTypeIcon.d.ts +5 -1
  88. package/dist/esm/components/assets/FontAssetPreview.d.ts +1 -1
  89. package/dist/esm/components/assets/StoryTableTotalRendersCell.d.ts +2 -1
  90. package/dist/esm/components/button/Button.d.ts +1 -1
  91. package/dist/esm/components/button/Button.stories.d.ts +6 -5
  92. package/dist/esm/components/button-group-field/ButtonGroupField.d.ts +1 -1
  93. package/dist/esm/components/button-group-field/ButtonGroupField.stories.d.ts +2 -1
  94. package/dist/esm/components/button-menu/ButtonMenu.d.ts +2 -2
  95. package/dist/esm/components/button-menu/ButtonMenu.stories.d.ts +2 -1
  96. package/dist/esm/components/button-menu/ButtonMenuItem.d.ts +1 -1
  97. package/dist/esm/components/card/Card.d.ts +4 -4
  98. package/dist/esm/components/card/Card.stories.d.ts +2 -1
  99. package/dist/esm/components/checkbox-field/CheckboxField.d.ts +1 -1
  100. package/dist/esm/components/checkbox-field/CheckboxField.stories.d.ts +2 -1
  101. package/dist/esm/components/color-field/ColorField.d.ts +1 -1
  102. package/dist/esm/components/color-field/ColorFiled.stories.d.ts +2 -1
  103. package/dist/esm/components/compositions/TextLayer.d.ts +1 -1
  104. package/dist/esm/components/config-variable-button/ConfigVariableButton.d.ts +42 -1
  105. package/dist/esm/components/confirm-modal/ConfirmModal.d.ts +2 -1
  106. package/dist/esm/components/controlled-list/ControlledList.d.ts +2 -2
  107. package/dist/esm/components/controlled-list/ControlledList.stories.d.ts +2 -1
  108. package/dist/esm/components/copy-prop-id-button/CopyPropIdButton.d.ts +1 -1
  109. package/dist/esm/components/determinate-loader/DeterminateLoader.stories.d.ts +4 -3
  110. package/dist/esm/components/dropdown/Dropdown.d.ts +1 -1
  111. package/dist/esm/components/dropdown/{dropdown.stories.d.ts → Dropdown.stories.d.ts} +1 -1
  112. package/dist/esm/components/field-wrapper/FieldWrapper.d.ts +2 -2
  113. package/dist/esm/components/field-wrapper/FieldWrapper.stories.d.ts +2 -1
  114. package/dist/esm/components/font-field/FontField.d.ts +2 -1
  115. package/dist/esm/components/font-picker/FontPicker.d.ts +1 -1
  116. package/dist/esm/components/h-rule/HRule.d.ts +2 -1
  117. package/dist/esm/components/h-rule/HRule.stories.d.ts +3 -2
  118. package/dist/esm/components/header/ProjectDropdown.d.ts +2 -1
  119. package/dist/esm/components/list-field/ListField.d.ts +1 -1
  120. package/dist/esm/components/list-field/ListField.stories.d.ts +2 -1
  121. package/dist/esm/components/log-viewer/LogViewer.d.ts +1 -1
  122. package/dist/esm/components/media-variable-field/MediaVariableField.d.ts +1 -1
  123. package/dist/esm/components/modal/Modal.d.ts +1 -1
  124. package/dist/esm/components/modal/Modal.stories.d.ts +2 -1
  125. package/dist/esm/components/number-field/NumberField.d.ts +3 -3
  126. package/dist/esm/components/number-field/NumberField.js +5 -4
  127. package/dist/esm/components/number-field/NumberField.js.map +1 -1
  128. package/dist/esm/components/number-field/NumberField.stories.d.ts +2 -1
  129. package/dist/esm/components/players/AudioPlayer.d.ts +1 -1
  130. package/dist/esm/components/players/AudioPreview.d.ts +1 -1
  131. package/dist/esm/components/players/ImagePlayer.d.ts +1 -1
  132. package/dist/esm/components/players/ImagePreview.d.ts +1 -1
  133. package/dist/esm/components/players/ImageSequencePlayer.d.ts +1 -1
  134. package/dist/esm/components/players/TemplatePlayer.d.ts +1 -1
  135. package/dist/esm/components/players/VideoPlayer.d.ts +1 -1
  136. package/dist/esm/components/players/VideoPreview.d.ts +1 -1
  137. package/dist/esm/components/publish-wizard/PublishWizard.d.ts +3 -3
  138. package/dist/esm/components/publish-wizard/publish/APIIntegration.d.ts +1 -1
  139. package/dist/esm/components/publish-wizard/publish/HubSpotFlow.d.ts +1 -1
  140. package/dist/esm/components/publish-wizard/publish/WebpageHosted.d.ts +2 -2
  141. package/dist/esm/components/section/Section.d.ts +2 -1
  142. package/dist/esm/components/section/Section.stories.d.ts +3 -2
  143. package/dist/esm/components/select-field/SelectField.d.ts +1 -1
  144. package/dist/esm/components/select-field/SelectField.stories.d.ts +2 -1
  145. package/dist/esm/components/shortcut-menu/ShortcutMenu.stories.d.ts +2 -1
  146. package/dist/esm/components/slider-field/SliderField.d.ts +1 -1
  147. package/dist/esm/components/slider-field/SliderField.stories.d.ts +2 -1
  148. package/dist/esm/components/smpte-field/SMPTEField.d.ts +1 -1
  149. package/dist/esm/components/tabs/Tabs.stories.d.ts +3 -2
  150. package/dist/esm/components/tag/Tag.d.ts +9 -1
  151. package/dist/esm/components/text-area-autocomplete/TextAreaAutocomplete.d.ts +2 -1
  152. package/dist/esm/components/text-area-field/TextAreaField.d.ts +1 -1
  153. package/dist/esm/components/text-area-field/TextAreaField.stories.d.ts +2 -1
  154. package/dist/esm/components/text-field/TextField.d.ts +1 -1
  155. package/dist/esm/components/text-field/TextField.stories.d.ts +2 -1
  156. package/dist/esm/constants/icons.d.ts +80 -79
  157. package/package.json +1 -1
  158. package/dist/cjs/components/advanced-number-field/AdvancedNumberField.test.d.ts +0 -1
  159. package/dist/cjs/components/advanced-number-field/AdvancedNumberField.test.js +0 -377
  160. package/dist/cjs/components/advanced-number-field/AdvancedNumberField.test.js.map +0 -1
  161. package/dist/cjs/components/anchor-field/AnchorField.test.d.ts +0 -1
  162. package/dist/cjs/components/anchor-field/AnchorField.test.js +0 -87
  163. package/dist/cjs/components/anchor-field/AnchorField.test.js.map +0 -1
  164. package/dist/cjs/components/asset-details/AssetDetails.test.d.ts +0 -1
  165. package/dist/cjs/components/asset-details/AssetDetails.test.js +0 -439
  166. package/dist/cjs/components/asset-details/AssetDetails.test.js.map +0 -1
  167. package/dist/cjs/components/assets/AssetField.test.d.ts +0 -1
  168. package/dist/cjs/components/assets/AssetField.test.js +0 -464
  169. package/dist/cjs/components/assets/AssetField.test.js.map +0 -1
  170. package/dist/cjs/components/assets/AssetsTableAssetIdCell.test.d.ts +0 -1
  171. package/dist/cjs/components/assets/AssetsTableAssetIdCell.test.js +0 -190
  172. package/dist/cjs/components/assets/AssetsTableAssetIdCell.test.js.map +0 -1
  173. package/dist/cjs/components/assets/AssetsTableAssetIdFilter.test.d.ts +0 -1
  174. package/dist/cjs/components/assets/AssetsTableAssetIdFilter.test.js +0 -82
  175. package/dist/cjs/components/assets/AssetsTableAssetIdFilter.test.js.map +0 -1
  176. package/dist/cjs/components/assets/AssetsTableComplexTagCell.test.d.ts +0 -1
  177. package/dist/cjs/components/assets/AssetsTableComplexTagCell.test.js +0 -125
  178. package/dist/cjs/components/assets/AssetsTableComplexTagCell.test.js.map +0 -1
  179. package/dist/cjs/components/assets/AssetsTableDateCell.test.d.ts +0 -1
  180. package/dist/cjs/components/assets/AssetsTableDateCell.test.js +0 -116
  181. package/dist/cjs/components/assets/AssetsTableDateCell.test.js.map +0 -1
  182. package/dist/cjs/components/controlled-list/ControlledList.test.d.ts +0 -1
  183. package/dist/cjs/components/controlled-list/ControlledList.test.js +0 -427
  184. package/dist/cjs/components/controlled-list/ControlledList.test.js.map +0 -1
  185. package/dist/cjs/components/copy-prop-id-button/CopyPropIdButton.test.d.ts +0 -1
  186. package/dist/cjs/components/copy-prop-id-button/CopyPropIdButton.test.js +0 -495
  187. package/dist/cjs/components/copy-prop-id-button/CopyPropIdButton.test.js.map +0 -1
  188. package/dist/cjs/components/number-field/NumberField.test.d.ts +0 -1
  189. package/dist/cjs/components/number-field/NumberField.test.js +0 -241
  190. package/dist/cjs/components/number-field/NumberField.test.js.map +0 -1
  191. package/dist/cjs/components/service-icon/ServiceIcon.test.d.ts +0 -0
  192. package/dist/cjs/components/service-icon/ServiceIcon.test.js +0 -1
  193. package/dist/cjs/components/service-icon/ServiceIcon.test.js.map +0 -1
  194. package/dist/cjs/components/tag/Tag.test.d.ts +0 -0
  195. package/dist/cjs/components/tag/Tag.test.js +0 -1
  196. package/dist/cjs/components/tag/Tag.test.js.map +0 -1
  197. package/dist/cjs/components/text-field/TextField.test.d.ts +0 -1
  198. package/dist/cjs/components/text-field/TextField.test.js +0 -540
  199. package/dist/cjs/components/text-field/TextField.test.js.map +0 -1
  200. package/dist/cjs/interfaces/field.d.ts +0 -0
  201. package/dist/cjs/interfaces/field.js +0 -1
  202. package/dist/cjs/interfaces/field.js.map +0 -1
  203. package/dist/cjs/test/setup.d.ts +0 -1
  204. package/dist/cjs/test/setup.js +0 -97
  205. package/dist/cjs/test/setup.js.map +0 -1
  206. package/dist/cjs/test/utils.d.ts +0 -26
  207. package/dist/cjs/test/utils.js +0 -44
  208. package/dist/cjs/test/utils.js.map +0 -1
  209. package/dist/cjs/utils/override.d.ts +0 -11
  210. package/dist/cjs/utils/override.js +0 -15
  211. package/dist/cjs/utils/override.js.map +0 -1
  212. package/dist/esm/components/advanced-number-field/AdvancedNumberField.test.d.ts +0 -1
  213. package/dist/esm/components/advanced-number-field/AdvancedNumberField.test.js +0 -361
  214. package/dist/esm/components/advanced-number-field/AdvancedNumberField.test.js.map +0 -1
  215. package/dist/esm/components/anchor-field/AnchorField.test.d.ts +0 -1
  216. package/dist/esm/components/anchor-field/AnchorField.test.js +0 -81
  217. package/dist/esm/components/anchor-field/AnchorField.test.js.map +0 -1
  218. package/dist/esm/components/asset-details/AssetDetails.test.d.ts +0 -1
  219. package/dist/esm/components/asset-details/AssetDetails.test.js +0 -367
  220. package/dist/esm/components/asset-details/AssetDetails.test.js.map +0 -1
  221. package/dist/esm/components/assets/AssetField.test.d.ts +0 -1
  222. package/dist/esm/components/assets/AssetField.test.js +0 -311
  223. package/dist/esm/components/assets/AssetField.test.js.map +0 -1
  224. package/dist/esm/components/assets/AssetsTableAssetIdCell.test.d.ts +0 -1
  225. package/dist/esm/components/assets/AssetsTableAssetIdCell.test.js +0 -105
  226. package/dist/esm/components/assets/AssetsTableAssetIdCell.test.js.map +0 -1
  227. package/dist/esm/components/assets/AssetsTableAssetIdFilter.test.d.ts +0 -1
  228. package/dist/esm/components/assets/AssetsTableAssetIdFilter.test.js +0 -63
  229. package/dist/esm/components/assets/AssetsTableAssetIdFilter.test.js.map +0 -1
  230. package/dist/esm/components/assets/AssetsTableComplexTagCell.test.d.ts +0 -1
  231. package/dist/esm/components/assets/AssetsTableComplexTagCell.test.js +0 -100
  232. package/dist/esm/components/assets/AssetsTableComplexTagCell.test.js.map +0 -1
  233. package/dist/esm/components/assets/AssetsTableDateCell.test.d.ts +0 -1
  234. package/dist/esm/components/assets/AssetsTableDateCell.test.js +0 -60
  235. package/dist/esm/components/assets/AssetsTableDateCell.test.js.map +0 -1
  236. package/dist/esm/components/controlled-list/ControlledList.test.d.ts +0 -1
  237. package/dist/esm/components/controlled-list/ControlledList.test.js +0 -400
  238. package/dist/esm/components/controlled-list/ControlledList.test.js.map +0 -1
  239. package/dist/esm/components/copy-prop-id-button/CopyPropIdButton.test.d.ts +0 -1
  240. package/dist/esm/components/copy-prop-id-button/CopyPropIdButton.test.js +0 -357
  241. package/dist/esm/components/copy-prop-id-button/CopyPropIdButton.test.js.map +0 -1
  242. package/dist/esm/components/number-field/NumberField.test.d.ts +0 -1
  243. package/dist/esm/components/number-field/NumberField.test.js +0 -192
  244. package/dist/esm/components/number-field/NumberField.test.js.map +0 -1
  245. package/dist/esm/components/service-icon/ServiceIcon.test.d.ts +0 -0
  246. package/dist/esm/components/service-icon/ServiceIcon.test.js +0 -1
  247. package/dist/esm/components/service-icon/ServiceIcon.test.js.map +0 -1
  248. package/dist/esm/components/tag/Tag.test.d.ts +0 -0
  249. package/dist/esm/components/tag/Tag.test.js +0 -1
  250. package/dist/esm/components/tag/Tag.test.js.map +0 -1
  251. package/dist/esm/components/text-field/TextField.test.d.ts +0 -1
  252. package/dist/esm/components/text-field/TextField.test.js +0 -469
  253. package/dist/esm/components/text-field/TextField.test.js.map +0 -1
  254. package/dist/esm/interfaces/field.d.ts +0 -0
  255. package/dist/esm/interfaces/field.js +0 -1
  256. package/dist/esm/interfaces/field.js.map +0 -1
  257. package/dist/esm/test/setup.d.ts +0 -1
  258. package/dist/esm/test/setup.js +0 -70
  259. package/dist/esm/test/setup.js.map +0 -1
  260. package/dist/esm/test/utils.d.ts +0 -26
  261. package/dist/esm/test/utils.js +0 -27
  262. package/dist/esm/test/utils.js.map +0 -1
  263. package/dist/esm/utils/override.d.ts +0 -11
  264. package/dist/esm/utils/override.js +0 -9
  265. package/dist/esm/utils/override.js.map +0 -1
  266. /package/dist/cjs/components/dropdown/{dropdown.stories.js → Dropdown.stories.js} +0 -0
  267. /package/dist/cjs/components/dropdown/{dropdown.stories.js.map → Dropdown.stories.js.map} +0 -0
  268. /package/dist/esm/components/dropdown/{dropdown.stories.js → Dropdown.stories.js} +0 -0
  269. /package/dist/esm/components/dropdown/{dropdown.stories.js.map → Dropdown.stories.js.map} +0 -0
@@ -1,357 +0,0 @@
1
- import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
2
- import React from 'react';
3
- import { render, fireEvent } from '@testing-library/react';
4
- // Mock Button component
5
- vi.mock('../button/Button', () => ({
6
- default: ({ children, tooltip, onClick, size, style, ...props }) => (React.createElement("button", { "data-testid": 'mock-button', "data-tooltip": typeof tooltip === 'string' ? tooltip : tooltip?.content, "data-size": size, "data-style": style, onClick: onClick, ...props }, children))
7
- }));
8
- // Mock clipboard icon
9
- vi.mock('../../constants/icons', () => ({
10
- ICON_CLIPBOARD: React.createElement("span", { "data-testid": 'icon-clipboard' }, "\uD83D\uDCCB")
11
- }));
12
- // Mock copy constants
13
- vi.mock('../../constants/copy', () => ({
14
- compositions: {
15
- tooltipPropId: 'Copy Property ID'
16
- }
17
- }));
18
- import CopyPropIdButton from './CopyPropIdButton';
19
- const createMockProps = (overrides = {}) => ({
20
- copyPropId: 'test-prop-id-123',
21
- ...overrides
22
- });
23
- const renderComponent = (props = {}) => {
24
- const mockProps = createMockProps(props);
25
- return {
26
- ...render(React.createElement(CopyPropIdButton, { ...mockProps })),
27
- props: mockProps
28
- };
29
- };
30
- describe('CopyPropIdButton', () => {
31
- let originalClipboard;
32
- beforeEach(() => {
33
- vi.clearAllMocks();
34
- // Store original clipboard
35
- originalClipboard = navigator.clipboard;
36
- // Mock successful clipboard by default
37
- Object.defineProperty(navigator, 'clipboard', {
38
- value: {
39
- writeText: vi.fn().mockResolvedValue(undefined)
40
- },
41
- writable: true,
42
- configurable: true
43
- });
44
- });
45
- afterEach(() => {
46
- // Restore original clipboard
47
- Object.defineProperty(navigator, 'clipboard', {
48
- value: originalClipboard,
49
- writable: true,
50
- configurable: true
51
- });
52
- });
53
- describe('Component Structure and Rendering', () => {
54
- it('renders with correct structure and CSS classes', () => {
55
- const { getByTestId } = renderComponent();
56
- const button = getByTestId('mock-button');
57
- expect(button).toBeTruthy();
58
- });
59
- it('renders clipboard icon', () => {
60
- const { getByTestId } = renderComponent();
61
- const icon = getByTestId('icon-clipboard');
62
- expect(icon).toBeTruthy();
63
- });
64
- it('renders with correct button properties', () => {
65
- const { getByTestId } = renderComponent();
66
- const button = getByTestId('mock-button');
67
- expect(button.getAttribute('data-size')).toBe('small');
68
- expect(button.getAttribute('data-style')).toBe('subtle');
69
- expect(button.getAttribute('data-tooltip')).toBe('Copy Property ID');
70
- });
71
- it('renders button as clickable element', () => {
72
- const { getByTestId } = renderComponent();
73
- const button = getByTestId('mock-button');
74
- expect(button.tagName).toBe('BUTTON');
75
- });
76
- });
77
- describe('Props Handling', () => {
78
- it('accepts copyPropId prop', () => {
79
- const customPropId = 'custom-property-id-456';
80
- expect(() => {
81
- renderComponent({ copyPropId: customPropId });
82
- }).not.toThrow();
83
- });
84
- it('accepts onNotification callback prop', () => {
85
- const mockOnNotification = vi.fn();
86
- expect(() => {
87
- renderComponent({ onNotification: mockOnNotification });
88
- }).not.toThrow();
89
- });
90
- it('accepts onError callback prop', () => {
91
- const mockOnError = vi.fn();
92
- expect(() => {
93
- renderComponent({ onError: mockOnError });
94
- }).not.toThrow();
95
- });
96
- it('works with all optional props undefined', () => {
97
- expect(() => {
98
- renderComponent({
99
- copyPropId: 'test-id'
100
- // onNotification and onError are undefined
101
- });
102
- }).not.toThrow();
103
- });
104
- });
105
- describe('Clipboard Copy Functionality', () => {
106
- it('calls navigator.clipboard.writeText with correct prop ID when clicked', () => {
107
- const propId = 'unique-property-id-789';
108
- const { getByTestId } = renderComponent({ copyPropId: propId });
109
- const button = getByTestId('mock-button');
110
- fireEvent.click(button);
111
- expect(navigator.clipboard.writeText).toHaveBeenCalledWith(propId);
112
- expect(navigator.clipboard.writeText).toHaveBeenCalledTimes(1);
113
- });
114
- it('calls onNotification with success message when copy succeeds', async () => {
115
- const mockOnNotification = vi.fn();
116
- const { getByTestId } = renderComponent({
117
- copyPropId: 'test-id',
118
- onNotification: mockOnNotification
119
- });
120
- const button = getByTestId('mock-button');
121
- fireEvent.click(button);
122
- // Wait for promise to resolve
123
- await new Promise(resolve => setTimeout(resolve, 0));
124
- expect(mockOnNotification).toHaveBeenCalledWith('Property ID copied to clipboard.');
125
- expect(mockOnNotification).toHaveBeenCalledTimes(1);
126
- });
127
- it('does not call onNotification when callback is not provided', async () => {
128
- const { getByTestId } = renderComponent({
129
- copyPropId: 'test-id'
130
- // onNotification not provided
131
- });
132
- const button = getByTestId('mock-button');
133
- fireEvent.click(button);
134
- await new Promise(resolve => setTimeout(resolve, 0));
135
- // Should not throw error even without callback
136
- expect(navigator.clipboard.writeText).toHaveBeenCalledWith('test-id');
137
- });
138
- it('calls onError when clipboard write fails', async () => {
139
- // Mock clipboard to fail
140
- Object.defineProperty(navigator, 'clipboard', {
141
- value: {
142
- writeText: vi.fn().mockRejectedValue(new Error('Clipboard access denied'))
143
- },
144
- writable: true,
145
- configurable: true
146
- });
147
- const mockOnError = vi.fn();
148
- const { getByTestId } = renderComponent({
149
- copyPropId: 'test-id',
150
- onError: mockOnError
151
- });
152
- const button = getByTestId('mock-button');
153
- fireEvent.click(button);
154
- // Wait for promise to reject
155
- await new Promise(resolve => setTimeout(resolve, 0));
156
- expect(mockOnError).toHaveBeenCalledWith('Error copying property ID to clipboard.');
157
- expect(mockOnError).toHaveBeenCalledTimes(1);
158
- });
159
- it('does not call onError when callback is not provided and copy fails', async () => {
160
- // Mock clipboard to fail
161
- Object.defineProperty(navigator, 'clipboard', {
162
- value: {
163
- writeText: vi.fn().mockRejectedValue(new Error('Clipboard access denied'))
164
- },
165
- writable: true,
166
- configurable: true
167
- });
168
- const { getByTestId } = renderComponent({
169
- copyPropId: 'test-id'
170
- // onError not provided
171
- });
172
- const button = getByTestId('mock-button');
173
- fireEvent.click(button);
174
- await new Promise(resolve => setTimeout(resolve, 0));
175
- // Should not throw error even without callback
176
- expect(navigator.clipboard.writeText).toHaveBeenCalledWith('test-id');
177
- });
178
- it('handles multiple clicks correctly', async () => {
179
- const mockOnNotification = vi.fn();
180
- const propId = 'multi-click-test-id';
181
- const { getByTestId } = renderComponent({
182
- copyPropId: propId,
183
- onNotification: mockOnNotification
184
- });
185
- const button = getByTestId('mock-button');
186
- // Click multiple times
187
- fireEvent.click(button);
188
- fireEvent.click(button);
189
- fireEvent.click(button);
190
- await new Promise(resolve => setTimeout(resolve, 0));
191
- expect(navigator.clipboard.writeText).toHaveBeenCalledTimes(3);
192
- expect(navigator.clipboard.writeText).toHaveBeenNthCalledWith(1, propId);
193
- expect(navigator.clipboard.writeText).toHaveBeenNthCalledWith(2, propId);
194
- expect(navigator.clipboard.writeText).toHaveBeenNthCalledWith(3, propId);
195
- expect(mockOnNotification).toHaveBeenCalledTimes(3);
196
- });
197
- });
198
- describe('Event Handling', () => {
199
- it('binds click handler correctly', () => {
200
- const { getByTestId } = renderComponent();
201
- const button = getByTestId('mock-button');
202
- expect(button.onclick).toBeTruthy();
203
- });
204
- it('uses arrow function for click handler to maintain this context', () => {
205
- const component = new CopyPropIdButton({ copyPropId: 'test' });
206
- // Verify that clickHandler is bound to the component instance
207
- expect(typeof component['clickHandler']).toBe('function');
208
- });
209
- it('calls copyPropId method when clicked', () => {
210
- const component = new CopyPropIdButton({ copyPropId: 'test-id' });
211
- const copyPropIdSpy = vi.spyOn(component, 'copyPropId');
212
- // Simulate click handler call
213
- component['clickHandler']();
214
- expect(copyPropIdSpy).toHaveBeenCalledTimes(1);
215
- });
216
- });
217
- describe('Component Architecture', () => {
218
- it('extends React.PureComponent correctly', () => {
219
- const props = createMockProps();
220
- const component = new CopyPropIdButton(props);
221
- expect(component).toBeInstanceOf(React.PureComponent);
222
- expect(typeof component.render).toBe('function');
223
- });
224
- it('has correct component state type (undefined)', () => {
225
- const props = createMockProps();
226
- const component = new CopyPropIdButton(props);
227
- expect(component.state).toBeUndefined();
228
- });
229
- it('has private methods with correct access modifiers', () => {
230
- const component = new CopyPropIdButton({ copyPropId: 'test' });
231
- // These should be accessible as they're part of the component
232
- expect(typeof component['clickHandler']).toBe('function');
233
- expect(typeof component['copyPropId']).toBe('function');
234
- });
235
- it('initializes with correct props', () => {
236
- const testProps = createMockProps({
237
- copyPropId: 'initialization-test-id'
238
- });
239
- const component = new CopyPropIdButton(testProps);
240
- expect(component.props.copyPropId).toBe('initialization-test-id');
241
- });
242
- });
243
- describe('Edge Cases and Error Scenarios', () => {
244
- it('handles empty string copyPropId', async () => {
245
- const mockOnNotification = vi.fn();
246
- const { getByTestId } = renderComponent({
247
- copyPropId: '',
248
- onNotification: mockOnNotification
249
- });
250
- const button = getByTestId('mock-button');
251
- fireEvent.click(button);
252
- await new Promise(resolve => setTimeout(resolve, 0));
253
- expect(navigator.clipboard.writeText).toHaveBeenCalledWith('');
254
- expect(mockOnNotification).toHaveBeenCalledWith('Property ID copied to clipboard.');
255
- });
256
- it('handles very long copyPropId strings', async () => {
257
- const longPropId = 'a'.repeat(1000);
258
- const mockOnNotification = vi.fn();
259
- const { getByTestId } = renderComponent({
260
- copyPropId: longPropId,
261
- onNotification: mockOnNotification
262
- });
263
- const button = getByTestId('mock-button');
264
- fireEvent.click(button);
265
- await new Promise(resolve => setTimeout(resolve, 0));
266
- expect(navigator.clipboard.writeText).toHaveBeenCalledWith(longPropId);
267
- expect(mockOnNotification).toHaveBeenCalledTimes(1);
268
- });
269
- it('handles special characters in copyPropId', async () => {
270
- const specialCharsPropId = 'prop-id-with-特殊字符-and-émojis-🎉-and-symbols-@#$%^&*()';
271
- const { getByTestId } = renderComponent({
272
- copyPropId: specialCharsPropId
273
- });
274
- const button = getByTestId('mock-button');
275
- fireEvent.click(button);
276
- await new Promise(resolve => setTimeout(resolve, 0));
277
- expect(navigator.clipboard.writeText).toHaveBeenCalledWith(specialCharsPropId);
278
- });
279
- it('documents that component expects clipboard API to be available', () => {
280
- // This test documents that the component assumes navigator.clipboard exists
281
- // and will throw an error if it's not available. This is expected behavior
282
- // as the component is designed for modern browsers that support the Clipboard API.
283
- const { getByTestId } = renderComponent({
284
- copyPropId: 'test-id'
285
- });
286
- const button = getByTestId('mock-button');
287
- expect(button).toBeTruthy();
288
- // The component relies on navigator.clipboard being available
289
- // If it's not available, the component would need to be enhanced
290
- // to handle this gracefully or use a fallback method
291
- });
292
- });
293
- describe('Accessibility and User Experience', () => {
294
- it('provides meaningful tooltip text', () => {
295
- const { getByTestId } = renderComponent();
296
- const button = getByTestId('mock-button');
297
- expect(button.getAttribute('data-tooltip')).toBe('Copy Property ID');
298
- });
299
- it('uses appropriate button sizing for UI context', () => {
300
- const { getByTestId } = renderComponent();
301
- const button = getByTestId('mock-button');
302
- expect(button.getAttribute('data-size')).toBe('small');
303
- });
304
- it('uses subtle styling to not overpower interface', () => {
305
- const { getByTestId } = renderComponent();
306
- const button = getByTestId('mock-button');
307
- expect(button.getAttribute('data-style')).toBe('subtle');
308
- });
309
- it('provides visual feedback through icon', () => {
310
- const { getByTestId } = renderComponent();
311
- const icon = getByTestId('icon-clipboard');
312
- expect(icon).toBeTruthy();
313
- expect(icon.textContent).toBe('📋');
314
- });
315
- });
316
- describe('Integration with Dependencies', () => {
317
- it('properly integrates with Button component', () => {
318
- const { getByTestId } = renderComponent();
319
- const button = getByTestId('mock-button');
320
- // Verify all expected props are passed to Button
321
- expect(button.getAttribute('data-tooltip')).toBe('Copy Property ID');
322
- expect(button.getAttribute('data-size')).toBe('small');
323
- expect(button.getAttribute('data-style')).toBe('subtle');
324
- });
325
- it('uses ICON_CLIPBOARD from constants', () => {
326
- const { getByTestId } = renderComponent();
327
- const icon = getByTestId('icon-clipboard');
328
- expect(icon).toBeTruthy();
329
- });
330
- it('uses tooltip text from copy constants', () => {
331
- const { getByTestId } = renderComponent();
332
- const button = getByTestId('mock-button');
333
- expect(button.getAttribute('data-tooltip')).toBe('Copy Property ID');
334
- });
335
- });
336
- describe('Performance Considerations', () => {
337
- it('uses PureComponent for optimal re-rendering', () => {
338
- const component = new CopyPropIdButton({ copyPropId: 'test' });
339
- expect(component).toBeInstanceOf(React.PureComponent);
340
- });
341
- it('binds click handler once during initialization', () => {
342
- const component = new CopyPropIdButton({ copyPropId: 'test' });
343
- const handler1 = component['clickHandler'];
344
- const handler2 = component['clickHandler'];
345
- // Should be the same function reference
346
- expect(handler1).toBe(handler2);
347
- });
348
- it('does not create new functions on each render', () => {
349
- const { rerender } = render(React.createElement(CopyPropIdButton, { copyPropId: "test1" }));
350
- rerender(React.createElement(CopyPropIdButton, { copyPropId: "test2" }));
351
- // Component should handle re-renders efficiently
352
- // This test ensures no errors during re-render
353
- expect(true).toBe(true);
354
- });
355
- });
356
- });
357
- //# sourceMappingURL=CopyPropIdButton.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CopyPropIdButton.test.js","sourceRoot":"","sources":["../../../../src/components/copy-prop-id-button/CopyPropIdButton.test.tsx"],"names":[],"mappings":"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"}
@@ -1,192 +0,0 @@
1
- import React from 'react';
2
- import { describe, it, expect, vi, beforeEach } from 'vitest';
3
- import { render, fireEvent, screen } from '../../test/utils';
4
- import NumberField, { validateNumInput } from './NumberField';
5
- describe('NumberField', () => {
6
- const defaultProps = {
7
- value: 10,
8
- onChange: vi.fn(),
9
- label: 'Test Number Field'
10
- };
11
- beforeEach(() => {
12
- vi.clearAllMocks();
13
- });
14
- describe('Rendering', () => {
15
- it('renders without crashing', () => {
16
- render(React.createElement(NumberField, { ...defaultProps }));
17
- const input = screen.getByRole('spinbutton');
18
- expect(input).toBeDefined();
19
- });
20
- it('displays the correct value', () => {
21
- render(React.createElement(NumberField, { ...defaultProps, value: 25 }));
22
- const input = screen.getByRole('spinbutton');
23
- expect(input.value).toBe('25');
24
- });
25
- it('displays placeholder when provided', () => {
26
- render(React.createElement(NumberField, { ...defaultProps, placeholder: 'Enter number' }));
27
- const input = screen.getByRole('spinbutton');
28
- expect(input.placeholder).toBe('Enter number');
29
- });
30
- it('displays empty string when value is null', () => {
31
- render(React.createElement(NumberField, { ...defaultProps, value: null }));
32
- const input = screen.getByRole('spinbutton');
33
- expect(input.value).toBe('');
34
- });
35
- it('applies min and max attributes', () => {
36
- render(React.createElement(NumberField, { ...defaultProps, min: 0, max: 100 }));
37
- const input = screen.getByRole('spinbutton');
38
- expect(input.min).toBe('0');
39
- expect(input.max).toBe('100');
40
- });
41
- it('sets readOnly attribute when readOnly prop is true', () => {
42
- render(React.createElement(NumberField, { ...defaultProps, readOnly: true }));
43
- const input = screen.getByRole('spinbutton');
44
- expect(input.readOnly).toBe(true);
45
- });
46
- });
47
- describe('User Interactions', () => {
48
- it('calls onChange when value changes', () => {
49
- const onChange = vi.fn();
50
- render(React.createElement(NumberField, { ...defaultProps, onChange: onChange }));
51
- const input = screen.getByRole('spinbutton');
52
- fireEvent.change(input, { target: { value: '42' } });
53
- expect(onChange).toHaveBeenCalledWith(42);
54
- });
55
- it('calls onChange with min value when empty string is entered', () => {
56
- const onChange = vi.fn();
57
- render(React.createElement(NumberField, { ...defaultProps, onChange: onChange, min: 5 }));
58
- const input = screen.getByRole('spinbutton');
59
- fireEvent.change(input, { target: { value: '' } });
60
- expect(onChange).toHaveBeenCalledWith(5);
61
- });
62
- it('parses float values correctly', () => {
63
- const onChange = vi.fn();
64
- render(React.createElement(NumberField, { ...defaultProps, onChange: onChange }));
65
- const input = screen.getByRole('spinbutton');
66
- fireEvent.change(input, { target: { value: '3.14' } });
67
- expect(onChange).toHaveBeenCalledWith(3.14);
68
- });
69
- it('calls onBlur when provided', () => {
70
- const onBlur = vi.fn();
71
- render(React.createElement(NumberField, { ...defaultProps, onBlur: onBlur }));
72
- const input = screen.getByRole('spinbutton');
73
- fireEvent.blur(input, { target: { value: '15' } });
74
- expect(onBlur).toHaveBeenCalledWith('15');
75
- });
76
- it('focuses input on mount when focusOnMount is true', () => {
77
- render(React.createElement(NumberField, { ...defaultProps, focusOnMount: true }));
78
- const input = screen.getByRole('spinbutton');
79
- expect(document.activeElement).toBe(input);
80
- });
81
- });
82
- describe('Keyboard Interactions', () => {
83
- it('increases value by 9 when Shift+ArrowUp is pressed', () => {
84
- const onChange = vi.fn();
85
- render(React.createElement(NumberField, { ...defaultProps, value: 10, onChange: onChange }));
86
- const input = screen.getByRole('spinbutton');
87
- fireEvent.keyDown(input, {
88
- code: 'ArrowUp',
89
- shiftKey: true
90
- });
91
- expect(onChange).toHaveBeenCalledWith(19);
92
- });
93
- it('decreases value by 9 when Shift+ArrowDown is pressed', () => {
94
- const onChange = vi.fn();
95
- render(React.createElement(NumberField, { ...defaultProps, value: 20, onChange: onChange }));
96
- const input = screen.getByRole('spinbutton');
97
- fireEvent.keyDown(input, {
98
- code: 'ArrowDown',
99
- shiftKey: true
100
- });
101
- expect(onChange).toHaveBeenCalledWith(11);
102
- });
103
- it('does not call onChange when value would exceed max limit', () => {
104
- const onChange = vi.fn();
105
- render(React.createElement(NumberField, { ...defaultProps, value: 95, max: 100, onChange: onChange }));
106
- const input = screen.getByRole('spinbutton');
107
- fireEvent.keyDown(input, {
108
- code: 'ArrowUp',
109
- shiftKey: true
110
- });
111
- expect(onChange).not.toHaveBeenCalled();
112
- });
113
- it('sets error state when value would go below min limit', () => {
114
- const onChange = vi.fn();
115
- render(React.createElement(NumberField, { ...defaultProps, value: 5, min: 0, onChange: onChange }));
116
- const input = screen.getByRole('spinbutton');
117
- fireEvent.keyDown(input, {
118
- code: 'ArrowDown',
119
- shiftKey: true
120
- });
121
- // The component should set error state instead of calling onChange
122
- const { container } = render(React.createElement(NumberField, { ...defaultProps, value: -5, min: 0 }));
123
- const formField = container.querySelector('.number-field.invalid');
124
- expect(formField).toBeDefined();
125
- });
126
- });
127
- describe('Validation', () => {
128
- it('shows error state when value is below minimum', () => {
129
- const { container } = render(React.createElement(NumberField, { ...defaultProps, value: 5, min: 10 }));
130
- const formField = container.querySelector('.number-field.invalid');
131
- expect(formField).toBeDefined();
132
- });
133
- it('shows error state when value is above maximum', () => {
134
- const { container } = render(React.createElement(NumberField, { ...defaultProps, value: 150, max: 100 }));
135
- const formField = container.querySelector('.number-field.invalid');
136
- expect(formField).toBeDefined();
137
- });
138
- it('shows error state for min constraint', () => {
139
- const { container } = render(React.createElement(NumberField, { ...defaultProps, value: 5, min: 10 }));
140
- const formField = container.querySelector('.number-field.invalid');
141
- expect(formField).toBeDefined();
142
- });
143
- it('shows error state for max constraint', () => {
144
- const { container } = render(React.createElement(NumberField, { ...defaultProps, value: 150, max: 100 }));
145
- const formField = container.querySelector('.number-field.invalid');
146
- expect(formField).toBeDefined();
147
- });
148
- it('shows error state for min and max constraints', () => {
149
- const { container } = render(React.createElement(NumberField, { ...defaultProps, value: 150, min: 10, max: 100 }));
150
- const formField = container.querySelector('.number-field.invalid');
151
- expect(formField).toBeDefined();
152
- });
153
- it('does not show error state when value is valid', () => {
154
- const { container } = render(React.createElement(NumberField, { ...defaultProps, value: 50, min: 10, max: 100 }));
155
- const formField = container.querySelector('.number-field.invalid');
156
- expect(formField).toBeNull();
157
- });
158
- });
159
- describe('Component Updates', () => {
160
- it('updates internal state when props.value changes', () => {
161
- const { rerender } = render(React.createElement(NumberField, { ...defaultProps, value: 10 }));
162
- rerender(React.createElement(NumberField, { ...defaultProps, value: 20 }));
163
- const input = screen.getByRole('spinbutton');
164
- expect(input.value).toBe('20');
165
- });
166
- it('validates value when props change', () => {
167
- const { container, rerender } = render(React.createElement(NumberField, { ...defaultProps, value: 50 }));
168
- rerender(React.createElement(NumberField, { ...defaultProps, value: 150, max: 100 }));
169
- const formField = container.querySelector('.number-field.invalid');
170
- expect(formField).toBeDefined();
171
- });
172
- });
173
- });
174
- describe('validateNumInput utility', () => {
175
- it('returns true for valid values within range', () => {
176
- expect(validateNumInput(50, 0, 100)).toBe(true);
177
- expect(validateNumInput(0, 0, 100)).toBe(true);
178
- expect(validateNumInput(100, 0, 100)).toBe(true);
179
- });
180
- it('returns false for values below minimum', () => {
181
- expect(validateNumInput(-5, 0, 100)).toBe(false);
182
- });
183
- it('returns false for values above maximum', () => {
184
- expect(validateNumInput(150, 0, 100)).toBe(false);
185
- });
186
- it('handles undefined min/max values', () => {
187
- expect(validateNumInput(50, undefined, 100)).toBe(true);
188
- expect(validateNumInput(50, 0, undefined)).toBe(true);
189
- expect(validateNumInput(50, undefined, undefined)).toBe(true);
190
- });
191
- });
192
- //# sourceMappingURL=NumberField.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NumberField.test.js","sourceRoot":"","sources":["../../../../src/components/number-field/NumberField.test.tsx"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- //# sourceMappingURL=ServiceIcon.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ServiceIcon.test.js","sourceRoot":"","sources":["../../../../src/components/service-icon/ServiceIcon.test.tsx"],"names":[],"mappings":""}
File without changes
@@ -1 +0,0 @@
1
- //# sourceMappingURL=Tag.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Tag.test.js","sourceRoot":"","sources":["../../../../src/components/tag/Tag.test.tsx"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- export {};