@hashicorp/mds-react 0.9.0 → 0.9.2

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 (535) hide show
  1. package/{dist/components → components}/accordion/index.d.ts +1 -1
  2. package/{dist/components → components}/accordion/item/index.d.ts +1 -1
  3. package/{dist/components → components}/alert/icon.d.ts +2 -2
  4. package/{dist/components → components}/alert/index.d.ts +6 -6
  5. package/{dist/components → components}/badge/index.d.ts +1 -1
  6. package/{dist/components → components}/badge-count/index.d.ts +1 -1
  7. package/{dist/components → components}/breadcrumbs/index.d.ts +2 -2
  8. package/{dist/components → components}/breadcrumbs/item/index.d.ts +1 -1
  9. package/{dist/components → components}/breadcrumbs/truncation-button/index.d.ts +1 -1
  10. package/{dist/components → components}/breadcrumbs/types/index.d.ts +1 -1
  11. package/{dist/components → components}/button/index.d.ts +2 -2
  12. package/{dist/components → components}/card/card-thumbnail/index.d.ts +1 -1
  13. package/components/card/index.d.ts +3 -0
  14. package/{dist/components → components}/card/types.d.ts +3 -3
  15. package/{dist/components → components}/code-block/code-lines/index.d.ts +8 -1
  16. package/{dist/components → components}/code-block/code-lines/utils/split-html-into-lines.d.ts +1 -1
  17. package/{dist/components → components}/code-block/code-lines/utils/split-jsx-into-lines.d.ts +1 -1
  18. package/components/code-block/hidden-copy-content/index.d.ts +5 -0
  19. package/{dist/components → components}/code-block/index.d.ts +1 -1
  20. package/{dist/components → components}/combo-box-primitive/index.d.ts +0 -1
  21. package/{dist/components → components}/dialog-primitive/index.d.ts +1 -1
  22. package/{dist/components → components}/disclosure-primitive/index.d.ts +2 -1
  23. package/{dist/components → components}/disclosure-primitive/use-disclosure-primitive.d.ts +2 -2
  24. package/{dist/components → components}/dismiss-button/index.d.ts +0 -1
  25. package/{dist/components → components}/dropdown/index.d.ts +6 -6
  26. package/{dist/components → components}/dropdown/list-item/custom.d.ts +1 -1
  27. package/{dist/components → components}/dropdown/list-item/index.d.ts +4 -4
  28. package/{dist/components → components}/dropdown/list-item/interactive.d.ts +1 -1
  29. package/{dist/components → components}/dropdown/list-item/separator.d.ts +1 -1
  30. package/{dist/components → components}/dropdown/list-item/title.d.ts +1 -1
  31. package/{dist/components → components}/dropdown/toggle-button/index.d.ts +2 -2
  32. package/{dist/components → components}/flight-icon/index.d.ts +2 -2
  33. package/{dist/components → components}/form/checkbox/index.d.ts +1 -1
  34. package/{dist/components → components}/form/error/index.d.ts +1 -1
  35. package/{dist/components → components}/form/field/index.d.ts +1 -1
  36. package/{dist/components → components}/form/fieldset/index.d.ts +1 -1
  37. package/{dist/components → components}/form/file-input/index.d.ts +1 -1
  38. package/{dist/components → components}/form/helper-text/index.d.ts +1 -1
  39. package/{dist/components → components}/form/label/index.d.ts +1 -1
  40. package/{dist/components → components}/form/legend/index.d.ts +1 -1
  41. package/{dist/components → components}/form/radio/index.d.ts +1 -1
  42. package/{dist/components → components}/form/radio-card/group.d.ts +1 -1
  43. package/{dist/components → components}/form/radio-card/index.d.ts +2 -2
  44. package/{dist/components → components}/form/select/index.d.ts +1 -1
  45. package/{dist/components → components}/form/super-select/index.d.ts +2 -2
  46. package/{dist/components → components}/form/text-input/index.d.ts +1 -1
  47. package/{dist/components → components}/form/textarea/index.d.ts +1 -1
  48. package/{dist/components → components}/form/toggle/index.d.ts +1 -1
  49. package/{dist/components → components}/hds/wrappers/tooltip.d.ts +4 -3
  50. package/{dist/components → components}/icon-tile/index.d.ts +1 -1
  51. package/components/index.js +77 -0
  52. package/{dist/components → components}/inline-link/index.d.ts +1 -1
  53. package/{dist/components → components}/interactive/index.d.ts +4 -3
  54. package/{dist/components → components}/legacy-button/index.d.ts +3 -3
  55. package/{dist/components → components}/legacy-button/types.d.ts +1 -1
  56. package/{dist/components → components}/legacy-button/utils.d.ts +1 -1
  57. package/{dist/components → components}/menu-primitive/index.d.ts +1 -1
  58. package/{dist/components → components}/menu-primitive/use-menu-primitive.d.ts +2 -2
  59. package/{dist/components → components}/modal/index.d.ts +1 -1
  60. package/{dist/components → components}/modal/use-modal.d.ts +2 -2
  61. package/{dist/components → components}/separator/index.d.ts +1 -1
  62. package/{dist/components → components}/standalone-link/index.d.ts +2 -2
  63. package/{dist/components → components}/table/index.d.ts +5 -5
  64. package/{dist/components → components}/table/td.d.ts +2 -2
  65. package/{dist/components → components}/table/th.d.ts +2 -2
  66. package/{dist/components → components}/table/tr.d.ts +1 -1
  67. package/{dist/components → components}/tabs/index.d.ts +3 -3
  68. package/{dist/components → components}/tabs/tab-panel.d.ts +1 -1
  69. package/{dist/components → components}/tabs/tab.d.ts +2 -2
  70. package/{dist/components → components}/tabs/use-tabs-context.d.ts +2 -2
  71. package/{dist/components → components}/text/index.d.ts +6 -6
  72. package/{dist/components → components}/visualizations/bar-chart/horizontal-chart/index.d.ts +0 -1
  73. package/{dist/components → components}/visualizations/bar-chart/index.d.ts +1 -1
  74. package/components/visualizations/donut-chart/components/arc-tooltip/index.d.ts +3 -0
  75. package/components/visualizations/donut-chart/components/external-arc-label/index.d.ts +3 -0
  76. package/components/visualizations/donut-chart/components/internal-arc-label/index.d.ts +3 -0
  77. package/{dist/components → components}/visualizations/donut-chart/index.d.ts +1 -1
  78. package/index-B9mPJh9w.js +579 -0
  79. package/index-B9mPJh9w.js.map +1 -0
  80. package/index-BHBlMMNF.js +16 -0
  81. package/index-BHBlMMNF.js.map +1 -0
  82. package/index-C4GBbW3N.js +3567 -0
  83. package/index-C4GBbW3N.js.map +1 -0
  84. package/{dist/utils/mds-context/index.js → index-DBjAbGt7.js} +19 -20
  85. package/index-DBjAbGt7.js.map +1 -0
  86. package/index-WkGIywHj.js +767 -0
  87. package/index-WkGIywHj.js.map +1 -0
  88. package/index.js +105 -0
  89. package/{dist/patterns/index.js.map → index.js.map} +1 -1
  90. package/package.json +72 -108
  91. package/{dist/patterns → patterns}/card/newsroom-card/index.d.ts +1 -1
  92. package/{dist/patterns → patterns}/card/partner-card/index.d.ts +2 -2
  93. package/{dist/patterns → patterns}/card/person-card/index.d.ts +1 -1
  94. package/{dist/patterns → patterns}/card/primitives.d.ts +5 -5
  95. package/{dist/patterns → patterns}/card/promo-card/index.d.ts +1 -1
  96. package/{dist/patterns → patterns}/card/resource-card/index.d.ts +1 -1
  97. package/{dist/patterns → patterns}/card/thumbnails/index.d.ts +1 -1
  98. package/{dist/patterns → patterns}/card/types.d.ts +6 -6
  99. package/{dist/patterns → patterns}/card/unified-card/index.d.ts +1 -1
  100. package/{dist/patterns → patterns}/copy-button/clipboard.d.ts +1 -1
  101. package/{dist/patterns → patterns}/copy-button/index.d.ts +1 -1
  102. package/patterns/index.js +25 -0
  103. package/patterns/index.js.map +1 -0
  104. package/patterns/layout/index.d.ts +69 -0
  105. package/patterns/product-logo/index.d.ts +48 -0
  106. package/{dist/patterns → patterns}/related-content/index.d.ts +1 -1
  107. package/{dist/patterns → patterns}/related-content/types.d.ts +1 -1
  108. package/style.css +1 -0
  109. package/use-screen-size-BOnkX_K-.js +9 -0
  110. package/use-screen-size-BOnkX_K-.js.map +1 -0
  111. package/utils/i18n/index.d.ts +1 -0
  112. package/utils/index.js +10 -0
  113. package/utils/index.js.map +1 -0
  114. package/{dist/utils → utils}/make-normalizer/index.d.ts +6 -6
  115. package/{dist/utils → utils}/mds-context/index.d.ts +1 -1
  116. package/dist/components/accordion/index.js +0 -9
  117. package/dist/components/accordion/index.js.map +0 -1
  118. package/dist/components/accordion/item/button.js +0 -44
  119. package/dist/components/accordion/item/button.js.map +0 -1
  120. package/dist/components/accordion/item/index.js +0 -59
  121. package/dist/components/accordion/item/index.js.map +0 -1
  122. package/dist/components/accordion/style.module.scss.js +0 -24
  123. package/dist/components/accordion/style.module.scss.js.map +0 -1
  124. package/dist/components/alert/alert.module.scss.js +0 -29
  125. package/dist/components/alert/alert.module.scss.js.map +0 -1
  126. package/dist/components/alert/icon.js +0 -34
  127. package/dist/components/alert/icon.js.map +0 -1
  128. package/dist/components/alert/index.js +0 -97
  129. package/dist/components/alert/index.js.map +0 -1
  130. package/dist/components/badge/index.js +0 -50
  131. package/dist/components/badge/index.js.map +0 -1
  132. package/dist/components/badge/style.module.scss.js +0 -22
  133. package/dist/components/badge/style.module.scss.js.map +0 -1
  134. package/dist/components/badge-count/index.js +0 -29
  135. package/dist/components/badge-count/index.js.map +0 -1
  136. package/dist/components/badge-count/style.module.scss.js +0 -15
  137. package/dist/components/badge-count/style.module.scss.js.map +0 -1
  138. package/dist/components/breadcrumbs/index.js +0 -38
  139. package/dist/components/breadcrumbs/index.js.map +0 -1
  140. package/dist/components/breadcrumbs/item/index.js +0 -32
  141. package/dist/components/breadcrumbs/item/index.js.map +0 -1
  142. package/dist/components/breadcrumbs/style.module.scss.js +0 -27
  143. package/dist/components/breadcrumbs/style.module.scss.js.map +0 -1
  144. package/dist/components/breadcrumbs/truncation-button/index.js +0 -25
  145. package/dist/components/breadcrumbs/truncation-button/index.js.map +0 -1
  146. package/dist/components/button/index.js +0 -119
  147. package/dist/components/button/index.js.map +0 -1
  148. package/dist/components/button/styles.module.scss.js +0 -32
  149. package/dist/components/button/styles.module.scss.js.map +0 -1
  150. package/dist/components/card/card-thumbnail/card-thumbnail.module.css.js +0 -8
  151. package/dist/components/card/card-thumbnail/card-thumbnail.module.css.js.map +0 -1
  152. package/dist/components/card/card-thumbnail/index.js +0 -23
  153. package/dist/components/card/card-thumbnail/index.js.map +0 -1
  154. package/dist/components/card/index.d.ts +0 -3
  155. package/dist/components/card/index.js +0 -157
  156. package/dist/components/card/index.js.map +0 -1
  157. package/dist/components/card/styles.module.css.js +0 -29
  158. package/dist/components/card/styles.module.css.js.map +0 -1
  159. package/dist/components/code-block/code-block.module.scss.js +0 -34
  160. package/dist/components/code-block/code-block.module.scss.js.map +0 -1
  161. package/dist/components/code-block/code-lines/index.js +0 -59
  162. package/dist/components/code-block/code-lines/index.js.map +0 -1
  163. package/dist/components/code-block/code-lines/utils/split-html-into-lines.js +0 -19
  164. package/dist/components/code-block/code-lines/utils/split-html-into-lines.js.map +0 -1
  165. package/dist/components/code-block/code-lines/utils/split-jsx-into-lines.js +0 -31
  166. package/dist/components/code-block/code-lines/utils/split-jsx-into-lines.js.map +0 -1
  167. package/dist/components/code-block/hidden-copy-content/index.d.ts +0 -5
  168. package/dist/components/code-block/hidden-copy-content/index.js +0 -13
  169. package/dist/components/code-block/hidden-copy-content/index.js.map +0 -1
  170. package/dist/components/code-block/index.js +0 -88
  171. package/dist/components/code-block/index.js.map +0 -1
  172. package/dist/components/code-block/utils/parse-highlighted-lines.js +0 -39
  173. package/dist/components/code-block/utils/parse-highlighted-lines.js.map +0 -1
  174. package/dist/components/code-block/utils/process-snippet.js +0 -20
  175. package/dist/components/code-block/utils/process-snippet.js.map +0 -1
  176. package/dist/components/code-block/utils/shellwords.js +0 -33
  177. package/dist/components/code-block/utils/shellwords.js.map +0 -1
  178. package/dist/components/combo-box-primitive/index.js +0 -302
  179. package/dist/components/combo-box-primitive/index.js.map +0 -1
  180. package/dist/components/dialog-primitive/dialog.module.scss.js +0 -12
  181. package/dist/components/dialog-primitive/dialog.module.scss.js.map +0 -1
  182. package/dist/components/dialog-primitive/index.js +0 -15
  183. package/dist/components/dialog-primitive/index.js.map +0 -1
  184. package/dist/components/disclosure-primitive/index.js +0 -57
  185. package/dist/components/disclosure-primitive/index.js.map +0 -1
  186. package/dist/components/disclosure-primitive/styles.module.css.js +0 -7
  187. package/dist/components/disclosure-primitive/styles.module.css.js.map +0 -1
  188. package/dist/components/disclosure-primitive/use-disclosure-primitive.js +0 -17
  189. package/dist/components/disclosure-primitive/use-disclosure-primitive.js.map +0 -1
  190. package/dist/components/dismiss-button/index.js +0 -22
  191. package/dist/components/dismiss-button/index.js.map +0 -1
  192. package/dist/components/dismiss-button/styles.module.scss.js +0 -7
  193. package/dist/components/dismiss-button/styles.module.scss.js.map +0 -1
  194. package/dist/components/dropdown/index.js +0 -79
  195. package/dist/components/dropdown/index.js.map +0 -1
  196. package/dist/components/dropdown/list-item/custom.js +0 -9
  197. package/dist/components/dropdown/list-item/custom.js.map +0 -1
  198. package/dist/components/dropdown/list-item/index.js +0 -14
  199. package/dist/components/dropdown/list-item/index.js.map +0 -1
  200. package/dist/components/dropdown/list-item/interactive.js +0 -49
  201. package/dist/components/dropdown/list-item/interactive.js.map +0 -1
  202. package/dist/components/dropdown/list-item/separator.js +0 -17
  203. package/dist/components/dropdown/list-item/separator.js.map +0 -1
  204. package/dist/components/dropdown/list-item/styles.module.css.js +0 -26
  205. package/dist/components/dropdown/list-item/styles.module.css.js.map +0 -1
  206. package/dist/components/dropdown/list-item/title.js +0 -9
  207. package/dist/components/dropdown/list-item/title.js.map +0 -1
  208. package/dist/components/dropdown/styles.module.css.js +0 -24
  209. package/dist/components/dropdown/styles.module.css.js.map +0 -1
  210. package/dist/components/dropdown/toggle-button/index.js +0 -54
  211. package/dist/components/dropdown/toggle-button/index.js.map +0 -1
  212. package/dist/components/dropdown/toggle-button/styles.module.scss.js +0 -14
  213. package/dist/components/dropdown/toggle-button/styles.module.scss.js.map +0 -1
  214. package/dist/components/flight-icon/flight-icon.module.css.js +0 -12
  215. package/dist/components/flight-icon/flight-icon.module.css.js.map +0 -1
  216. package/dist/components/flight-icon/index.js +0 -58
  217. package/dist/components/flight-icon/index.js.map +0 -1
  218. package/dist/components/form/checkbox/form-checkbox.module.css.js +0 -8
  219. package/dist/components/form/checkbox/form-checkbox.module.css.js.map +0 -1
  220. package/dist/components/form/checkbox/index.js +0 -109
  221. package/dist/components/form/checkbox/index.js.map +0 -1
  222. package/dist/components/form/error/form-error.module.css.js +0 -14
  223. package/dist/components/form/error/form-error.module.css.js.map +0 -1
  224. package/dist/components/form/error/index.js +0 -22
  225. package/dist/components/form/error/index.js.map +0 -1
  226. package/dist/components/form/field/form-field.module.css.js +0 -17
  227. package/dist/components/form/field/form-field.module.css.js.map +0 -1
  228. package/dist/components/form/field/index.js +0 -46
  229. package/dist/components/form/field/index.js.map +0 -1
  230. package/dist/components/form/fieldset/form-fieldset.module.css.js +0 -19
  231. package/dist/components/form/fieldset/form-fieldset.module.css.js.map +0 -1
  232. package/dist/components/form/fieldset/index.js +0 -65
  233. package/dist/components/form/fieldset/index.js.map +0 -1
  234. package/dist/components/form/file-input/form-file-input.module.scss.js +0 -7
  235. package/dist/components/form/file-input/form-file-input.module.scss.js.map +0 -1
  236. package/dist/components/form/file-input/index.js +0 -68
  237. package/dist/components/form/file-input/index.js.map +0 -1
  238. package/dist/components/form/helper-text/form-helper-text.module.css.js +0 -7
  239. package/dist/components/form/helper-text/form-helper-text.module.css.js.map +0 -1
  240. package/dist/components/form/helper-text/index.js +0 -22
  241. package/dist/components/form/helper-text/index.js.map +0 -1
  242. package/dist/components/form/indicator/form-indicator.module.css.js +0 -8
  243. package/dist/components/form/indicator/form-indicator.module.css.js.map +0 -1
  244. package/dist/components/form/indicator/index.js +0 -22
  245. package/dist/components/form/indicator/index.js.map +0 -1
  246. package/dist/components/form/label/form-label.module.css.js +0 -10
  247. package/dist/components/form/label/form-label.module.css.js.map +0 -1
  248. package/dist/components/form/label/index.js +0 -33
  249. package/dist/components/form/label/index.js.map +0 -1
  250. package/dist/components/form/legend/form-legend.module.css.js +0 -10
  251. package/dist/components/form/legend/form-legend.module.css.js.map +0 -1
  252. package/dist/components/form/legend/index.js +0 -19
  253. package/dist/components/form/legend/index.js.map +0 -1
  254. package/dist/components/form/radio/form-radio.module.scss.js +0 -8
  255. package/dist/components/form/radio/form-radio.module.scss.js.map +0 -1
  256. package/dist/components/form/radio/index.js +0 -100
  257. package/dist/components/form/radio/index.js.map +0 -1
  258. package/dist/components/form/radio-card/description.js +0 -10
  259. package/dist/components/form/radio-card/description.js.map +0 -1
  260. package/dist/components/form/radio-card/form-radio-card.module.css.js +0 -30
  261. package/dist/components/form/radio-card/form-radio-card.module.css.js.map +0 -1
  262. package/dist/components/form/radio-card/group.js +0 -31
  263. package/dist/components/form/radio-card/group.js.map +0 -1
  264. package/dist/components/form/radio-card/index.js +0 -67
  265. package/dist/components/form/radio-card/index.js.map +0 -1
  266. package/dist/components/form/radio-card/label.js +0 -10
  267. package/dist/components/form/radio-card/label.js.map +0 -1
  268. package/dist/components/form/select/form-select.module.css.js +0 -14
  269. package/dist/components/form/select/form-select.module.css.js.map +0 -1
  270. package/dist/components/form/select/index.js +0 -79
  271. package/dist/components/form/select/index.js.map +0 -1
  272. package/dist/components/form/super-select/form-super-select.module.css.js +0 -22
  273. package/dist/components/form/super-select/form-super-select.module.css.js.map +0 -1
  274. package/dist/components/form/super-select/index.js +0 -170
  275. package/dist/components/form/super-select/index.js.map +0 -1
  276. package/dist/components/form/text-input/index.js +0 -91
  277. package/dist/components/form/text-input/index.js.map +0 -1
  278. package/dist/components/form/text-input/styles.module.css.js +0 -15
  279. package/dist/components/form/text-input/styles.module.css.js.map +0 -1
  280. package/dist/components/form/textarea/form-textarea.module.css.js +0 -14
  281. package/dist/components/form/textarea/form-textarea.module.css.js.map +0 -1
  282. package/dist/components/form/textarea/index.js +0 -74
  283. package/dist/components/form/textarea/index.js.map +0 -1
  284. package/dist/components/form/toggle/form-toggle.module.scss.js +0 -12
  285. package/dist/components/form/toggle/form-toggle.module.scss.js.map +0 -1
  286. package/dist/components/form/toggle/index.js +0 -102
  287. package/dist/components/form/toggle/index.js.map +0 -1
  288. package/dist/components/hds/wrappers/tooltip.js +0 -51
  289. package/dist/components/hds/wrappers/tooltip.js.map +0 -1
  290. package/dist/components/icon-tile/index.js +0 -50
  291. package/dist/components/icon-tile/index.js.map +0 -1
  292. package/dist/components/icon-tile/style.module.scss.js +0 -29
  293. package/dist/components/icon-tile/style.module.scss.js.map +0 -1
  294. package/dist/components/index.js +0 -119
  295. package/dist/components/index.js.map +0 -1
  296. package/dist/components/inline-link/index.js +0 -33
  297. package/dist/components/inline-link/index.js.map +0 -1
  298. package/dist/components/inline-link/inline-link.module.css.js +0 -11
  299. package/dist/components/inline-link/inline-link.module.css.js.map +0 -1
  300. package/dist/components/interactive/index.js +0 -59
  301. package/dist/components/interactive/index.js.map +0 -1
  302. package/dist/components/legacy-button/index.js +0 -65
  303. package/dist/components/legacy-button/index.js.map +0 -1
  304. package/dist/components/legacy-button/utils.js +0 -39
  305. package/dist/components/legacy-button/utils.js.map +0 -1
  306. package/dist/components/menu-primitive/index.js +0 -68
  307. package/dist/components/menu-primitive/index.js.map +0 -1
  308. package/dist/components/menu-primitive/styles.module.css.js +0 -12
  309. package/dist/components/menu-primitive/styles.module.css.js.map +0 -1
  310. package/dist/components/menu-primitive/use-menu-primitive.js +0 -17
  311. package/dist/components/menu-primitive/use-menu-primitive.js.map +0 -1
  312. package/dist/components/modal/index.js +0 -61
  313. package/dist/components/modal/index.js.map +0 -1
  314. package/dist/components/modal/modal.module.css.js +0 -8
  315. package/dist/components/modal/modal.module.css.js.map +0 -1
  316. package/dist/components/modal/use-modal.js +0 -17
  317. package/dist/components/modal/use-modal.js.map +0 -1
  318. package/dist/components/separator/index.js +0 -15
  319. package/dist/components/separator/index.js.map +0 -1
  320. package/dist/components/separator/separator.module.css.js +0 -10
  321. package/dist/components/separator/separator.module.css.js.map +0 -1
  322. package/dist/components/standalone-link/index.js +0 -54
  323. package/dist/components/standalone-link/index.js.map +0 -1
  324. package/dist/components/standalone-link/styles.module.scss.js +0 -17
  325. package/dist/components/standalone-link/styles.module.scss.js.map +0 -1
  326. package/dist/components/table/index.js +0 -52
  327. package/dist/components/table/index.js.map +0 -1
  328. package/dist/components/table/table.module.scss.js +0 -33
  329. package/dist/components/table/table.module.scss.js.map +0 -1
  330. package/dist/components/table/td.js +0 -28
  331. package/dist/components/table/td.js.map +0 -1
  332. package/dist/components/table/th-button-tooltip.js +0 -24
  333. package/dist/components/table/th-button-tooltip.js.map +0 -1
  334. package/dist/components/table/th.js +0 -43
  335. package/dist/components/table/th.js.map +0 -1
  336. package/dist/components/table/tr.js +0 -9
  337. package/dist/components/table/tr.js.map +0 -1
  338. package/dist/components/table/utils.js +0 -28
  339. package/dist/components/table/utils.js.map +0 -1
  340. package/dist/components/tabs/index.js +0 -117
  341. package/dist/components/tabs/index.js.map +0 -1
  342. package/dist/components/tabs/tab-panel.js +0 -35
  343. package/dist/components/tabs/tab-panel.js.map +0 -1
  344. package/dist/components/tabs/tab.js +0 -70
  345. package/dist/components/tabs/tab.js.map +0 -1
  346. package/dist/components/tabs/tabs.module.scss.js +0 -22
  347. package/dist/components/tabs/tabs.module.scss.js.map +0 -1
  348. package/dist/components/tabs/use-tabs-context.js +0 -16
  349. package/dist/components/tabs/use-tabs-context.js.map +0 -1
  350. package/dist/components/text/index.js +0 -112
  351. package/dist/components/text/index.js.map +0 -1
  352. package/dist/components/text/style.module.scss.js +0 -9
  353. package/dist/components/text/style.module.scss.js.map +0 -1
  354. package/dist/components/visualizations/bar-chart/horizontal-chart/dataset-value/index.js +0 -62
  355. package/dist/components/visualizations/bar-chart/horizontal-chart/dataset-value/index.js.map +0 -1
  356. package/dist/components/visualizations/bar-chart/horizontal-chart/dataset-value/style.module.css.js +0 -20
  357. package/dist/components/visualizations/bar-chart/horizontal-chart/dataset-value/style.module.css.js.map +0 -1
  358. package/dist/components/visualizations/bar-chart/horizontal-chart/index.js +0 -104
  359. package/dist/components/visualizations/bar-chart/horizontal-chart/index.js.map +0 -1
  360. package/dist/components/visualizations/bar-chart/horizontal-chart/legend/index.js +0 -13
  361. package/dist/components/visualizations/bar-chart/horizontal-chart/legend/index.js.map +0 -1
  362. package/dist/components/visualizations/bar-chart/horizontal-chart/legend/style.module.css.js +0 -14
  363. package/dist/components/visualizations/bar-chart/horizontal-chart/legend/style.module.css.js.map +0 -1
  364. package/dist/components/visualizations/bar-chart/horizontal-chart/style.module.css.js +0 -28
  365. package/dist/components/visualizations/bar-chart/horizontal-chart/style.module.css.js.map +0 -1
  366. package/dist/components/visualizations/bar-chart/index.js +0 -37
  367. package/dist/components/visualizations/bar-chart/index.js.map +0 -1
  368. package/dist/components/visualizations/bar-chart/style.module.css.js +0 -12
  369. package/dist/components/visualizations/bar-chart/style.module.css.js.map +0 -1
  370. package/dist/components/visualizations/donut-chart/components/arc-tooltip/index.d.ts +0 -3
  371. package/dist/components/visualizations/donut-chart/components/arc-tooltip/index.js +0 -14
  372. package/dist/components/visualizations/donut-chart/components/arc-tooltip/index.js.map +0 -1
  373. package/dist/components/visualizations/donut-chart/components/arc-tooltip/styles.module.css.js +0 -10
  374. package/dist/components/visualizations/donut-chart/components/arc-tooltip/styles.module.css.js.map +0 -1
  375. package/dist/components/visualizations/donut-chart/components/external-arc-label/index.d.ts +0 -3
  376. package/dist/components/visualizations/donut-chart/components/external-arc-label/index.js +0 -58
  377. package/dist/components/visualizations/donut-chart/components/external-arc-label/index.js.map +0 -1
  378. package/dist/components/visualizations/donut-chart/components/external-arc-label/styles.module.css.js +0 -16
  379. package/dist/components/visualizations/donut-chart/components/external-arc-label/styles.module.css.js.map +0 -1
  380. package/dist/components/visualizations/donut-chart/components/internal-arc-label/index.d.ts +0 -3
  381. package/dist/components/visualizations/donut-chart/components/internal-arc-label/index.js +0 -42
  382. package/dist/components/visualizations/donut-chart/components/internal-arc-label/index.js.map +0 -1
  383. package/dist/components/visualizations/donut-chart/components/internal-arc-label/styles.module.css.js +0 -14
  384. package/dist/components/visualizations/donut-chart/components/internal-arc-label/styles.module.css.js.map +0 -1
  385. package/dist/components/visualizations/donut-chart/index.js +0 -90
  386. package/dist/components/visualizations/donut-chart/index.js.map +0 -1
  387. package/dist/components/visualizations/donut-chart/styles.module.css.js +0 -20
  388. package/dist/components/visualizations/donut-chart/styles.module.css.js.map +0 -1
  389. package/dist/hooks/use-media-query/index.js +0 -16
  390. package/dist/hooks/use-media-query/index.js.map +0 -1
  391. package/dist/index.js +0 -158
  392. package/dist/index.js.map +0 -1
  393. package/dist/patterns/card/newsroom-card/index.js +0 -26
  394. package/dist/patterns/card/newsroom-card/index.js.map +0 -1
  395. package/dist/patterns/card/newsroom-card/style.module.css.js +0 -8
  396. package/dist/patterns/card/newsroom-card/style.module.css.js.map +0 -1
  397. package/dist/patterns/card/partner-card/index.js +0 -42
  398. package/dist/patterns/card/partner-card/index.js.map +0 -1
  399. package/dist/patterns/card/partner-card/style.module.css.js +0 -12
  400. package/dist/patterns/card/partner-card/style.module.css.js.map +0 -1
  401. package/dist/patterns/card/person-card/index.js +0 -52
  402. package/dist/patterns/card/person-card/index.js.map +0 -1
  403. package/dist/patterns/card/person-card/style.module.css.js +0 -12
  404. package/dist/patterns/card/person-card/style.module.css.js.map +0 -1
  405. package/dist/patterns/card/primitives.js +0 -77
  406. package/dist/patterns/card/primitives.js.map +0 -1
  407. package/dist/patterns/card/promo-card/index.js +0 -36
  408. package/dist/patterns/card/promo-card/index.js.map +0 -1
  409. package/dist/patterns/card/resource-card/index.js +0 -26
  410. package/dist/patterns/card/resource-card/index.js.map +0 -1
  411. package/dist/patterns/card/style.module.css.js +0 -30
  412. package/dist/patterns/card/style.module.css.js.map +0 -1
  413. package/dist/patterns/card/thumbnails/index.js +0 -25
  414. package/dist/patterns/card/thumbnails/index.js.map +0 -1
  415. package/dist/patterns/card/unified-card/index.js +0 -37
  416. package/dist/patterns/card/unified-card/index.js.map +0 -1
  417. package/dist/patterns/copy-button/clipboard.js +0 -78
  418. package/dist/patterns/copy-button/clipboard.js.map +0 -1
  419. package/dist/patterns/copy-button/index.js +0 -57
  420. package/dist/patterns/copy-button/index.js.map +0 -1
  421. package/dist/patterns/copy-button/style.module.css.js +0 -13
  422. package/dist/patterns/copy-button/style.module.css.js.map +0 -1
  423. package/dist/patterns/index.js +0 -35
  424. package/dist/patterns/layout/index.d.ts +0 -69
  425. package/dist/patterns/layout/index.js +0 -47
  426. package/dist/patterns/layout/index.js.map +0 -1
  427. package/dist/patterns/layout/layout.module.css.js +0 -20
  428. package/dist/patterns/layout/layout.module.css.js.map +0 -1
  429. package/dist/patterns/product-badge/index.js +0 -22
  430. package/dist/patterns/product-badge/index.js.map +0 -1
  431. package/dist/patterns/product-badge/style.module.css.js +0 -8
  432. package/dist/patterns/product-badge/style.module.css.js.map +0 -1
  433. package/dist/patterns/product-logo/index.d.ts +0 -48
  434. package/dist/patterns/product-logo/index.js +0 -130
  435. package/dist/patterns/product-logo/index.js.map +0 -1
  436. package/dist/patterns/product-logo/product-logo.module.css.js +0 -13
  437. package/dist/patterns/product-logo/product-logo.module.css.js.map +0 -1
  438. package/dist/patterns/related-content/index.js +0 -65
  439. package/dist/patterns/related-content/index.js.map +0 -1
  440. package/dist/patterns/related-content/style.module.css.js +0 -22
  441. package/dist/patterns/related-content/style.module.css.js.map +0 -1
  442. package/dist/style.css +0 -1
  443. package/dist/utils/get-contrast-yiq.js +0 -13
  444. package/dist/utils/get-contrast-yiq.js.map +0 -1
  445. package/dist/utils/hooks/use-screen-size.js +0 -10
  446. package/dist/utils/hooks/use-screen-size.js.map +0 -1
  447. package/dist/utils/i18n/index.d.ts +0 -1
  448. package/dist/utils/i18n/index.js +0 -41
  449. package/dist/utils/i18n/index.js.map +0 -1
  450. package/dist/utils/index.js +0 -10
  451. package/dist/utils/make-normalizer/index.js +0 -34
  452. package/dist/utils/make-normalizer/index.js.map +0 -1
  453. package/dist/utils/mds-context/index.js.map +0 -1
  454. /package/{dist/components → components}/accordion/item/button.d.ts +0 -0
  455. /package/{dist/components → components}/accordion/style.module.scss +0 -0
  456. /package/{dist/components → components}/alert/alert.module.scss +0 -0
  457. /package/{dist/components → components}/badge/style.module.scss +0 -0
  458. /package/{dist/components → components}/badge-count/style.module.scss +0 -0
  459. /package/{dist/components → components}/breadcrumbs/style.module.scss +0 -0
  460. /package/{dist/components → components}/button/styles.module.scss +0 -0
  461. /package/{dist/components → components}/card/card-thumbnail/card-thumbnail.module.css +0 -0
  462. /package/{dist/components → components}/card/styles.module.css +0 -0
  463. /package/{dist/components → components}/code-block/code-block.module.scss +0 -0
  464. /package/{dist/components → components}/code-block/utils/parse-highlighted-lines.d.ts +0 -0
  465. /package/{dist/components → components}/code-block/utils/process-snippet.d.ts +0 -0
  466. /package/{dist/components → components}/code-block/utils/shellwords.d.ts +0 -0
  467. /package/{dist/components → components}/dialog-primitive/dialog.module.scss +0 -0
  468. /package/{dist/components → components}/disclosure-primitive/styles.module.css +0 -0
  469. /package/{dist/components → components}/dismiss-button/styles.module.scss +0 -0
  470. /package/{dist/components → components}/dropdown/list-item/styles.module.css +0 -0
  471. /package/{dist/components → components}/dropdown/styles.module.css +0 -0
  472. /package/{dist/components → components}/dropdown/toggle-button/styles.module.scss +0 -0
  473. /package/{dist/components → components}/flight-icon/flight-icon.module.css +0 -0
  474. /package/{dist/components → components}/form/checkbox/form-checkbox.module.css +0 -0
  475. /package/{dist/components → components}/form/error/form-error.module.css +0 -0
  476. /package/{dist/components → components}/form/field/form-field.module.css +0 -0
  477. /package/{dist/components → components}/form/fieldset/form-fieldset.module.css +0 -0
  478. /package/{dist/components → components}/form/file-input/form-file-input.module.scss +0 -0
  479. /package/{dist/components → components}/form/helper-text/form-helper-text.module.css +0 -0
  480. /package/{dist/components → components}/form/indicator/form-indicator.module.css +0 -0
  481. /package/{dist/components → components}/form/indicator/index.d.ts +0 -0
  482. /package/{dist/components → components}/form/label/form-label.module.css +0 -0
  483. /package/{dist/components → components}/form/legend/form-legend.module.css +0 -0
  484. /package/{dist/components → components}/form/radio/form-radio.module.scss +0 -0
  485. /package/{dist/components → components}/form/radio-card/description.d.ts +0 -0
  486. /package/{dist/components → components}/form/radio-card/form-radio-card.module.css +0 -0
  487. /package/{dist/components → components}/form/radio-card/label.d.ts +0 -0
  488. /package/{dist/components → components}/form/select/form-select.module.css +0 -0
  489. /package/{dist/components → components}/form/super-select/form-super-select.module.css +0 -0
  490. /package/{dist/components → components}/form/text-input/styles.module.css +0 -0
  491. /package/{dist/components → components}/form/textarea/form-textarea.module.css +0 -0
  492. /package/{dist/components → components}/form/toggle/form-toggle.module.scss +0 -0
  493. /package/{dist/components → components}/icon-tile/style.module.scss +0 -0
  494. /package/{dist/components → components}/index.d.ts +0 -0
  495. /package/{dist/utils → components}/index.js.map +0 -0
  496. /package/{dist/components → components}/inline-link/inline-link.module.css +0 -0
  497. /package/{dist/components → components}/menu-primitive/styles.module.css +0 -0
  498. /package/{dist/components → components}/modal/modal.module.css +0 -0
  499. /package/{dist/components → components}/separator/separator.module.css +0 -0
  500. /package/{dist/components → components}/standalone-link/styles.module.scss +0 -0
  501. /package/{dist/components → components}/table/table.module.scss +0 -0
  502. /package/{dist/components → components}/table/th-button-tooltip.d.ts +0 -0
  503. /package/{dist/components → components}/table/utils.d.ts +0 -0
  504. /package/{dist/components → components}/tabs/tabs.module.scss +0 -0
  505. /package/{dist/components → components}/text/style.module.scss +0 -0
  506. /package/{dist/components → components}/visualizations/bar-chart/horizontal-chart/dataset-value/index.d.ts +0 -0
  507. /package/{dist/components → components}/visualizations/bar-chart/horizontal-chart/dataset-value/style.module.css +0 -0
  508. /package/{dist/components → components}/visualizations/bar-chart/horizontal-chart/legend/index.d.ts +0 -0
  509. /package/{dist/components → components}/visualizations/bar-chart/horizontal-chart/legend/style.module.css +0 -0
  510. /package/{dist/components → components}/visualizations/bar-chart/horizontal-chart/style.module.css +0 -0
  511. /package/{dist/components → components}/visualizations/bar-chart/style.module.css +0 -0
  512. /package/{dist/components → components}/visualizations/donut-chart/components/arc-tooltip/styles.module.css +0 -0
  513. /package/{dist/components → components}/visualizations/donut-chart/components/external-arc-label/styles.module.css +0 -0
  514. /package/{dist/components → components}/visualizations/donut-chart/components/index.d.ts +0 -0
  515. /package/{dist/components → components}/visualizations/donut-chart/components/internal-arc-label/styles.module.css +0 -0
  516. /package/{dist/components → components}/visualizations/donut-chart/styles.module.css +0 -0
  517. /package/{dist/components → components}/visualizations/donut-chart/types.d.ts +0 -0
  518. /package/{dist/index.d.ts → index.d.ts} +0 -0
  519. /package/{dist/patterns → patterns}/card/index.d.ts +0 -0
  520. /package/{dist/patterns → patterns}/card/newsroom-card/style.module.css +0 -0
  521. /package/{dist/patterns → patterns}/card/partner-card/style.module.css +0 -0
  522. /package/{dist/patterns → patterns}/card/person-card/style.module.css +0 -0
  523. /package/{dist/patterns → patterns}/card/style.module.css +0 -0
  524. /package/{dist/patterns → patterns}/copy-button/style.module.css +0 -0
  525. /package/{dist/patterns → patterns}/index.d.ts +0 -0
  526. /package/{dist/patterns → patterns}/layout/layout.module.css +0 -0
  527. /package/{dist/patterns → patterns}/product-badge/index.d.ts +0 -0
  528. /package/{dist/patterns → patterns}/product-badge/style.module.css +0 -0
  529. /package/{dist/patterns → patterns}/product-logo/product-logo.module.css +0 -0
  530. /package/{dist/patterns → patterns}/related-content/style.module.css +0 -0
  531. /package/{dist/styles → styles}/mixins/button.scss +0 -0
  532. /package/{dist/styles → styles}/mixins/focus-ring.scss +0 -0
  533. /package/{dist/utils → utils}/get-contrast-yiq.d.ts +0 -0
  534. /package/{dist/utils → utils}/hooks/use-screen-size.d.ts +0 -0
  535. /package/{dist/utils → utils}/index.d.ts +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/components/button/index.tsx"],"sourcesContent":["import type { ForwardRefExoticComponent } from 'react'\nimport { forwardRef } from 'react'\nimport classNames from 'classnames'\nimport { Interactive } from '../interactive'\nimport type { FlightIconSize } from '../flight-icon'\nimport { FlightIcon } from '../flight-icon'\nimport s from './styles.module.scss'\n\nexport const BUTTON_SIZES = ['small', 'medium', 'large'] as const\nexport type ButtonSize = (typeof BUTTON_SIZES)[number]\n\nexport const BUTTON_ICON_POSITIONS = ['leading', 'trailing'] as const\nexport type ButtonIconPosition = (typeof BUTTON_ICON_POSITIONS)[number]\n\nexport const BUTTON_COLORS = [\n\t'primary',\n\t'primary-black',\n\t'primary-white',\n\t'secondary', // deprecated; maps to secondary-white\n\t'secondary-high-contrast', // alternates based on theme\n\t'secondary-white',\n\t'secondary-black',\n\t'tertiary',\n\t'critical',\n\t'boundary',\n\t'consul',\n\t'nomad',\n\t'packer',\n\t'terraform',\n\t'vagrant',\n\t'vault',\n\t'waypoint',\n\t'hashicorp', // alias to primary\n] as const\nexport type ButtonColor = (typeof BUTTON_COLORS)[number]\n\n// These are the only “real” colors our legacy button knows about\nconst LEGACY_COLORS = [\n\t'primary',\n\t'secondary',\n\t'tertiary',\n\t'critical',\n\t'custom',\n] as const\ntype LegacyButtonColor = (typeof LEGACY_COLORS)[number]\n\n// map HDS “super-set” colors down to our legacy ones\nconst COLOR_MAP: Record<ButtonColor, LegacyButtonColor> = {\n\tprimary: 'primary',\n\t'primary-black': 'custom',\n\t'primary-white': 'custom',\n\tsecondary: 'custom',\n\t'secondary-high-contrast': 'custom',\n\t'secondary-white': 'custom',\n\t'secondary-black': 'custom',\n\ttertiary: 'tertiary',\n\tcritical: 'critical',\n\tboundary: 'custom',\n\tconsul: 'custom',\n\tnomad: 'custom',\n\tpacker: 'custom',\n\tterraform: 'custom',\n\tvagrant: 'custom',\n\tvault: 'custom',\n\twaypoint: 'custom',\n\thashicorp: 'primary',\n}\n\ninterface ButtonPrimitiveProps {\n\tsize?: ButtonSize\n\tcolor?: LegacyButtonColor\n\tisFullWidth?: boolean\n\tisIconOnly?: boolean\n\ticon?: string\n\ticonPosition?: ButtonIconPosition\n\ttext?: string\n\thref?: string\n\tisHrefExternal?: boolean\n\tonClick?: React.MouseEventHandler<HTMLButtonElement>\n\tclassName?: string\n\tlocale?: string\n\tdisabled?: boolean\n\tautoFocus?: boolean\n\ttype?: 'button' | 'submit' | 'reset'\n}\n\nconst ICON_SIZE_MAP = {\n\tsmall: 12,\n\tmedium: 16,\n\tlarge: 24,\n} as const satisfies Record<'small' | 'medium' | 'large', FlightIconSize>\n\nconst ButtonPrimitive = forwardRef<HTMLButtonElement, ButtonPrimitiveProps>(\n\t(\n\t\t{\n\t\t\tsize = 'medium',\n\t\t\tcolor = 'primary',\n\t\t\tisFullWidth,\n\t\t\tisIconOnly,\n\t\t\ticon,\n\t\t\ticonPosition = 'leading',\n\t\t\ttext,\n\t\t\thref,\n\t\t\tisHrefExternal,\n\t\t\tclassName,\n\t\t\tlocale,\n\t\t\t...rest\n\t\t},\n\t\tref\n\t) => {\n\t\tconst hasIcon = Boolean(icon)\n\t\tconst showIconOnly = isIconOnly && hasIcon\n\n\t\tconst iconElement = icon && (\n\t\t\t<FlightIcon name={icon} size={ICON_SIZE_MAP[size]} />\n\t\t)\n\n\t\treturn (\n\t\t\t<Interactive\n\t\t\t\tclassName={classNames(\n\t\t\t\t\ts.button,\n\t\t\t\t\ts[`size-${size}`],\n\t\t\t\t\t{\n\t\t\t\t\t\t[s['width-full']]: isFullWidth,\n\t\t\t\t\t\t[s['icon-only']]: showIconOnly,\n\t\t\t\t\t},\n\t\t\t\t\tcolor !== 'custom' && s[`color-${color}`],\n\t\t\t\t\tclassName\n\t\t\t\t)}\n\t\t\t\thref={rest.disabled ? '' : href}\n\t\t\t\tisHrefExternal={isHrefExternal}\n\t\t\t\taria-label={showIconOnly ? text : undefined}\n\t\t\t\tlocale={locale}\n\t\t\t\t{...rest}\n\t\t\t\tref={ref}\n\t\t\t>\n\t\t\t\t{showIconOnly && icon ? (\n\t\t\t\t\ticonElement\n\t\t\t\t) : (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{icon && iconPosition === 'leading' && iconElement}\n\t\t\t\t\t\t<div className={s.text}>{text}</div>\n\t\t\t\t\t\t{icon && iconPosition === 'trailing' && iconElement}\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t</Interactive>\n\t\t)\n\t}\n)\nButtonPrimitive.displayName = 'ButtonPrimitive'\n\nexport interface ButtonProps extends Omit<ButtonPrimitiveProps, 'color'> {\n\tcolor?: ButtonColor\n}\n\nexport const Button = forwardRef<\n\tHTMLAnchorElement | HTMLButtonElement,\n\tButtonProps\n>(({ color = 'primary', className, ...rest }, ref) => {\n\tconst legacyColor = COLOR_MAP[color]\n\n\tconst remappedColors: Partial<Record<ButtonColor, ButtonColor>> = {\n\t\thashicorp: 'primary',\n\t\tsecondary: 'secondary-white',\n\t}\n\n\tconst customClass =\n\t\tlegacyColor === 'custom'\n\t\t\t? s[`color-${remappedColors[color] ?? color}`]\n\t\t\t: undefined\n\n\treturn (\n\t\t<ButtonPrimitive\n\t\t\t{...rest}\n\t\t\tcolor={legacyColor}\n\t\t\tclassName={classNames(customClass, className)}\n\t\t\tref={ref as ForwardRefExoticComponent<HTMLButtonElement>}\n\t\t/>\n\t)\n})\n\nButton.displayName = 'Button'\n"],"names":["BUTTON_SIZES","BUTTON_ICON_POSITIONS","BUTTON_COLORS","COLOR_MAP","ICON_SIZE_MAP","ButtonPrimitive","forwardRef","size","color","isFullWidth","isIconOnly","icon","iconPosition","text","href","isHrefExternal","className","locale","rest","ref","showIconOnly","iconElement","jsx","FlightIcon","Interactive","classNames","s","jsxs","Fragment","Button","legacyColor","customClass"],"mappings":"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"}
@@ -1,32 +0,0 @@
1
- const o = "button__gOWvd", r = "text__KbKvH", c = {
2
- button: o,
3
- "width-full": "width-full__juTUO",
4
- text: r,
5
- "color-primary": "color-primary__rWbwp",
6
- "color-secondary": "color-secondary__-5Q4d",
7
- "color-tertiary": "color-tertiary__rw4Ww",
8
- "color-critical": "color-critical__-8hXs",
9
- "color-primary-white": "color-primary-white__2JDoz",
10
- "color-primary-black": "color-primary-black__zTF4n",
11
- "color-secondary-white": "color-secondary-white__AseI0",
12
- "color-secondary-black": "color-secondary-black__b-umt",
13
- "color-secondary-high-contrast": "color-secondary-high-contrast__3bxg3",
14
- "color-boundary": "color-boundary__xJtzy",
15
- "color-consul": "color-consul__5lFsa",
16
- "color-nomad": "color-nomad__HGWXf",
17
- "color-packer": "color-packer__vbRu0",
18
- "color-terraform": "color-terraform__DQMD5",
19
- "color-vagrant": "color-vagrant__iNokw",
20
- "color-vault": "color-vault__Q6Qbm",
21
- "color-waypoint": "color-waypoint__8j-Oi",
22
- "size-small": "size-small__kT0Jp",
23
- "icon-only": "icon-only__5c-is",
24
- "size-medium": "size-medium__HxMcm",
25
- "size-large": "size-large__MEpK3"
26
- };
27
- export {
28
- o as button,
29
- c as default,
30
- r as text
31
- };
32
- //# sourceMappingURL=styles.module.scss.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"styles.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,8 +0,0 @@
1
- const t = "thumbnail__f0mUs", a = {
2
- thumbnail: t
3
- };
4
- export {
5
- a as default,
6
- t as thumbnail
7
- };
8
- //# sourceMappingURL=card-thumbnail.module.css.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"card-thumbnail.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
@@ -1,23 +0,0 @@
1
- "use client";
2
- import { jsx as e } from "react/jsx-runtime";
3
- import { useMDSImage as l } from "../../../utils/mds-context/index.js";
4
- import o from "./card-thumbnail.module.css.js";
5
- const u = ({
6
- alt: r,
7
- aspectRatio: m,
8
- src: t
9
- }) => {
10
- const i = l();
11
- return t ? /* @__PURE__ */ e(
12
- "div",
13
- {
14
- className: o.thumbnail,
15
- style: { "--aspect-ratio": m },
16
- children: /* @__PURE__ */ e(i, { fill: !0, alt: r, src: t })
17
- }
18
- ) : null;
19
- };
20
- export {
21
- u as CardThumbnail
22
- };
23
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/card/card-thumbnail/index.tsx"],"sourcesContent":["'use client'\n\nimport { useMDSImage } from '../../../utils/mds-context'\nimport type { CardThumbnailProps } from '../types'\nimport s from './card-thumbnail.module.css'\n\nexport const CardThumbnail = ({\n\talt,\n\taspectRatio,\n\tsrc,\n}: CardThumbnailProps) => {\n\tconst Image = useMDSImage()\n\treturn src ? (\n\t\t<div\n\t\t\tclassName={s.thumbnail}\n\t\t\tstyle={{ ['--aspect-ratio' as string]: aspectRatio }}\n\t\t>\n\t\t\t<Image fill alt={alt} src={src} />\n\t\t</div>\n\t) : null\n}\n"],"names":["CardThumbnail","alt","aspectRatio","src","Image","useMDSImage","jsx","s"],"mappings":";;;;AAM8B,MAC7BA,IAAA,CAAA;AAAA,EACA,KAAAC;AAAA,EACA,aAAAC;AAAA,EACD,KAAAC;AACC,MAAA;AACA,QAAAC,IAAOC,EAAA;AACN,SAACF,IAAA,gBAAAG;AAAA,IAAA;AAAA,IAAA;AAAA,MAEA,WAAUC,EAAA;AAAA,MAEV,OAAA,EAAA,kBAAAL,EAAO;AAAA,MAAyB,UAAA,gBAAAI,EAAAF,GAAA,EAAA,MAAA,IAAA,KAAAH,GAAA,KAAAE,EAAA,CAAA;AAAA;EAGnC,IAAA;;"}
@@ -1,3 +0,0 @@
1
- import { CardProps } from './types';
2
- declare const Card: import('react').ForwardRefExoticComponent<CardProps & import('react').RefAttributes<HTMLDivElement>>;
3
- export { Card };
@@ -1,157 +0,0 @@
1
- "use client";
2
- import { jsxs as d, jsx as a, Fragment as v } from "react/jsx-runtime";
3
- import { forwardRef as x } from "react";
4
- import { CardThumbnail as k } from "./card-thumbnail/index.js";
5
- import { useMDSLink as A } from "../../utils/mds-context/index.js";
6
- import { Text as c } from "../text/index.js";
7
- import g from "classnames";
8
- import { Badge as E } from "../badge/index.js";
9
- import { StandaloneLink as u } from "../standalone-link/index.js";
10
- import { IconArrowRight24 as L } from "@hashicorp/flight-icons/svg-react/arrow-right-24";
11
- import e from "./styles.module.css.js";
12
- const f = x(
13
- ({
14
- children: r,
15
- className: o,
16
- content: i,
17
- ctaLabel: t,
18
- href: n,
19
- standaloneLink: l,
20
- isExternal: s,
21
- onClickCapture: m,
22
- "aria-label": C
23
- }, b) => {
24
- const w = A(), p = n && !t, N = s ? { target: "_blank", rel: "noopener noreferrer" } : {};
25
- return /* @__PURE__ */ d(
26
- "div",
27
- {
28
- ref: b,
29
- className: g(
30
- e.card,
31
- { [e.interactive]: p },
32
- o
33
- ),
34
- children: [
35
- p && /* @__PURE__ */ a(
36
- w,
37
- {
38
- href: n,
39
- className: e.link,
40
- draggable: "false",
41
- onClickCapture: m,
42
- "aria-label": C,
43
- ...N
44
- }
45
- ),
46
- i && /* @__PURE__ */ a(
47
- P,
48
- {
49
- badges: i.badges,
50
- description: i.description,
51
- eyebrow: i.eyebrow,
52
- heading: i.heading,
53
- subheading: i.subheading,
54
- thumbnail: i.thumbnail,
55
- showArrow: i.showArrow && !!p,
56
- cta: {
57
- ctaLabel: t,
58
- href: n,
59
- standaloneLink: l,
60
- onClickCapture: m,
61
- isExternal: s
62
- }
63
- }
64
- ),
65
- r,
66
- r && /* @__PURE__ */ a(
67
- h,
68
- {
69
- ctaLabel: t,
70
- href: n,
71
- standaloneLink: l,
72
- onClickCapture: m,
73
- isExternal: s
74
- }
75
- )
76
- ]
77
- }
78
- );
79
- }
80
- );
81
- f.displayName = "Card";
82
- const P = ({
83
- badges: r,
84
- description: o,
85
- eyebrow: i,
86
- heading: t,
87
- thumbnail: n,
88
- subheading: l,
89
- cta: s,
90
- showArrow: m
91
- }) => /* @__PURE__ */ d("div", { className: g(e.content, { [e["has-thumbnail"]]: n }), children: [
92
- n && /* @__PURE__ */ a(k, { ...n }),
93
- /* @__PURE__ */ d("div", { className: e.contentLockup, children: [
94
- /* @__PURE__ */ a(B, { children: i }),
95
- /* @__PURE__ */ a(z, { children: t }),
96
- /* @__PURE__ */ a(D, { children: l }),
97
- /* @__PURE__ */ a(T, { children: o }),
98
- /* @__PURE__ */ a(j, { badges: r }),
99
- s && /* @__PURE__ */ a(
100
- h,
101
- {
102
- ctaLabel: s.ctaLabel,
103
- href: s.href,
104
- standaloneLink: s.standaloneLink,
105
- isExternal: s.isExternal,
106
- onClickCapture: s.onClickCapture
107
- }
108
- ),
109
- m ? /* @__PURE__ */ a("div", { className: e.arrow, children: /* @__PURE__ */ a(L, {}) }) : null
110
- ] })
111
- ] }), h = ({
112
- href: r,
113
- ctaLabel: o,
114
- standaloneLink: i,
115
- isExternal: t,
116
- onClickCapture: n
117
- }) => {
118
- const l = r && !o;
119
- if (i) {
120
- const s = {
121
- ...i,
122
- icon: i.icon || "chevron-right",
123
- iconPosition: i.iconPosition || "trailing"
124
- };
125
- return /* @__PURE__ */ a(u, { className: e.cta, ...s });
126
- }
127
- return r && !l && o ? /* @__PURE__ */ a(
128
- u,
129
- {
130
- className: e.cta,
131
- text: o,
132
- href: r,
133
- icon: "chevron-right",
134
- iconPosition: "trailing",
135
- color: "secondary",
136
- onClickCapture: n,
137
- isHrefExternal: t
138
- }
139
- ) : null;
140
- }, B = ({ children: r }) => r ? Array.isArray(r) ? /* @__PURE__ */ a(S, { items: Array.from(r) }) : /* @__PURE__ */ a(y, { children: r }) : null, S = ({ items: r }) => /* @__PURE__ */ a("ul", { className: e.meta, children: r.map((o, i) => /* @__PURE__ */ d("li", { children: [
141
- /* @__PURE__ */ a(y, { children: o }),
142
- i < r.length - 1 ? /* @__PURE__ */ a("span", { className: e.metaSeparator, "aria-hidden": !0, children: "|" }) : null
143
- ] }, o)) }), y = ({ children: r }) => r ? /* @__PURE__ */ a(c.Label, { color: "faint", weight: "medium", children: r }) : null, z = ({ children: r }) => r ? /* @__PURE__ */ a(
144
- c.DisplayExpressive,
145
- {
146
- tag: "span",
147
- size: "200",
148
- weight: "semibold",
149
- color: "strong",
150
- children: r
151
- }
152
- ) : null, D = ({ children: r }) => r ? /* @__PURE__ */ a(c.Body, { tag: "span", size: "200", className: e.subheading, color: "primary", children: r }) : null, T = ({ children: r }) => r ? typeof r == "string" ? /* @__PURE__ */ a(c.Body, { tag: "span", size: "200", color: "primary", children: r }) : /* @__PURE__ */ a(v, { children: r }) : null, j = ({ badges: r }) => r && r.length > 0 ? /* @__PURE__ */ a("div", { className: e.badges, children: r.map((o) => /* @__PURE__ */ a(E, { ...o }, o.text)) }) : null;
153
- f.displayName = "Card";
154
- export {
155
- f as Card
156
- };
157
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/components/card/index.tsx"],"sourcesContent":["'use client'\n\nimport { forwardRef, type PropsWithChildren } from 'react'\nimport type { CardContentProps, CardProps, CardCtaProps } from './types'\nimport { CardThumbnail } from './card-thumbnail'\nimport { useMDSLink } from '../../utils/mds-context'\nimport { Text } from '../text'\nimport classNames from 'classnames'\nimport { Badge } from '../badge'\nimport { StandaloneLink } from '../standalone-link'\nimport { IconArrowRight24 } from '@hashicorp/flight-icons/svg-react/arrow-right-24'\nimport s from './styles.module.css'\n\nconst Card = forwardRef<HTMLDivElement, CardProps>(\n\t(\n\t\t{\n\t\t\tchildren,\n\t\t\tclassName,\n\t\t\tcontent,\n\t\t\tctaLabel,\n\t\t\thref,\n\t\t\tstandaloneLink,\n\t\t\tisExternal,\n\t\t\tonClickCapture,\n\t\t\t'aria-label': ariaLabel,\n\t\t},\n\t\tref\n\t) => {\n\t\tconst Link = useMDSLink()\n\n\t\tconst isCardLink = href && !ctaLabel\n\n\t\tconst linkProps = isExternal\n\t\t\t? { target: '_blank', rel: 'noopener noreferrer' }\n\t\t\t: {}\n\n\t\treturn (\n\t\t\t<div\n\t\t\t\tref={ref}\n\t\t\t\tclassName={classNames(\n\t\t\t\t\ts.card,\n\t\t\t\t\t{ [s.interactive]: isCardLink },\n\t\t\t\t\tclassName\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t{isCardLink && (\n\t\t\t\t\t<Link\n\t\t\t\t\t\thref={href}\n\t\t\t\t\t\tclassName={s.link}\n\t\t\t\t\t\tdraggable=\"false\"\n\t\t\t\t\t\tonClickCapture={onClickCapture}\n\t\t\t\t\t\taria-label={ariaLabel}\n\t\t\t\t\t\t{...linkProps}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t\t{content && (\n\t\t\t\t\t<CardContent\n\t\t\t\t\t\tbadges={content.badges}\n\t\t\t\t\t\tdescription={content.description}\n\t\t\t\t\t\teyebrow={content.eyebrow}\n\t\t\t\t\t\theading={content.heading}\n\t\t\t\t\t\tsubheading={content.subheading}\n\t\t\t\t\t\tthumbnail={content.thumbnail}\n\t\t\t\t\t\tshowArrow={content.showArrow && !!isCardLink}\n\t\t\t\t\t\tcta={{\n\t\t\t\t\t\t\tctaLabel,\n\t\t\t\t\t\t\thref,\n\t\t\t\t\t\t\tstandaloneLink,\n\t\t\t\t\t\t\tonClickCapture,\n\t\t\t\t\t\t\tisExternal,\n\t\t\t\t\t\t}}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t\t{children}\n\t\t\t\t{children && (\n\t\t\t\t\t<CardCta\n\t\t\t\t\t\tctaLabel={ctaLabel}\n\t\t\t\t\t\thref={href}\n\t\t\t\t\t\tstandaloneLink={standaloneLink}\n\t\t\t\t\t\tonClickCapture={onClickCapture}\n\t\t\t\t\t\tisExternal={isExternal}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t)\n\t}\n)\n\nCard.displayName = 'Card'\n\nconst CardContent = ({\n\tbadges,\n\tdescription,\n\teyebrow,\n\theading,\n\tthumbnail,\n\tsubheading,\n\tcta,\n\tshowArrow,\n}: CardContentProps) => {\n\treturn (\n\t\t<div className={classNames(s.content, { [s['has-thumbnail']]: thumbnail })}>\n\t\t\t{thumbnail && <CardThumbnail {...thumbnail} />}\n\t\t\t<div className={s.contentLockup}>\n\t\t\t\t<CardEyebrow>{eyebrow}</CardEyebrow>\n\t\t\t\t<CardHeading>{heading}</CardHeading>\n\t\t\t\t<CardSubheading>{subheading}</CardSubheading>\n\t\t\t\t<CardDescription>{description}</CardDescription>\n\t\t\t\t<Badges badges={badges} />\n\t\t\t\t{cta && (\n\t\t\t\t\t<CardCta\n\t\t\t\t\t\tctaLabel={cta.ctaLabel}\n\t\t\t\t\t\thref={cta.href}\n\t\t\t\t\t\tstandaloneLink={cta.standaloneLink}\n\t\t\t\t\t\tisExternal={cta.isExternal}\n\t\t\t\t\t\tonClickCapture={cta.onClickCapture}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t\t{showArrow ? (\n\t\t\t\t\t<div className={s.arrow}>\n\t\t\t\t\t\t<IconArrowRight24 />\n\t\t\t\t\t</div>\n\t\t\t\t) : null}\n\t\t\t</div>\n\t\t</div>\n\t)\n}\n\nconst CardCta = ({\n\thref,\n\tctaLabel,\n\tstandaloneLink,\n\tisExternal,\n\tonClickCapture,\n}: CardCtaProps) => {\n\tconst isCardLink = href && !ctaLabel\n\n\tif (standaloneLink) {\n\t\tconst standaloneLinkProps = {\n\t\t\t...standaloneLink,\n\t\t\ticon: standaloneLink.icon || 'chevron-right',\n\t\t\ticonPosition: standaloneLink.iconPosition || 'trailing',\n\t\t}\n\n\t\treturn <StandaloneLink className={s.cta} {...standaloneLinkProps} />\n\t}\n\n\tif (href && !isCardLink && ctaLabel) {\n\t\treturn (\n\t\t\t<StandaloneLink\n\t\t\t\tclassName={s.cta}\n\t\t\t\ttext={ctaLabel}\n\t\t\t\thref={href}\n\t\t\t\ticon=\"chevron-right\"\n\t\t\t\ticonPosition=\"trailing\"\n\t\t\t\tcolor=\"secondary\"\n\t\t\t\tonClickCapture={onClickCapture}\n\t\t\t\tisHrefExternal={isExternal}\n\t\t\t/>\n\t\t)\n\t}\n\n\treturn null\n}\n\nconst CardEyebrow = ({ children }: PropsWithChildren) => {\n\tif (!children) {\n\t\treturn null\n\t}\n\n\tif (Array.isArray(children)) {\n\t\treturn <CardEyebrowList items={Array.from(children)} />\n\t}\n\n\treturn <CardEyebrowText>{children}</CardEyebrowText>\n}\n\nconst CardEyebrowList = ({ items }: { items: string[] }) => (\n\t<ul className={s.meta}>\n\t\t{items.map((item, idx) => (\n\t\t\t<li key={item}>\n\t\t\t\t<CardEyebrowText>{item}</CardEyebrowText>\n\t\t\t\t{idx < items.length - 1 ? (\n\t\t\t\t\t<span className={s.metaSeparator} aria-hidden={true}>\n\t\t\t\t\t\t|\n\t\t\t\t\t</span>\n\t\t\t\t) : null}\n\t\t\t</li>\n\t\t))}\n\t</ul>\n)\n\nconst CardEyebrowText = ({ children }: PropsWithChildren) =>\n\tchildren ? (\n\t\t<Text.Label color=\"faint\" weight=\"medium\">\n\t\t\t{children}\n\t\t</Text.Label>\n\t) : null\n\nconst CardHeading = ({ children }: PropsWithChildren) =>\n\tchildren ? (\n\t\t<Text.DisplayExpressive\n\t\t\ttag=\"span\"\n\t\t\tsize=\"200\"\n\t\t\tweight=\"semibold\"\n\t\t\tcolor=\"strong\"\n\t\t>\n\t\t\t{children}\n\t\t</Text.DisplayExpressive>\n\t) : null\n\nconst CardSubheading = ({ children }: PropsWithChildren) =>\n\tchildren ? (\n\t\t<Text.Body tag=\"span\" size=\"200\" className={s.subheading} color=\"primary\">\n\t\t\t{children}\n\t\t</Text.Body>\n\t) : null\n\nconst CardDescription = ({ children }: PropsWithChildren) => {\n\tif (!children) {\n\t\treturn null\n\t}\n\n\tif (typeof children === 'string') {\n\t\treturn (\n\t\t\t<Text.Body tag=\"span\" size=\"200\" color=\"primary\">\n\t\t\t\t{children}\n\t\t\t</Text.Body>\n\t\t)\n\t}\n\n\treturn <>{children}</>\n}\n\nconst Badges = ({ badges }: { badges: CardContentProps['badges'] }) =>\n\tbadges && badges.length > 0 ? (\n\t\t<div className={s.badges}>\n\t\t\t{badges.map((badge) => (\n\t\t\t\t<Badge key={badge.text} {...badge} />\n\t\t\t))}\n\t\t</div>\n\t) : null\n\nCard.displayName = 'Card'\nexport { Card }\n"],"names":["Card","forwardRef","children","className","content","ctaLabel","href","standaloneLink","isExternal","onClickCapture","ariaLabel","ref","Link","useMDSLink","isCardLink","jsxs","classNames","s","jsx","linkProps","CardContent","CardCta","badges","description","eyebrow","heading","thumbnail","subheading","cta","showArrow","CardThumbnail","CardEyebrow","CardHeading","CardSubheading","CardDescription","IconArrowRight24","standaloneLinkProps","StandaloneLink","CardEyebrowList","CardEyebrowText","items","item","idx","Text","Fragment","Badges","badge","Badge"],"mappings":"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"}
@@ -1,29 +0,0 @@
1
- const t = "card__HomZw", a = "interactive__Irpce", n = "arrow__qnBL7", c = "link__Dz3Nf", e = "cta__UfNG2", o = "content__SiycH", _ = "subheading__MM0J8", s = "contentLockup__08EYi", r = "badges__GrCpe", i = "meta__8eKyE", d = "metaSeparator__44API", m = {
2
- card: t,
3
- interactive: a,
4
- arrow: n,
5
- link: c,
6
- cta: e,
7
- content: o,
8
- "has-thumbnail": "has-thumbnail__ftF14",
9
- subheading: _,
10
- contentLockup: s,
11
- badges: r,
12
- meta: i,
13
- metaSeparator: d
14
- };
15
- export {
16
- n as arrow,
17
- r as badges,
18
- t as card,
19
- o as content,
20
- s as contentLockup,
21
- e as cta,
22
- m as default,
23
- a as interactive,
24
- c as link,
25
- i as meta,
26
- d as metaSeparator,
27
- _ as subheading
28
- };
29
- //# sourceMappingURL=styles.module.css.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"styles.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;"}
@@ -1,34 +0,0 @@
1
- const e = "dark__aBMo7", n = "token__aGMSy", t = "title__nX-Ny", i = "description__-44hG", _ = "header__42Fek", a = "body__pLFmP", l = "code__J06se", o = {
2
- "code-block": "code-block__dOm6M",
3
- "line-highlight": "line-highlight__a84m6",
4
- dark: e,
5
- "language-css": "language-css__8iYaN",
6
- token: n,
7
- "language-javascript": "language-javascript__EWK5u",
8
- "language-markup": "language-markup__E7NSA",
9
- "language-html": "language-html__rLwMK",
10
- "is-standalone": "is-standalone__WLWxy",
11
- title: t,
12
- description: i,
13
- header: _,
14
- body: a,
15
- code: l,
16
- "copy-button": "copy-button__nMsTD",
17
- "line-highlight-first": "line-highlight-first__OMDUP",
18
- "line-highlight-last": "line-highlight-last__qC6nm",
19
- "line-numbers": "line-numbers__a9m-I",
20
- "line-numbers-rows": "line-numbers-rows__MjGTO",
21
- "line-of-code": "line-of-code__mDztA",
22
- "line-number": "line-number__-g7V-"
23
- };
24
- export {
25
- a as body,
26
- l as code,
27
- e as dark,
28
- o as default,
29
- i as description,
30
- _ as header,
31
- t as title,
32
- n as token
33
- };
34
- //# sourceMappingURL=code-block.module.scss.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"code-block.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,59 +0,0 @@
1
- "use client";
2
- import { jsxs as c, Fragment as L, jsx as e } from "react/jsx-runtime";
3
- import { useMemo as d } from "react";
4
- import u from "classnames";
5
- import G from "../utils/parse-highlighted-lines.js";
6
- import N from "./utils/split-jsx-into-lines.js";
7
- import b from "./utils/split-html-into-lines.js";
8
- import h from "../code-block.module.scss.js";
9
- const S = ({
10
- value: n,
11
- hasLineNumbers: I,
12
- highlightLines: f
13
- }) => {
14
- const o = G(f), m = d(() => (typeof n == "string" ? b(n) : N(n)).map((g, l) => {
15
- const t = l + 1, s = o.indexOf(t) !== -1;
16
- return { children: g, highlight: s };
17
- }).map(({ highlight: g, ...l }, t, s) => {
18
- const p = t === 0 ? null : s[t - 1], a = t === s.length - 1 ? null : s[t + 1];
19
- return {
20
- ...l,
21
- highlight: g,
22
- highlightIsFirstInGroup: !p || !p.highlight,
23
- highlightIsLastInGroup: !a || !a.highlight
24
- };
25
- }), [n, o]);
26
- return /* @__PURE__ */ c(L, { children: [
27
- I ? /* @__PURE__ */ e("span", { "aria-hidden": "true", className: h["line-numbers-rows"], children: m.map((i, r) => /* @__PURE__ */ e(
28
- "span",
29
- {
30
- className: u(h["line-number"], {
31
- [h["line-highlight"]]: i.highlight,
32
- [h["line-highlight-first"]]: i.highlightIsFirstInGroup,
33
- [h["line-highlight-last"]]: i.highlightIsLastInGroup
34
- })
35
- },
36
- r
37
- )) }) : null,
38
- /* @__PURE__ */ e("span", { children: m.map((i, r) => /* @__PURE__ */ c(
39
- "span",
40
- {
41
- className: u(h["line-of-code"], {
42
- [h["line-highlight"]]: i.highlight,
43
- [h["line-highlight-first"]]: i.highlightIsFirstInGroup,
44
- [h["line-highlight-last"]]: i.highlightIsLastInGroup
45
- }),
46
- children: [
47
- i.children,
48
- `
49
- `
50
- ]
51
- },
52
- r
53
- )) })
54
- ] });
55
- };
56
- export {
57
- S as CodeLines
58
- };
59
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/code-block/code-lines/index.tsx"],"sourcesContent":["'use client'\n\n/**\n * Note: lines of code are expected to be stable. If we need to work with\n * dynamic code blocks in the future, we could assign random unique IDs\n * to each line during the `linesOfCode` `useMemo` function.\n *\n * For now, we disable react/no-array-index key for the entire file.\n */\n/* eslint-disable react/no-array-index-key */\n\nimport { useMemo, type ReactNode } from 'react'\nimport classNames from 'classnames'\nimport parseHighlightedLines from '../utils/parse-highlighted-lines'\nimport splitJsxIntoLines from './utils/split-jsx-into-lines'\nimport splitHtmlIntoLines from './utils/split-html-into-lines'\nimport s from '../code-block.module.scss'\n\ninterface CodeLinesProps {\n\tvalue: ReactNode\n\thasLineNumbers?: boolean\n\thighlightLines?: string\n}\n\n/**\n * Render the provided code into separate line elements,\n * accounting for all provided options.\n */\nconst CodeLines = ({\n\tvalue,\n\thasLineNumbers: lineNumbers,\n\thighlightLines: highlight,\n}: CodeLinesProps) => {\n\t// Parse out an array of integers representing which lines to highlight\n\tconst highlightedLines = parseHighlightedLines(highlight) as number[]\n\n\t/**\n\t * Split the incoming code into lines.\n\t * We need to do this in order to render each line of code in a\n\t * separate element, which is necessary for features such as highlighting\n\t * specific lines and allowing code to wrap.\n\t */\n\tconst linesOfCode = useMemo(() => {\n\t\tconst isHtmlString = typeof value === 'string'\n\t\tconst lineElements = isHtmlString\n\t\t\t? splitHtmlIntoLines(value)\n\t\t\t: splitJsxIntoLines(value)\n\t\treturn lineElements\n\t\t\t.map((children, index) => {\n\t\t\t\tconst number = index + 1\n\t\t\t\tconst highlight = highlightedLines.indexOf(number) !== -1\n\t\t\t\treturn { children, highlight }\n\t\t\t})\n\t\t\t.map(({ highlight, ...rest }, index, lines) => {\n\t\t\t\t// Add properties to help with highlighting adjacent lines of code,\n\t\t\t\t// in which case we want to apply a border to the first and last lines,\n\t\t\t\t// but not the lines in the middle of the group.\n\t\t\t\tconst prevLine = index === 0 ? null : lines[index - 1]\n\t\t\t\tconst nextLine = index === lines.length - 1 ? null : lines[index + 1]\n\t\t\t\treturn {\n\t\t\t\t\t...rest,\n\t\t\t\t\thighlight,\n\t\t\t\t\thighlightIsFirstInGroup: !prevLine || !prevLine.highlight,\n\t\t\t\t\thighlightIsLastInGroup: !nextLine || !nextLine.highlight,\n\t\t\t\t}\n\t\t\t})\n\t}, [value, highlightedLines])\n\n\t/**\n\t * For overflowing code, we use a two-column layout.\n\t * The first column contains line numbers, and is effectively fixed.\n\t * The second column contains the lines themselves, and is an overflow\n\t * container to allow extra long lines to scroll as needed.\n\t */\n\treturn (\n\t\t<>\n\t\t\t{lineNumbers ? (\n\t\t\t\t<span aria-hidden=\"true\" className={s['line-numbers-rows']}>\n\t\t\t\t\t{linesOfCode.map((line, idx) => (\n\t\t\t\t\t\t<span\n\t\t\t\t\t\t\tkey={idx}\n\t\t\t\t\t\t\tclassName={classNames(s['line-number'], {\n\t\t\t\t\t\t\t\t[s['line-highlight']]: line.highlight,\n\t\t\t\t\t\t\t\t[s['line-highlight-first']]: line.highlightIsFirstInGroup,\n\t\t\t\t\t\t\t\t[s['line-highlight-last']]: line.highlightIsLastInGroup,\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t/>\n\t\t\t\t\t))}\n\t\t\t\t</span>\n\t\t\t) : null}\n\t\t\t<span>\n\t\t\t\t{linesOfCode.map((line, idx) => (\n\t\t\t\t\t<span\n\t\t\t\t\t\tkey={idx}\n\t\t\t\t\t\tclassName={classNames(s['line-of-code'], {\n\t\t\t\t\t\t\t[s['line-highlight']]: line.highlight,\n\t\t\t\t\t\t\t[s['line-highlight-first']]: line.highlightIsFirstInGroup,\n\t\t\t\t\t\t\t[s['line-highlight-last']]: line.highlightIsLastInGroup,\n\t\t\t\t\t\t})}\n\t\t\t\t\t>\n\t\t\t\t\t\t{line.children}\n\t\t\t\t\t\t{/* We are _not_ rendering our lines as block elements, so we need\n\t\t\t\t\t\t to add a trailing newline to all lines. As well, trailing\n\t\t\t\t\t\t\t\tnewlines are necessary for some browsers (FireFox)\n\t\t\t\t\t\t to preserve whitespace during select-and-copy of code */}\n\t\t\t\t\t\t{'\\n'}\n\t\t\t\t\t</span>\n\t\t\t\t))}\n\t\t\t</span>\n\t\t</>\n\t)\n}\n\nexport { CodeLines }\n"],"names":["CodeLines","value","lineNumbers","highlight","highlightedLines","parseHighlightedLines","useMemo","splitHtmlIntoLines","splitJsxIntoLines","children","index","number","highlight2","rest","prevLine","lines","nextLine","jsxs","Fragment","jsx","s","linesOfCode","line","idx","classNames"],"mappings":";;;;;;;;AA4BmB,MAClBA,IAAA,CAAA;AAAA,EACA,OAAAC;AAAA,EACA,gBAAgBC;AAAA,EACjB,gBAAsBC;AAErB;AAQA,QAAMC,IAAcC,EAAcF,CAAA,OAC3BG,EAAe,OACA,OAAAL,KAClB,WAGcM,EAAUN,CAAA,IAAAO,EAAAP,CAAA,GACV,KAAQQ,GAAAC,MAAA;AACvB,UAAMP,IAAAA,IAAY,OACCC,UAAUO,CAAA,MAAA;AAC7B,aACO,UAAAF,GAAAN,WAAAA;EAIP,CAAA,EAAA,IAAA,CAAM,EAAA,WAAWS,GAAc,GAAAC,EAAO,GAAAH,SAAe;AACrD,UAAMI,IAAWJ,MAAU,IAAA,OAAMK,MAAa,CAAO,GACrDC,IAAON,MAAAK,EAAA,SAAA,IAAA,OAAAA,EAAAL,IAAA,CAAA;AAAA,WACH;AAAA,MACH,GAAAG;AAAA,MACA,WAAAD;AAAA,MACA,yBAAyB,MAAa,GAAS;AAAA,MAChD,wBAAA,CAAAI,KAAA,CAAAA,EAAA;AAAA,IACA;AAAA,EACH,CAAG,QASF,CAAA;AACE,SAAA,gBAAAC,EAAAC,GACC,EAAA,UAAK;AAAA,IAEJhB,IAAC,gBAAAiB,EAAA,QAAA,EAAA,eAAA,QAAA,WAAAC,EAAA,mBAAA,GAAA,UAAAC,EAAA,IAAA,CAAAC,GAAAC,MAAA,gBAAAJ;AAAA,MAAA;AAAA,MAAA;AAAA,QAEwC,WACpCK,EAAiBJ,EAAA,aAAQ,GAAA;AAAA,UAC5B,CAACA,EAAE,gBAAA,CAAA,GAAAE,EAAuB;AAAA,UAC1B,CAACF,EAAE,sBAAsB,CAAA,KAAQ;AAAA,UACjC,CAAAA,EAAA,qBAAA,CAAA,GAAAE,EAAA;AAAA,QAAA,CAAA;AAAA,MALI;AAAA;IASL,CAAA,EAAA,CAAA,IAAA;AAAA,IAGD,gBAAAH,EAAA,QAAA,EAAA,UAAAE,EAAA,IAAA,CAAAC,GAAAC,MAAA,gBAAAN;AAAA,MAAA;AAAA,MAAA;AAAA,QAEyC,WACrCO,EAAiBJ,EAAA,cAAQ,GAAA;AAAA,UAC5B,CAACA,EAAE,gBAAA,CAAA,GAAAE,EAAuB;AAAA,UAC1B,CAACF,EAAE,sBAAsB,CAAA,KAAQ;AAAA,UACjC,CAAAA,EAAA,qBAAA,CAAA,GAAAE,EAAA;AAAA,QAEA;QAAA,UAAK;AAAA,UAKLA,EAAA;AAAA,UAAA;AAAA;AAAA,QAAA;AAAA,MAZI;AAAA,MAcNC;AAAA,KAEH,EAAA,CAAA;AAAA,EAEF,EAAA,CAAA;;"}
@@ -1,19 +0,0 @@
1
- import { jsx as e } from "react/jsx-runtime";
2
- const r = '<span class="line"></span>';
3
- function p(t) {
4
- const s = t.split(`
5
- `);
6
- return s.map((n, i) => i == s.length - 1 && n == "" ? null : /* @__PURE__ */ e(
7
- "span",
8
- {
9
- dangerouslySetInnerHTML: {
10
- __html: n === "" || n === r ? "&nbsp;" : n
11
- }
12
- },
13
- i
14
- ));
15
- }
16
- export {
17
- p as default
18
- };
19
- //# sourceMappingURL=split-html-into-lines.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"split-html-into-lines.js","sources":["../../../../../src/components/code-block/code-lines/utils/split-html-into-lines.tsx"],"sourcesContent":["import type { ReactNode } from 'react'\n\nconst SHIKI_BLANK_LINE = '<span class=\"line\"></span>'\n/**\n * Given a string of HTML, split it on newlines,\n * and return an array of React <span> elements,\n * each of which will contain a single line.\n *\n * Note that HTML tokens should not be multi-line,\n * ie, all newline characters should be surfaced\n * to the top level rather than nested in syntax\n * highlighting tokens (otherwise the line-by-line\n * markup we render would be invalid). We have\n * a rehype plugin we use with our highlightString()\n * utility to ensure newlines are surfaced in this way.\n *\n * @param {string} codeHtml String of HTML\n * @returns Array of JSX <span> elements\n */\nfunction splitHtmlIntoLines(codeHtml: string): (ReactNode | null)[] {\n\tconst lineParts = codeHtml.split('\\n')\n\treturn lineParts.map((lineHtml, stableIdx) => {\n\t\t// Cut trailing newlines\n\t\tconst isLastLine = stableIdx == lineParts.length - 1\n\t\tconst isTrailingNewline = isLastLine && lineHtml == ''\n\t\tif (isTrailingNewline) return null\n\t\t// Otherwise, render the line\n\t\treturn (\n\t\t\t<span\n\t\t\t\t// This array is stable, so we can use index as key\n\t\t\t\t// eslint-disable-next-line react/no-array-index-key\n\t\t\t\tkey={stableIdx}\n\t\t\t\tdangerouslySetInnerHTML={{\n\t\t\t\t\t__html:\n\t\t\t\t\t\tlineHtml === '' || lineHtml === SHIKI_BLANK_LINE\n\t\t\t\t\t\t\t? '&nbsp;'\n\t\t\t\t\t\t\t: lineHtml,\n\t\t\t\t}}\n\t\t\t/>\n\t\t)\n\t})\n}\n\nexport default splitHtmlIntoLines\n"],"names":["SHIKI_BLANK_LINE","splitHtmlIntoLines","codeHtml","lineParts","lineHtml","stableIdx","jsx"],"mappings":";AAEA,MAAMA,IAAmB;AAiBzB,SAASC,EAAmBC,GAAwC;AACnE,QAAMC,IAAYD,EAAS,MAAM;AAAA,CAAI;AACrC,SAAOC,EAAU,IAAI,CAACC,GAAUC,MAEZA,KAAaF,EAAU,SAAS,KACXC,KAAY,KACtB,OAG7B,gBAAAE;AAAA,IAAC;AAAA,IAAA;AAAA,MAIA,yBAAyB;AAAA,QACxB,QACCF,MAAa,MAAMA,MAAaJ,IAC7B,WACAI;AAAA,MAAA;AAAA,IACL;AAAA,IANKC;AAAA,EAAA,CASP;AACF;"}
@@ -1,31 +0,0 @@
1
- import { Children as f } from "react";
2
- function h(u) {
3
- const i = f.toArray(u).map((e) => typeof e == "object" && "props" in e && e.props.className?.includes("empty-line") ? `
4
- ` : e);
5
- return i.reduce(
6
- (e, n, o) => {
7
- const s = o === i.length - 1, t = n === `
8
- `, r = n !== `
9
- `;
10
- t && e.consecutiveNewlines++;
11
- const p = t && s, N = e.consecutiveNewlines > 0;
12
- if ((r || p) && N) {
13
- e.currentLine.length > 0 && (e.lines.push(e.currentLine), e.currentLine = []);
14
- for (let l = 1; l < e.consecutiveNewlines; l++)
15
- e.lines.push("");
16
- e.consecutiveNewlines = 0;
17
- }
18
- return r && (e.currentLine.push(n), s && e.lines.push(e.currentLine)), e;
19
- },
20
- {
21
- lines: [],
22
- currentLine: [],
23
- consecutiveNewlines: 1
24
- // Start at 1 to handle leading newlines
25
- }
26
- ).lines;
27
- }
28
- export {
29
- h as default
30
- };
31
- //# sourceMappingURL=split-jsx-into-lines.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"split-jsx-into-lines.js","sources":["../../../../../src/components/code-block/code-lines/utils/split-jsx-into-lines.ts"],"sourcesContent":["import { Children, type ReactNode } from 'react'\n\n/**\n * Given an array of React children,\n * split the array on newlines, grouping consecutive\n * non-newline tokens in individual line elements,\n * and return an array of React <span> elements,\n * each of which will contain a single line.\n *\n * Note that JSX tokens should not be multi-line,\n * ie, all newline characters should be surfaced\n * to the top level rather than nested in syntax\n * highlighting tokens (otherwise the line-by-line\n * markup we render would be invalid). We have\n * a rehype plugin we include with our markdown defaults\n * to ensure newlines are surfaced in this way.\n *\n * @param {*} codeJsx Array of JSX elements, some of which may be newline strings\n * @returns Array of JSX <span> elements representing individual lines\n */\nfunction splitJsxIntoLines(codeJsx: React.ReactNode | React.ReactNode[]) {\n\tconst linesArray = Children.toArray(codeJsx)\n\t/**\n\t * Many newlines take the form of a literal newline string, `\\n`.\n\t * However, some newlines take different forms. We expect these to be tagged\n\t * with an `empty-line` className by our rehype code plugins.\n\t * Here we detect the latter types of newline, and convert them to the former.\n\t */\n\tconst withNormalizedNewlines = linesArray.map((token) => {\n\t\t// If our token has an `empty-line` className, use a literal newline\n\t\t// rather than the token itself (which would render, but with zero height)\n\t\tif (typeof token === 'object' && 'props' in token) {\n\t\t\tif (token.props.className?.includes('empty-line')) {\n\t\t\t\treturn '\\n'\n\t\t\t}\n\t\t}\n\t\t// Otherwise, return the token unmodified\n\t\treturn token\n\t})\n\t// Filter out any surfaces newlines, that are \"in between\"\n\t// other lines of code. Special exceptions should be made for:\n\t// 1. newlines at start or end of array - should be rendered as blank lines\n\t// 2. consecutive newlines - \"n\" consecutive newlines should be rendered\n\t// as \"n - 1\" blank lines.\n\tconst accumulatedLines = withNormalizedNewlines.reduce(\n\t\t(acc, token, idx) => {\n\t\t\tconst isLastLine = idx === withNormalizedNewlines.length - 1\n\t\t\tconst isNewline = token === '\\n'\n\t\t\tconst isInlineToken = token !== '\\n'\n\t\t\t// For newlines, increment the consecutive newline counter\n\t\t\tif (isNewline) acc.consecutiveNewlines++\n\t\t\t// If this token is an inline token, and we have\n\t\t\t// pending newlines, then start a new line,\n\t\t\t// adding blank lines for consecutive newlines as needed\n\t\t\tconst isFinalNewline = isNewline && isLastLine\n\t\t\tconst hasNewlines = acc.consecutiveNewlines > 0\n\t\t\tconst needsNewlines = (isInlineToken || isFinalNewline) && hasNewlines\n\t\t\tif (needsNewlines) {\n\t\t\t\t// If there are any tokens in the current line, add them as a new line\n\t\t\t\tif (acc.currentLine.length > 0) {\n\t\t\t\t\tacc.lines.push(acc.currentLine)\n\t\t\t\t\tacc.currentLine = []\n\t\t\t\t}\n\t\t\t\t// Add blank lines for each consecutive newline, then reset the counter\n\t\t\t\tfor (let i = 1; i < acc.consecutiveNewlines; i++) {\n\t\t\t\t\tacc.lines.push('')\n\t\t\t\t}\n\t\t\t\tacc.consecutiveNewlines = 0\n\t\t\t}\n\t\t\t// If this token is an inline token,\n\t\t\t// append it to the current line\n\t\t\tif (isInlineToken) {\n\t\t\t\tacc.currentLine.push(token)\n\t\t\t\t// If this is the last line,\n\t\t\t\t// then ensure the current line\n\t\t\t\t// has been pushed to the lines array\n\t\t\t\tif (isLastLine) acc.lines.push(acc.currentLine)\n\t\t\t}\n\t\t\treturn acc\n\t\t},\n\t\t{\n\t\t\tlines: [] as ReactNode[],\n\t\t\tcurrentLine: [] as ReactNode[],\n\t\t\tconsecutiveNewlines: 1, // Start at 1 to handle leading newlines\n\t\t}\n\t)\n\treturn accumulatedLines.lines\n}\n\nexport default splitJsxIntoLines\n"],"names":["splitJsxIntoLines","codeJsx","withNormalizedNewlines","Children","token","acc","idx","isLastLine","isNewline","isInlineToken","isFinalNewline","hasNewlines","i"],"mappings":";AAoBA,SAASA,EAAkBC,GAA8C;AAQxE,QAAMC,IAPaC,EAAS,QAAQF,CAAO,EAOD,IAAI,CAACG,MAG1C,OAAOA,KAAU,YAAY,WAAWA,KACvCA,EAAM,MAAM,WAAW,SAAS,YAAY,IACxC;AAAA,IAIFA,CACP;AAgDD,SA1CyBF,EAAuB;AAAA,IAC/C,CAACG,GAAKD,GAAOE,MAAQ;AACpB,YAAMC,IAAaD,MAAQJ,EAAuB,SAAS,GACrDM,IAAYJ,MAAU;AAAA,GACtBK,IAAgBL,MAAU;AAAA;AAEhC,MAAII,KAAWH,EAAI;AAInB,YAAMK,IAAiBF,KAAaD,GAC9BI,IAAcN,EAAI,sBAAsB;AAE9C,WADuBI,KAAiBC,MAAmBC,GACxC;AAElB,QAAIN,EAAI,YAAY,SAAS,MAC5BA,EAAI,MAAM,KAAKA,EAAI,WAAW,GAC9BA,EAAI,cAAc,CAAA;AAGnB,iBAASO,IAAI,GAAGA,IAAIP,EAAI,qBAAqBO;AAC5C,UAAAP,EAAI,MAAM,KAAK,EAAE;AAElB,QAAAA,EAAI,sBAAsB;AAAA,MAC3B;AAGA,aAAII,MACHJ,EAAI,YAAY,KAAKD,CAAK,GAItBG,KAAYF,EAAI,MAAM,KAAKA,EAAI,WAAW,IAExCA;AAAA,IACR;AAAA,IACA;AAAA,MACC,OAAO,CAAA;AAAA,MACP,aAAa,CAAA;AAAA,MACb,qBAAqB;AAAA;AAAA,IAAA;AAAA,EACtB,EAEuB;AACzB;"}
@@ -1,5 +0,0 @@
1
- import { ReactNode } from 'react';
2
- declare const HiddenCopyContent: import('react').ForwardRefExoticComponent<{
3
- code: ReactNode;
4
- } & import('react').RefAttributes<HTMLPreElement>>;
5
- export { HiddenCopyContent };
@@ -1,13 +0,0 @@
1
- "use client";
2
- import { jsx as t } from "react/jsx-runtime";
3
- import { forwardRef as s, useState as i, useEffect as l } from "react";
4
- const f = ({ code: e }, n) => {
5
- const [r, o] = i(!1);
6
- return l(() => {
7
- o(!0);
8
- }, []), r ? /* @__PURE__ */ t("pre", { ref: n, style: { display: "none" }, children: typeof e == "string" ? /* @__PURE__ */ t("span", { dangerouslySetInnerHTML: { __html: e } }) : e }) : null;
9
- }, C = s(f);
10
- export {
11
- C as HiddenCopyContent
12
- };
13
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/code-block/hidden-copy-content/index.tsx"],"sourcesContent":["'use client'\n\nimport { forwardRef, useEffect, useState, type ReactNode } from 'react'\n\n/**\n * This hidden element acts solely as a container\n * that we can fetch textContent to copy to clipboard.\n * This allows to ignore the \"how will we copy this cleanly\"\n * concern when splitting code into lines, and adding\n * line numbers and so on in other parts of code-block.\n */\nconst HiddenCopyContentComponent = (\n\t{ code }: { code: ReactNode },\n\tcopyRef: React.ForwardedRef<HTMLPreElement>\n) => {\n\tconst [isClient, setIsClient] = useState(false)\n\n\tuseEffect(() => {\n\t\tsetIsClient(true)\n\t}, [])\n\n\t/**\n\t * We are avoiding SSR here as this component is only used for the copy-to-clipboard interaction, and so rendering\n\t * the text content of the code introduces duplicate markup and some difficult-to-debug hydration mismatches.\n\t * By the time someone interacts with the copy-to-clipboard functionality, this should be rendered.\n\t */\n\tif (!isClient) return null\n\n\treturn (\n\t\t<pre ref={copyRef} style={{ display: 'none' }}>\n\t\t\t{typeof code === 'string' ? (\n\t\t\t\t<span dangerouslySetInnerHTML={{ __html: code }} />\n\t\t\t) : (\n\t\t\t\tcode\n\t\t\t)}\n\t\t</pre>\n\t)\n}\n\nconst HiddenCopyContent = forwardRef(HiddenCopyContentComponent)\n\nexport { HiddenCopyContent }\n"],"names":["HiddenCopyContentComponent","code","copyRef","isClient","setIsClient","useState","useEffect","jsx"],"mappings":";;;AAeC,MAAAA,IAAgC,CAAA,EAAA,MAAAC,EAAS,GAAAC,MAAK;AAE9C,QAAA,CAAAC,GAAgBC,CAAA,IAAAC,EAAA,EAAA;AAWhB,SAVCC,EAAA,MAAY;AACb,IAAAF,EAAK,EAAA;AAAA,EAOL,GAAA,CAAI,CAAC,OAWN,gBAAAG,EAAA,OAAA,EAAA,KAAAL,GAAA,OAAA,EAAA,SAAA,OAAA,GAAA,UAAA,OAAAD,KAAA,WAAA,gBAAAM,EAAA,QAAA,EAAA,yBAAA,EAAA,QAAAN,EAAA,EAAA,CAAA,IAAAA,EAAA,CAAA;AAEA;"}
@@ -1,88 +0,0 @@
1
- "use client";
2
- import { jsxs as t, jsx as o } from "react/jsx-runtime";
3
- import { useRef as h, useId as x } from "react";
4
- import N from "classnames";
5
- import { Text as a } from "../text/index.js";
6
- import { CodeLines as b } from "./code-lines/index.js";
7
- import { HiddenCopyContent as k } from "./hidden-copy-content/index.js";
8
- import B from "./utils/process-snippet.js";
9
- import { CopyButton as g } from "../../patterns/copy-button/index.js";
10
- import e from "./code-block.module.scss.js";
11
- const w = ({
12
- title: r,
13
- description: s,
14
- language: c,
15
- value: i,
16
- isStandalone: p = !0,
17
- hasCopyButton: f,
18
- hasLineNumbers: n = !0,
19
- highlightLines: u,
20
- maxHeight: y = "auto",
21
- className: C
22
- }) => {
23
- const d = h(null), l = x();
24
- return /* @__PURE__ */ t(
25
- "div",
26
- {
27
- className: N(
28
- e["code-block"],
29
- e.dark,
30
- {
31
- [e[`language-${c}`]]: c,
32
- [e["is-standalone"]]: p,
33
- [e["line-numbers"]]: n
34
- },
35
- C
36
- ),
37
- children: [
38
- /* @__PURE__ */ t("div", { className: e.header, children: [
39
- r && /* @__PURE__ */ o(
40
- a.HDSBody,
41
- {
42
- size: "200",
43
- tag: "p",
44
- weight: "semibold",
45
- className: e.title,
46
- children: r
47
- }
48
- ),
49
- s && /* @__PURE__ */ o(a.HDSBody, { tag: "p", size: "100", className: e.description, children: s })
50
- ] }),
51
- /* @__PURE__ */ t("div", { className: e.body, children: [
52
- /* @__PURE__ */ o(k, { code: i, ref: d }),
53
- /* @__PURE__ */ o("pre", { className: e.code, id: l, style: { maxHeight: y }, children: /* @__PURE__ */ o("code", { children: /* @__PURE__ */ o(
54
- b,
55
- {
56
- value: i,
57
- highlightLines: u,
58
- hasLineNumbers: n
59
- }
60
- ) }) }),
61
- f && /* @__PURE__ */ o(
62
- g,
63
- {
64
- className: e["copy-button"],
65
- "aria-describedby": l,
66
- getTextFn: () => {
67
- const m = d.current?.textContent;
68
- if (!m)
69
- throw new Error(
70
- "`code-block` - Couldn't find text content to copy."
71
- );
72
- return B(m);
73
- },
74
- text: "Copy",
75
- isIconOnly: !0,
76
- size: "small"
77
- }
78
- )
79
- ] })
80
- ]
81
- }
82
- );
83
- };
84
- w.displayName = "CodeBlock";
85
- export {
86
- w as CodeBlock
87
- };
88
- //# sourceMappingURL=index.js.map