@furystack/shades-common-components 13.4.1 → 14.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (365) hide show
  1. package/CHANGELOG.md +85 -0
  2. package/README.md +3 -3
  3. package/esm/components/accordion/accordion-item.js +1 -1
  4. package/esm/components/accordion/accordion-item.js.map +1 -1
  5. package/esm/components/accordion/accordion.js +1 -1
  6. package/esm/components/accordion/accordion.js.map +1 -1
  7. package/esm/components/alert.js +1 -1
  8. package/esm/components/alert.js.map +1 -1
  9. package/esm/components/app-bar-link.js +1 -1
  10. package/esm/components/app-bar-link.js.map +1 -1
  11. package/esm/components/app-bar.js +1 -1
  12. package/esm/components/app-bar.js.map +1 -1
  13. package/esm/components/avatar.js +1 -1
  14. package/esm/components/avatar.js.map +1 -1
  15. package/esm/components/badge.js +1 -1
  16. package/esm/components/badge.js.map +1 -1
  17. package/esm/components/breadcrumb.js +1 -1
  18. package/esm/components/breadcrumb.js.map +1 -1
  19. package/esm/components/breadcrumb.spec.js +3 -3
  20. package/esm/components/breadcrumb.spec.js.map +1 -1
  21. package/esm/components/button-group.js +4 -4
  22. package/esm/components/button-group.js.map +1 -1
  23. package/esm/components/button.js +1 -1
  24. package/esm/components/button.js.map +1 -1
  25. package/esm/components/button.spec.js +1 -1
  26. package/esm/components/button.spec.js.map +1 -1
  27. package/esm/components/cache-view.js +1 -1
  28. package/esm/components/cache-view.js.map +1 -1
  29. package/esm/components/cache-view.spec.js +2 -2
  30. package/esm/components/cache-view.spec.js.map +1 -1
  31. package/esm/components/card.js +5 -5
  32. package/esm/components/card.js.map +1 -1
  33. package/esm/components/carousel.js +1 -1
  34. package/esm/components/carousel.js.map +1 -1
  35. package/esm/components/chip.js +1 -1
  36. package/esm/components/chip.js.map +1 -1
  37. package/esm/components/circular-progress.d.ts +2 -4
  38. package/esm/components/circular-progress.d.ts.map +1 -1
  39. package/esm/components/circular-progress.js +3 -6
  40. package/esm/components/circular-progress.js.map +1 -1
  41. package/esm/components/circular-progress.spec.js +19 -14
  42. package/esm/components/circular-progress.spec.js.map +1 -1
  43. package/esm/components/command-palette/command-palette-input.js +1 -1
  44. package/esm/components/command-palette/command-palette-input.js.map +1 -1
  45. package/esm/components/command-palette/command-palette-suggestion-list.js +1 -1
  46. package/esm/components/command-palette/command-palette-suggestion-list.js.map +1 -1
  47. package/esm/components/command-palette/command-palette-suggestion-list.spec.js +1 -1
  48. package/esm/components/command-palette/command-palette-suggestion-list.spec.js.map +1 -1
  49. package/esm/components/command-palette/index.js +1 -1
  50. package/esm/components/command-palette/index.js.map +1 -1
  51. package/esm/components/context-menu/context-menu-item.js +1 -1
  52. package/esm/components/context-menu/context-menu-item.js.map +1 -1
  53. package/esm/components/context-menu/context-menu.js +1 -1
  54. package/esm/components/context-menu/context-menu.js.map +1 -1
  55. package/esm/components/data-grid/body.js +1 -1
  56. package/esm/components/data-grid/body.js.map +1 -1
  57. package/esm/components/data-grid/data-grid-row.js +1 -1
  58. package/esm/components/data-grid/data-grid-row.js.map +1 -1
  59. package/esm/components/data-grid/data-grid.d.ts +5 -2
  60. package/esm/components/data-grid/data-grid.d.ts.map +1 -1
  61. package/esm/components/data-grid/data-grid.js +5 -3
  62. package/esm/components/data-grid/data-grid.js.map +1 -1
  63. package/esm/components/data-grid/data-grid.spec.js +60 -60
  64. package/esm/components/data-grid/data-grid.spec.js.map +1 -1
  65. package/esm/components/data-grid/filters/boolean-filter.d.ts +2 -2
  66. package/esm/components/data-grid/filters/boolean-filter.d.ts.map +1 -1
  67. package/esm/components/data-grid/filters/boolean-filter.js +4 -4
  68. package/esm/components/data-grid/filters/boolean-filter.js.map +1 -1
  69. package/esm/components/data-grid/filters/boolean-filter.spec.js +18 -17
  70. package/esm/components/data-grid/filters/boolean-filter.spec.js.map +1 -1
  71. package/esm/components/data-grid/filters/date-filter.d.ts +2 -2
  72. package/esm/components/data-grid/filters/date-filter.d.ts.map +1 -1
  73. package/esm/components/data-grid/filters/date-filter.js +6 -6
  74. package/esm/components/data-grid/filters/date-filter.js.map +1 -1
  75. package/esm/components/data-grid/filters/date-filter.spec.js +26 -21
  76. package/esm/components/data-grid/filters/date-filter.spec.js.map +1 -1
  77. package/esm/components/data-grid/filters/enum-filter.d.ts +2 -2
  78. package/esm/components/data-grid/filters/enum-filter.d.ts.map +1 -1
  79. package/esm/components/data-grid/filters/enum-filter.js +5 -5
  80. package/esm/components/data-grid/filters/enum-filter.js.map +1 -1
  81. package/esm/components/data-grid/filters/enum-filter.spec.js +21 -19
  82. package/esm/components/data-grid/filters/enum-filter.spec.js.map +1 -1
  83. package/esm/components/data-grid/filters/filter-dropdown.js +1 -1
  84. package/esm/components/data-grid/filters/filter-dropdown.js.map +1 -1
  85. package/esm/components/data-grid/filters/number-filter.d.ts +2 -2
  86. package/esm/components/data-grid/filters/number-filter.d.ts.map +1 -1
  87. package/esm/components/data-grid/filters/number-filter.js +5 -5
  88. package/esm/components/data-grid/filters/number-filter.js.map +1 -1
  89. package/esm/components/data-grid/filters/number-filter.spec.js +23 -21
  90. package/esm/components/data-grid/filters/number-filter.spec.js.map +1 -1
  91. package/esm/components/data-grid/filters/string-filter.d.ts +2 -2
  92. package/esm/components/data-grid/filters/string-filter.d.ts.map +1 -1
  93. package/esm/components/data-grid/filters/string-filter.js +5 -5
  94. package/esm/components/data-grid/filters/string-filter.js.map +1 -1
  95. package/esm/components/data-grid/filters/string-filter.spec.js +21 -19
  96. package/esm/components/data-grid/filters/string-filter.spec.js.map +1 -1
  97. package/esm/components/data-grid/footer.d.ts +2 -2
  98. package/esm/components/data-grid/footer.d.ts.map +1 -1
  99. package/esm/components/data-grid/footer.js +8 -13
  100. package/esm/components/data-grid/footer.js.map +1 -1
  101. package/esm/components/data-grid/footer.spec.js +38 -27
  102. package/esm/components/data-grid/footer.spec.js.map +1 -1
  103. package/esm/components/data-grid/header.d.ts +6 -6
  104. package/esm/components/data-grid/header.d.ts.map +1 -1
  105. package/esm/components/data-grid/header.js +16 -17
  106. package/esm/components/data-grid/header.js.map +1 -1
  107. package/esm/components/data-grid/header.spec.js +66 -60
  108. package/esm/components/data-grid/header.spec.js.map +1 -1
  109. package/esm/components/data-grid/selection-cell.js +1 -1
  110. package/esm/components/data-grid/selection-cell.js.map +1 -1
  111. package/esm/components/dialog.js +1 -1
  112. package/esm/components/dialog.js.map +1 -1
  113. package/esm/components/divider.js +1 -1
  114. package/esm/components/divider.js.map +1 -1
  115. package/esm/components/drawer/drawer-toggle-button.js +1 -1
  116. package/esm/components/drawer/drawer-toggle-button.js.map +1 -1
  117. package/esm/components/drawer/index.js +1 -1
  118. package/esm/components/drawer/index.js.map +1 -1
  119. package/esm/components/dropdown.js +1 -1
  120. package/esm/components/dropdown.js.map +1 -1
  121. package/esm/components/fab.js +1 -1
  122. package/esm/components/fab.js.map +1 -1
  123. package/esm/components/form.js +1 -1
  124. package/esm/components/form.js.map +1 -1
  125. package/esm/components/grid.js +1 -1
  126. package/esm/components/grid.js.map +1 -1
  127. package/esm/components/icons/icon.js +1 -1
  128. package/esm/components/icons/icon.js.map +1 -1
  129. package/esm/components/image.js +2 -2
  130. package/esm/components/image.js.map +1 -1
  131. package/esm/components/inputs/autocomplete.js +1 -1
  132. package/esm/components/inputs/autocomplete.js.map +1 -1
  133. package/esm/components/inputs/checkbox.js +1 -1
  134. package/esm/components/inputs/checkbox.js.map +1 -1
  135. package/esm/components/inputs/checkbox.spec.js +1 -1
  136. package/esm/components/inputs/checkbox.spec.js.map +1 -1
  137. package/esm/components/inputs/input-number.js +1 -1
  138. package/esm/components/inputs/input-number.js.map +1 -1
  139. package/esm/components/inputs/input-number.spec.js +1 -1
  140. package/esm/components/inputs/input-number.spec.js.map +1 -1
  141. package/esm/components/inputs/input.js +1 -1
  142. package/esm/components/inputs/input.js.map +1 -1
  143. package/esm/components/inputs/input.spec.js +1 -1
  144. package/esm/components/inputs/input.spec.js.map +1 -1
  145. package/esm/components/inputs/radio-group.js +1 -1
  146. package/esm/components/inputs/radio-group.js.map +1 -1
  147. package/esm/components/inputs/radio-group.spec.js +1 -1
  148. package/esm/components/inputs/radio-group.spec.js.map +1 -1
  149. package/esm/components/inputs/radio.js +1 -1
  150. package/esm/components/inputs/radio.js.map +1 -1
  151. package/esm/components/inputs/radio.spec.js +1 -1
  152. package/esm/components/inputs/radio.spec.js.map +1 -1
  153. package/esm/components/inputs/select.js +1 -1
  154. package/esm/components/inputs/select.js.map +1 -1
  155. package/esm/components/inputs/slider.js +1 -1
  156. package/esm/components/inputs/slider.js.map +1 -1
  157. package/esm/components/inputs/switch.js +1 -1
  158. package/esm/components/inputs/switch.js.map +1 -1
  159. package/esm/components/inputs/switch.spec.js +1 -1
  160. package/esm/components/inputs/switch.spec.js.map +1 -1
  161. package/esm/components/inputs/text-area.js +1 -1
  162. package/esm/components/inputs/text-area.js.map +1 -1
  163. package/esm/components/inputs/text-area.spec.js +1 -1
  164. package/esm/components/inputs/text-area.spec.js.map +1 -1
  165. package/esm/components/linear-progress.d.ts +2 -4
  166. package/esm/components/linear-progress.d.ts.map +1 -1
  167. package/esm/components/linear-progress.js +3 -6
  168. package/esm/components/linear-progress.js.map +1 -1
  169. package/esm/components/linear-progress.spec.js +21 -18
  170. package/esm/components/linear-progress.spec.js.map +1 -1
  171. package/esm/components/list/list-item.js +1 -1
  172. package/esm/components/list/list-item.js.map +1 -1
  173. package/esm/components/list/list.js +1 -1
  174. package/esm/components/list/list.js.map +1 -1
  175. package/esm/components/loader.js +1 -1
  176. package/esm/components/loader.js.map +1 -1
  177. package/esm/components/loader.spec.js +1 -1
  178. package/esm/components/loader.spec.js.map +1 -1
  179. package/esm/components/markdown/markdown-display.js +1 -1
  180. package/esm/components/markdown/markdown-display.js.map +1 -1
  181. package/esm/components/markdown/markdown-display.spec.js +1 -1
  182. package/esm/components/markdown/markdown-display.spec.js.map +1 -1
  183. package/esm/components/markdown/markdown-editor.js +1 -1
  184. package/esm/components/markdown/markdown-editor.js.map +1 -1
  185. package/esm/components/markdown/markdown-editor.spec.js +1 -1
  186. package/esm/components/markdown/markdown-editor.spec.js.map +1 -1
  187. package/esm/components/markdown/markdown-input.js +1 -1
  188. package/esm/components/markdown/markdown-input.js.map +1 -1
  189. package/esm/components/markdown/markdown-input.spec.js +1 -1
  190. package/esm/components/markdown/markdown-input.spec.js.map +1 -1
  191. package/esm/components/menu/menu.js +1 -1
  192. package/esm/components/menu/menu.js.map +1 -1
  193. package/esm/components/modal.js +1 -1
  194. package/esm/components/modal.js.map +1 -1
  195. package/esm/components/modal.spec.js +3 -3
  196. package/esm/components/modal.spec.js.map +1 -1
  197. package/esm/components/noty-list.js +2 -2
  198. package/esm/components/noty-list.js.map +1 -1
  199. package/esm/components/page-container/index.d.ts.map +1 -1
  200. package/esm/components/page-container/index.js +2 -2
  201. package/esm/components/page-container/index.js.map +1 -1
  202. package/esm/components/page-container/index.spec.js +5 -4
  203. package/esm/components/page-container/index.spec.js.map +1 -1
  204. package/esm/components/page-container/page-header.js +1 -1
  205. package/esm/components/page-container/page-header.js.map +1 -1
  206. package/esm/components/page-layout/index.d.ts +6 -0
  207. package/esm/components/page-layout/index.d.ts.map +1 -1
  208. package/esm/components/page-layout/index.js +29 -14
  209. package/esm/components/page-layout/index.js.map +1 -1
  210. package/esm/components/page-layout/index.spec.js +119 -0
  211. package/esm/components/page-layout/index.spec.js.map +1 -1
  212. package/esm/components/pagination.js +1 -1
  213. package/esm/components/pagination.js.map +1 -1
  214. package/esm/components/paper.js +1 -1
  215. package/esm/components/paper.js.map +1 -1
  216. package/esm/components/rating.js +1 -1
  217. package/esm/components/rating.js.map +1 -1
  218. package/esm/components/rating.spec.js +1 -1
  219. package/esm/components/rating.spec.js.map +1 -1
  220. package/esm/components/result.js +1 -1
  221. package/esm/components/result.js.map +1 -1
  222. package/esm/components/skeleton.js +1 -1
  223. package/esm/components/skeleton.js.map +1 -1
  224. package/esm/components/suggest/index.js +1 -1
  225. package/esm/components/suggest/index.js.map +1 -1
  226. package/esm/components/suggest/index.spec.js +1 -1
  227. package/esm/components/suggest/index.spec.js.map +1 -1
  228. package/esm/components/suggest/suggest-input.js +1 -1
  229. package/esm/components/suggest/suggest-input.js.map +1 -1
  230. package/esm/components/suggest/suggest-input.spec.js +1 -1
  231. package/esm/components/suggest/suggest-input.spec.js.map +1 -1
  232. package/esm/components/suggest/suggestion-list.js +1 -1
  233. package/esm/components/suggest/suggestion-list.js.map +1 -1
  234. package/esm/components/suggest/suggestion-list.spec.js +1 -1
  235. package/esm/components/suggest/suggestion-list.spec.js.map +1 -1
  236. package/esm/components/tabs.js +2 -2
  237. package/esm/components/tabs.js.map +1 -1
  238. package/esm/components/timeline.js +2 -2
  239. package/esm/components/timeline.js.map +1 -1
  240. package/esm/components/tooltip.js +1 -1
  241. package/esm/components/tooltip.js.map +1 -1
  242. package/esm/components/tree/tree-item.js +1 -1
  243. package/esm/components/tree/tree-item.js.map +1 -1
  244. package/esm/components/tree/tree.js +1 -1
  245. package/esm/components/tree/tree.js.map +1 -1
  246. package/esm/components/typography.js +1 -1
  247. package/esm/components/typography.js.map +1 -1
  248. package/esm/components/wizard/index.js +1 -1
  249. package/esm/components/wizard/index.js.map +1 -1
  250. package/esm/components/wizard/index.spec.js +3 -3
  251. package/esm/components/wizard/index.spec.js.map +1 -1
  252. package/package.json +3 -3
  253. package/src/components/accordion/accordion-item.tsx +1 -1
  254. package/src/components/accordion/accordion.tsx +1 -1
  255. package/src/components/alert.tsx +1 -1
  256. package/src/components/app-bar-link.tsx +1 -1
  257. package/src/components/app-bar.tsx +1 -1
  258. package/src/components/avatar.tsx +1 -1
  259. package/src/components/badge.tsx +1 -1
  260. package/src/components/breadcrumb.spec.tsx +3 -3
  261. package/src/components/breadcrumb.tsx +1 -1
  262. package/src/components/button-group.tsx +4 -4
  263. package/src/components/button.spec.tsx +1 -1
  264. package/src/components/button.tsx +1 -1
  265. package/src/components/cache-view.spec.tsx +2 -2
  266. package/src/components/cache-view.tsx +3 -3
  267. package/src/components/card.tsx +5 -5
  268. package/src/components/carousel.tsx +1 -1
  269. package/src/components/chip.tsx +1 -1
  270. package/src/components/circular-progress.spec.tsx +20 -14
  271. package/src/components/circular-progress.tsx +5 -11
  272. package/src/components/command-palette/command-palette-input.tsx +1 -1
  273. package/src/components/command-palette/command-palette-suggestion-list.spec.tsx +1 -1
  274. package/src/components/command-palette/command-palette-suggestion-list.tsx +1 -1
  275. package/src/components/command-palette/index.tsx +1 -1
  276. package/src/components/context-menu/context-menu-item.tsx +1 -1
  277. package/src/components/context-menu/context-menu.tsx +1 -1
  278. package/src/components/data-grid/body.tsx +1 -1
  279. package/src/components/data-grid/data-grid-row.tsx +1 -1
  280. package/src/components/data-grid/data-grid.spec.tsx +62 -36
  281. package/src/components/data-grid/data-grid.tsx +14 -8
  282. package/src/components/data-grid/filters/boolean-filter.spec.tsx +29 -18
  283. package/src/components/data-grid/filters/boolean-filter.tsx +6 -6
  284. package/src/components/data-grid/filters/date-filter.spec.tsx +35 -22
  285. package/src/components/data-grid/filters/date-filter.tsx +8 -8
  286. package/src/components/data-grid/filters/enum-filter.spec.tsx +35 -20
  287. package/src/components/data-grid/filters/enum-filter.tsx +7 -7
  288. package/src/components/data-grid/filters/filter-dropdown.tsx +1 -1
  289. package/src/components/data-grid/filters/number-filter.spec.tsx +32 -22
  290. package/src/components/data-grid/filters/number-filter.tsx +7 -7
  291. package/src/components/data-grid/filters/string-filter.spec.tsx +32 -20
  292. package/src/components/data-grid/filters/string-filter.tsx +7 -7
  293. package/src/components/data-grid/footer.spec.tsx +79 -31
  294. package/src/components/data-grid/footer.tsx +10 -15
  295. package/src/components/data-grid/header.spec.tsx +152 -68
  296. package/src/components/data-grid/header.tsx +64 -27
  297. package/src/components/data-grid/selection-cell.tsx +1 -1
  298. package/src/components/dialog.tsx +1 -1
  299. package/src/components/divider.tsx +1 -1
  300. package/src/components/drawer/drawer-toggle-button.tsx +1 -1
  301. package/src/components/drawer/index.tsx +1 -1
  302. package/src/components/dropdown.tsx +1 -1
  303. package/src/components/fab.tsx +1 -1
  304. package/src/components/form.tsx +1 -1
  305. package/src/components/grid.tsx +1 -1
  306. package/src/components/icons/icon.tsx +1 -1
  307. package/src/components/image.tsx +2 -2
  308. package/src/components/inputs/autocomplete.tsx +1 -1
  309. package/src/components/inputs/checkbox.spec.tsx +1 -1
  310. package/src/components/inputs/checkbox.tsx +1 -1
  311. package/src/components/inputs/input-number.spec.tsx +1 -1
  312. package/src/components/inputs/input-number.tsx +1 -1
  313. package/src/components/inputs/input.spec.tsx +1 -1
  314. package/src/components/inputs/input.tsx +1 -1
  315. package/src/components/inputs/radio-group.spec.tsx +1 -1
  316. package/src/components/inputs/radio-group.tsx +1 -1
  317. package/src/components/inputs/radio.spec.tsx +1 -1
  318. package/src/components/inputs/radio.tsx +1 -1
  319. package/src/components/inputs/select.tsx +1 -1
  320. package/src/components/inputs/slider.tsx +1 -1
  321. package/src/components/inputs/switch.spec.tsx +1 -1
  322. package/src/components/inputs/switch.tsx +1 -1
  323. package/src/components/inputs/text-area.spec.tsx +1 -1
  324. package/src/components/inputs/text-area.tsx +1 -1
  325. package/src/components/linear-progress.spec.tsx +22 -18
  326. package/src/components/linear-progress.tsx +5 -11
  327. package/src/components/list/list-item.tsx +1 -1
  328. package/src/components/list/list.tsx +1 -1
  329. package/src/components/loader.spec.tsx +1 -1
  330. package/src/components/loader.tsx +1 -1
  331. package/src/components/markdown/markdown-display.spec.tsx +1 -1
  332. package/src/components/markdown/markdown-display.tsx +1 -1
  333. package/src/components/markdown/markdown-editor.spec.tsx +1 -1
  334. package/src/components/markdown/markdown-editor.tsx +1 -1
  335. package/src/components/markdown/markdown-input.spec.tsx +1 -1
  336. package/src/components/markdown/markdown-input.tsx +1 -1
  337. package/src/components/menu/menu.tsx +1 -1
  338. package/src/components/modal.spec.tsx +3 -3
  339. package/src/components/modal.tsx +1 -1
  340. package/src/components/noty-list.tsx +2 -2
  341. package/src/components/page-container/index.spec.tsx +5 -4
  342. package/src/components/page-container/index.tsx +8 -2
  343. package/src/components/page-container/page-header.tsx +1 -1
  344. package/src/components/page-layout/index.spec.tsx +173 -0
  345. package/src/components/page-layout/index.tsx +36 -14
  346. package/src/components/pagination.tsx +1 -1
  347. package/src/components/paper.tsx +1 -1
  348. package/src/components/rating.spec.tsx +1 -1
  349. package/src/components/rating.tsx +1 -1
  350. package/src/components/result.tsx +1 -1
  351. package/src/components/skeleton.tsx +1 -1
  352. package/src/components/suggest/index.spec.tsx +1 -1
  353. package/src/components/suggest/index.tsx +1 -1
  354. package/src/components/suggest/suggest-input.spec.tsx +1 -1
  355. package/src/components/suggest/suggest-input.tsx +1 -1
  356. package/src/components/suggest/suggestion-list.spec.tsx +1 -1
  357. package/src/components/suggest/suggestion-list.tsx +1 -1
  358. package/src/components/tabs.tsx +2 -2
  359. package/src/components/timeline.tsx +2 -2
  360. package/src/components/tooltip.tsx +1 -1
  361. package/src/components/tree/tree-item.tsx +1 -1
  362. package/src/components/tree/tree.tsx +1 -1
  363. package/src/components/typography.tsx +1 -1
  364. package/src/components/wizard/index.spec.tsx +3 -3
  365. package/src/components/wizard/index.tsx +1 -1
@@ -2,6 +2,7 @@ import { Injector } from '@furystack/inject'
2
2
  import { createComponent, flushUpdates, initializeShadeRoot } from '@furystack/shades'
3
3
  import { usingAsync } from '@furystack/utils'
4
4
  import { afterEach, beforeEach, describe, expect, it } from 'vitest'
5
+ import { cssVariableTheme } from '../../services/css-variable-theme.js'
5
6
  import { PageContainer } from './index.js'
6
7
 
7
8
  describe('PageContainer component', () => {
@@ -76,7 +77,7 @@ describe('PageContainer component', () => {
76
77
  })
77
78
 
78
79
  describe('default styling', () => {
79
- it('should apply default padding of 24px', async () => {
80
+ it('should apply default padding from theme spacing', async () => {
80
81
  await usingAsync(new Injector(), async (injector) => {
81
82
  const rootElement = document.getElementById('root') as HTMLDivElement
82
83
 
@@ -88,11 +89,11 @@ describe('PageContainer component', () => {
88
89
 
89
90
  await flushUpdates()
90
91
  const element = document.querySelector('div[is="shade-page-container"]') as HTMLDivElement
91
- expect(element.style.padding).toBe('24px')
92
+ expect(element.style.padding).toBe(cssVariableTheme.spacing.md)
92
93
  })
93
94
  })
94
95
 
95
- it('should apply default gap of 16px', async () => {
96
+ it('should apply default gap from theme spacing', async () => {
96
97
  await usingAsync(new Injector(), async (injector) => {
97
98
  const rootElement = document.getElementById('root') as HTMLDivElement
98
99
 
@@ -104,7 +105,7 @@ describe('PageContainer component', () => {
104
105
 
105
106
  await flushUpdates()
106
107
  const element = document.querySelector('div[is="shade-page-container"]') as HTMLDivElement
107
- expect(element.style.gap).toBe('16px')
108
+ expect(element.style.gap).toBe(cssVariableTheme.spacing.md)
108
109
  })
109
110
  })
110
111
 
@@ -50,7 +50,7 @@ export type PageContainerProps = {
50
50
  * ```
51
51
  */
52
52
  export const PageContainer = Shade<PageContainerProps>({
53
- shadowDomName: 'shade-page-container',
53
+ customElementName: 'shade-page-container',
54
54
  elementBase: HTMLDivElement,
55
55
  elementBaseName: 'div',
56
56
  css: {
@@ -62,7 +62,13 @@ export const PageContainer = Shade<PageContainerProps>({
62
62
  position: 'relative',
63
63
  },
64
64
  render: ({ props, children, useHostProps }) => {
65
- const { maxWidth = '100%', centered = false, padding = '24px', gap = '16px', fullHeight = true } = props
65
+ const {
66
+ maxWidth = '100%',
67
+ centered = false,
68
+ padding = cssVariableTheme.spacing.md,
69
+ gap = cssVariableTheme.spacing.md,
70
+ fullHeight = true,
71
+ } = props
66
72
 
67
73
  const hostStyle: Record<string, string> = {
68
74
  maxWidth,
@@ -56,7 +56,7 @@ export type PageHeaderProps = {
56
56
  * ```
57
57
  */
58
58
  export const PageHeader = Shade<PageHeaderProps>({
59
- shadowDomName: 'shade-page-header',
59
+ customElementName: 'shade-page-header',
60
60
  css: {
61
61
  display: 'block',
62
62
  fontFamily: cssVariableTheme.typography.fontFamily,
@@ -879,4 +879,177 @@ describe('PageLayout component', () => {
879
879
  })
880
880
  })
881
881
  })
882
+
883
+ describe('Contained Mode', () => {
884
+ it('should set data-contained attribute on host when contained is true', async () => {
885
+ await usingAsync(new Injector(), async (injector) => {
886
+ const rootElement = document.getElementById('root') as HTMLDivElement
887
+
888
+ initializeShadeRoot({
889
+ injector,
890
+ rootElement,
891
+ jsxElement: (
892
+ <PageLayout contained>
893
+ <div>Content</div>
894
+ </PageLayout>
895
+ ),
896
+ })
897
+
898
+ await flushUpdates()
899
+ const pageLayout = document.querySelector('shade-page-layout')
900
+ expect(pageLayout?.hasAttribute('data-contained')).toBe(true)
901
+ })
902
+ })
903
+
904
+ it('should not set data-contained attribute when contained is not set', async () => {
905
+ await usingAsync(new Injector(), async (injector) => {
906
+ const rootElement = document.getElementById('root') as HTMLDivElement
907
+
908
+ initializeShadeRoot({
909
+ injector,
910
+ rootElement,
911
+ jsxElement: (
912
+ <PageLayout>
913
+ <div>Content</div>
914
+ </PageLayout>
915
+ ),
916
+ })
917
+
918
+ await flushUpdates()
919
+ const pageLayout = document.querySelector('shade-page-layout')
920
+ expect(pageLayout?.hasAttribute('data-contained')).toBe(false)
921
+ })
922
+ })
923
+
924
+ it('should have absolute positioning when contained', async () => {
925
+ await usingAsync(new Injector(), async (injector) => {
926
+ const rootElement = document.getElementById('root') as HTMLDivElement
927
+
928
+ initializeShadeRoot({
929
+ injector,
930
+ rootElement,
931
+ jsxElement: (
932
+ <PageLayout contained>
933
+ <div>Content</div>
934
+ </PageLayout>
935
+ ),
936
+ })
937
+
938
+ await flushUpdates()
939
+ const pageLayout = document.querySelector('shade-page-layout') as HTMLElement
940
+ const computedStyle = window.getComputedStyle(pageLayout)
941
+ expect(computedStyle.position).toBe('absolute')
942
+ })
943
+ })
944
+
945
+ it('should work with AppBar and drawers in contained mode', async () => {
946
+ await usingAsync(new Injector(), async (injector) => {
947
+ const rootElement = document.getElementById('root') as HTMLDivElement
948
+
949
+ initializeShadeRoot({
950
+ injector,
951
+ rootElement,
952
+ jsxElement: (
953
+ <PageLayout
954
+ contained
955
+ appBar={{
956
+ variant: 'permanent',
957
+ component: <div>AppBar</div>,
958
+ }}
959
+ drawer={{
960
+ left: {
961
+ variant: 'collapsible',
962
+ component: <div>Left Drawer</div>,
963
+ },
964
+ }}
965
+ >
966
+ <div>Content</div>
967
+ </PageLayout>
968
+ ),
969
+ })
970
+
971
+ await flushUpdates()
972
+
973
+ const pageLayout = document.querySelector('shade-page-layout') as HTMLElement & { injector: Injector }
974
+ expect(pageLayout.hasAttribute('data-contained')).toBe(true)
975
+ expect(document.body.innerHTML).toContain('page-layout-appbar')
976
+ expect(document.body.innerHTML).toContain('page-layout-drawer-left')
977
+ expect(document.body.innerHTML).toContain('page-layout-content')
978
+
979
+ const layoutService = pageLayout.injector.getInstance(LayoutService)
980
+ expect(layoutService.drawerState.getValue().left?.open).toBe(true)
981
+ })
982
+ })
983
+
984
+ it('should support drawer toggle in contained mode', async () => {
985
+ await usingAsync(new Injector(), async (injector) => {
986
+ const rootElement = document.getElementById('root') as HTMLDivElement
987
+
988
+ initializeShadeRoot({
989
+ injector,
990
+ rootElement,
991
+ jsxElement: (
992
+ <PageLayout
993
+ contained
994
+ drawer={{
995
+ left: {
996
+ variant: 'collapsible',
997
+ component: <div>Left Drawer</div>,
998
+ },
999
+ }}
1000
+ >
1001
+ <div>Content</div>
1002
+ </PageLayout>
1003
+ ),
1004
+ })
1005
+
1006
+ await flushUpdates()
1007
+
1008
+ const pageLayout = document.querySelector('shade-page-layout') as HTMLElement & { injector: Injector }
1009
+ const layoutService = pageLayout.injector.getInstance(LayoutService)
1010
+
1011
+ expect(pageLayout.hasAttribute('data-drawer-left-closed')).toBe(false)
1012
+
1013
+ layoutService.setDrawerOpen('left', false)
1014
+ await flushUpdates()
1015
+
1016
+ expect(pageLayout.hasAttribute('data-drawer-left-closed')).toBe(true)
1017
+ })
1018
+ })
1019
+
1020
+ it('should support temporary drawer backdrop click in contained mode', async () => {
1021
+ await usingAsync(new Injector(), async (injector) => {
1022
+ const rootElement = document.getElementById('root') as HTMLDivElement
1023
+
1024
+ initializeShadeRoot({
1025
+ injector,
1026
+ rootElement,
1027
+ jsxElement: (
1028
+ <PageLayout
1029
+ contained
1030
+ drawer={{
1031
+ left: {
1032
+ variant: 'temporary',
1033
+ defaultOpen: true,
1034
+ component: <div>Temporary Drawer</div>,
1035
+ },
1036
+ }}
1037
+ >
1038
+ <div>Content</div>
1039
+ </PageLayout>
1040
+ ),
1041
+ })
1042
+
1043
+ await flushUpdates()
1044
+ const pageLayout = document.querySelector('shade-page-layout')
1045
+ expect(pageLayout?.hasAttribute('data-backdrop-visible')).toBe(true)
1046
+
1047
+ const backdrop = document.querySelector('.page-layout-drawer-backdrop') as HTMLElement
1048
+ backdrop.click()
1049
+ await flushUpdates()
1050
+
1051
+ expect(pageLayout?.hasAttribute('data-drawer-left-closed')).toBe(true)
1052
+ })
1053
+ })
1054
+ })
882
1055
  })
@@ -46,6 +46,12 @@ export type PageLayoutProps = {
46
46
  topGap?: string
47
47
  /** Gap between the drawers and the content area (CSS value). Default: '0px' */
48
48
  sideGap?: string
49
+ /**
50
+ * When true, uses `position: absolute` instead of `position: fixed` so the
51
+ * layout fills its nearest positioned ancestor rather than the viewport.
52
+ * This enables nesting PageLayout instances (e.g. in a showcase grid).
53
+ */
54
+ contained?: boolean
49
55
  }
50
56
 
51
57
  const DEFAULT_APPBAR_HEIGHT = '48px'
@@ -86,7 +92,7 @@ const DEFAULT_DRAWER_WIDTH = '240px'
86
92
  * ```
87
93
  */
88
94
  export const PageLayout = Shade<PageLayoutProps>({
89
- shadowDomName: 'shade-page-layout',
95
+ customElementName: 'shade-page-layout',
90
96
  css: {
91
97
  display: 'block',
92
98
  fontFamily: cssVariableTheme.typography.fontFamily,
@@ -102,8 +108,8 @@ export const PageLayout = Shade<PageLayoutProps>({
102
108
  margin: '0',
103
109
  },
104
110
 
105
- // AppBar container
106
- '& .page-layout-appbar': {
111
+ // AppBar container (> * > scopes to the wrapper div to prevent bleeding into nested PageLayouts)
112
+ '& > * > .page-layout-appbar': {
107
113
  position: 'fixed',
108
114
  top: '0',
109
115
  left: '0',
@@ -114,18 +120,18 @@ export const PageLayout = Shade<PageLayoutProps>({
114
120
  },
115
121
 
116
122
  // Auto-hide AppBar styles (controlled via host data attributes)
117
- '&[data-appbar-auto-hide] .page-layout-appbar': {
123
+ '&[data-appbar-auto-hide] > * > .page-layout-appbar': {
118
124
  top: 'calc(-1 * var(--layout-appbar-height, 48px))',
119
125
  },
120
- '&[data-appbar-auto-hide] .page-layout-appbar:hover': {
126
+ '&[data-appbar-auto-hide] > * > .page-layout-appbar:hover': {
121
127
  top: '0',
122
128
  },
123
- '&[data-appbar-auto-hide][data-appbar-visible] .page-layout-appbar': {
129
+ '&[data-appbar-auto-hide][data-appbar-visible] > * > .page-layout-appbar': {
124
130
  top: '0',
125
131
  },
126
132
 
127
133
  // Drawer containers - use CSS transitions
128
- '& .page-layout-drawer': {
134
+ '& > * > .page-layout-drawer': {
129
135
  position: 'fixed',
130
136
  top: 'var(--layout-appbar-height, 48px)',
131
137
  bottom: '0',
@@ -135,13 +141,13 @@ export const PageLayout = Shade<PageLayoutProps>({
135
141
  backgroundImage: cssVariableTheme.background.paperImage,
136
142
  transition: `transform ${cssVariableTheme.transitions.duration.slow} ${cssVariableTheme.transitions.easing.easeInOut}`,
137
143
  },
138
- '& .page-layout-drawer-left': {
144
+ '& > * > .page-layout-drawer-left': {
139
145
  left: '0',
140
146
  width: 'var(--layout-drawer-left-configured-width, 240px)',
141
147
  borderRight: `1px solid ${cssVariableTheme.divider}`,
142
148
  transform: 'translateX(0)',
143
149
  },
144
- '& .page-layout-drawer-right': {
150
+ '& > * > .page-layout-drawer-right': {
145
151
  right: '0',
146
152
  width: 'var(--layout-drawer-right-configured-width, 240px)',
147
153
  borderLeft: `1px solid ${cssVariableTheme.divider}`,
@@ -149,17 +155,17 @@ export const PageLayout = Shade<PageLayoutProps>({
149
155
  },
150
156
 
151
157
  // Drawer closed states (controlled via host data attributes)
152
- '&[data-drawer-left-closed] .page-layout-drawer-left': {
158
+ '&[data-drawer-left-closed] > * > .page-layout-drawer-left': {
153
159
  transform: 'translateX(-100%)',
154
160
  pointerEvents: 'none',
155
161
  },
156
- '&[data-drawer-right-closed] .page-layout-drawer-right': {
162
+ '&[data-drawer-right-closed] > * > .page-layout-drawer-right': {
157
163
  transform: 'translateX(100%)',
158
164
  pointerEvents: 'none',
159
165
  },
160
166
 
161
167
  // Temporary drawer backdrop
162
- '& .page-layout-drawer-backdrop': {
168
+ '& > * > .page-layout-drawer-backdrop': {
163
169
  position: 'fixed',
164
170
  top: '0',
165
171
  left: '0',
@@ -171,13 +177,28 @@ export const PageLayout = Shade<PageLayoutProps>({
171
177
  pointerEvents: 'none',
172
178
  transition: `opacity ${cssVariableTheme.transitions.duration.slow} ${cssVariableTheme.transitions.easing.easeInOut}`,
173
179
  },
174
- '&[data-backdrop-visible] .page-layout-drawer-backdrop': {
180
+ '&[data-backdrop-visible] > * > .page-layout-drawer-backdrop': {
175
181
  opacity: '1',
176
182
  pointerEvents: 'auto',
177
183
  },
178
184
 
185
+ // Contained mode - use absolute positioning instead of fixed so the layout
186
+ // fills its nearest positioned ancestor rather than the viewport
187
+ '&[data-contained]': {
188
+ position: 'absolute',
189
+ },
190
+ '&[data-contained] > * > .page-layout-appbar': {
191
+ position: 'absolute',
192
+ },
193
+ '&[data-contained] > * > .page-layout-drawer': {
194
+ position: 'absolute',
195
+ },
196
+ '&[data-contained] > * > .page-layout-drawer-backdrop': {
197
+ position: 'absolute',
198
+ },
199
+
179
200
  // Content area - uses CSS variables for positioning
180
- '& .page-layout-content': {
201
+ '& > * > .page-layout-content': {
181
202
  position: 'absolute',
182
203
  top: '0',
183
204
  bottom: '0',
@@ -327,6 +348,7 @@ export const PageLayout = Shade<PageLayoutProps>({
327
348
  const rightContentMargin = layoutService.getContentMarginForPosition('right')
328
349
 
329
350
  useHostProps({
351
+ ...(props.contained ? { 'data-contained': '' } : {}),
330
352
  ...(!isLeftOpen ? { 'data-drawer-left-closed': '' } : {}),
331
353
  ...(!isRightOpen ? { 'data-drawer-right-closed': '' } : {}),
332
354
  ...(props.appBar?.variant === 'auto-hide' ? { 'data-appbar-auto-hide': '' } : {}),
@@ -90,7 +90,7 @@ const defaultColors = {
90
90
  }
91
91
 
92
92
  export const Pagination = Shade<PaginationProps>({
93
- shadowDomName: 'shade-pagination',
93
+ customElementName: 'shade-pagination',
94
94
  css: {
95
95
  display: 'inline-flex',
96
96
  alignItems: 'center',
@@ -2,7 +2,7 @@ import { Shade, createComponent } from '@furystack/shades'
2
2
  import { cssVariableTheme } from '../services/css-variable-theme.js'
3
3
 
4
4
  export const Paper = Shade<{ elevation?: 0 | 1 | 2 | 3 }>({
5
- shadowDomName: 'shade-paper',
5
+ customElementName: 'shade-paper',
6
6
  elementBase: HTMLDivElement,
7
7
  elementBaseName: 'div',
8
8
  css: {
@@ -15,7 +15,7 @@ describe('Rating', () => {
15
15
  vi.restoreAllMocks()
16
16
  })
17
17
 
18
- it('should render with shadow DOM', async () => {
18
+ it('should render as custom element', async () => {
19
19
  await usingAsync(new Injector(), async (injector) => {
20
20
  const rootElement = document.getElementById('root') as HTMLDivElement
21
21
 
@@ -62,7 +62,7 @@ export type RatingProps = {
62
62
  * keyboard navigation, and theme integration.
63
63
  */
64
64
  export const Rating = Shade<RatingProps>({
65
- shadowDomName: 'shade-rating',
65
+ customElementName: 'shade-rating',
66
66
  css: {
67
67
  display: 'inline-flex',
68
68
  fontFamily: cssVariableTheme.typography.fontFamily,
@@ -68,7 +68,7 @@ const defaultTitles: Record<ResultStatus, string> = {
68
68
  * Supports success, error, warning, info statuses and common HTTP error codes (403, 404, 500).
69
69
  */
70
70
  export const Result = Shade<ResultProps>({
71
- shadowDomName: 'shade-result',
71
+ customElementName: 'shade-result',
72
72
  css: {
73
73
  display: 'flex',
74
74
  flexDirection: 'column',
@@ -10,7 +10,7 @@ export type SkeletonProps = {
10
10
  }
11
11
 
12
12
  export const Skeleton = Shade<SkeletonProps>({
13
- shadowDomName: 'shade-skeleton',
13
+ customElementName: 'shade-skeleton',
14
14
  render: ({ props, useRef }) => {
15
15
  const wrapperRef = useRef<HTMLDivElement>('wrapper')
16
16
  const { delay = 1500 } = props
@@ -68,7 +68,7 @@ describe('Suggest', () => {
68
68
  })
69
69
 
70
70
  describe('rendering', () => {
71
- it('should render with shadow DOM', async () => {
71
+ it('should render as custom element', async () => {
72
72
  await usingAsync(new Injector(), async (injector) => {
73
73
  const rootElement = document.getElementById('root') as HTMLDivElement
74
74
  const onSelectSuggestion = vi.fn()
@@ -41,7 +41,7 @@ const isSyncProps = (props: SuggestProps<unknown>): props is SuggestSyncProps =>
41
41
  export const Suggest: <T>(props: SuggestProps<T>, children: ChildrenList) => JSX.Element<any> = Shade<
42
42
  SuggestProps<any>
43
43
  >({
44
- shadowDomName: 'shade-suggest',
44
+ customElementName: 'shade-suggest',
45
45
  css: {
46
46
  ...searchableInputStyles,
47
47
  fontFamily: cssVariableTheme.typography.fontFamily,
@@ -47,7 +47,7 @@ describe('SuggestInput', () => {
47
47
  return new SuggestManager<TestEntry>(getEntries, getSuggestionEntry)
48
48
  }
49
49
 
50
- it('should render with shadow DOM', async () => {
50
+ it('should render as custom element', async () => {
51
51
  await usingAsync(new Injector(), async (injector) => {
52
52
  const rootElement = document.getElementById('root') as HTMLDivElement
53
53
  const manager = createManager()
@@ -3,7 +3,7 @@ import { cssVariableTheme } from '../../services/css-variable-theme.js'
3
3
  import type { SuggestManager } from './suggest-manager.js'
4
4
 
5
5
  export const SuggestInput = Shade<{ manager: SuggestManager<any> }>({
6
- shadowDomName: 'shades-suggest-input',
6
+ customElementName: 'shades-suggest-input',
7
7
  css: {
8
8
  width: '100%',
9
9
  fontFamily: cssVariableTheme.typography.fontFamily,
@@ -55,7 +55,7 @@ describe('SuggestionList', () => {
55
55
  return new SuggestManager<TestEntry>(getEntries, getSuggestionEntry)
56
56
  }
57
57
 
58
- it('should render with shadow DOM', async () => {
58
+ it('should render as custom element', async () => {
59
59
  await usingAsync(new Injector(), async (injector) => {
60
60
  const rootElement = document.getElementById('root') as HTMLDivElement
61
61
  const manager = createManager()
@@ -6,7 +6,7 @@ import type { SuggestManager } from './suggest-manager.js'
6
6
 
7
7
  export const SuggestionList: <T>(props: { manager: SuggestManager<T> }, children: ChildrenList) => JSX.Element<any> =
8
8
  Shade<{ manager: SuggestManager<any> }>({
9
- shadowDomName: 'shade-suggest-suggestion-list',
9
+ customElementName: 'shade-suggest-suggestion-list',
10
10
  css: {
11
11
  fontFamily: cssVariableTheme.typography.fontFamily,
12
12
  '& .suggestion-items-container': {
@@ -13,7 +13,7 @@ export type Tab = {
13
13
  }
14
14
 
15
15
  const TabHeader = Shade<{ hash: string }>({
16
- shadowDomName: 'shade-tab-header',
16
+ customElementName: 'shade-tab-header',
17
17
  css: {
18
18
  padding: `${cssVariableTheme.spacing.md} 40px`,
19
19
  cursor: 'pointer',
@@ -74,7 +74,7 @@ export const Tabs = Shade<{
74
74
  onAdd?: () => void
75
75
  viewTransition?: boolean | ViewTransitionConfig
76
76
  }>({
77
- shadowDomName: 'shade-tabs',
77
+ customElementName: 'shade-tabs',
78
78
  css: {
79
79
  fontFamily: cssVariableTheme.typography.fontFamily,
80
80
  width: '100%',
@@ -21,7 +21,7 @@ export type TimelineItemProps = PartialElement<HTMLElement> & {
21
21
  * Renders a dot, a connector tail, and the item's content (children).
22
22
  */
23
23
  export const TimelineItem = Shade<TimelineItemProps>({
24
- shadowDomName: 'shade-timeline-item',
24
+ customElementName: 'shade-timeline-item',
25
25
  css: {
26
26
  display: 'flex',
27
27
  position: 'relative',
@@ -157,7 +157,7 @@ export type TimelineProps = PartialElement<HTMLElement> & {
157
157
  * Supports left, right, and alternate layout modes with optional pending state.
158
158
  */
159
159
  export const Timeline = Shade<TimelineProps>({
160
- shadowDomName: 'shade-timeline',
160
+ customElementName: 'shade-timeline',
161
161
  css: {
162
162
  display: 'flex',
163
163
  flexDirection: 'column',
@@ -23,7 +23,7 @@ export type TooltipProps = {
23
23
  }
24
24
 
25
25
  export const Tooltip = Shade<TooltipProps>({
26
- shadowDomName: 'shade-tooltip',
26
+ customElementName: 'shade-tooltip',
27
27
  css: {
28
28
  position: 'relative',
29
29
  fontFamily: cssVariableTheme.typography.fontFamily,
@@ -20,7 +20,7 @@ const INDENT_PX = 20
20
20
  const EXPAND_ICON_WIDTH = 20
21
21
 
22
22
  export const TreeItem: <T>(props: TreeItemProps<T>, children: ChildrenList) => JSX.Element<any> = Shade({
23
- shadowDomName: 'shade-tree-item',
23
+ customElementName: 'shade-tree-item',
24
24
  css: {
25
25
  display: 'flex',
26
26
  fontFamily: cssVariableTheme.typography.fontFamily,
@@ -24,7 +24,7 @@ export type TreeProps<T> = {
24
24
  } & PartialElement<HTMLDivElement>
25
25
 
26
26
  export const Tree: <T>(props: TreeProps<T>, children: ChildrenList) => JSX.Element<any> = Shade({
27
- shadowDomName: 'shade-tree',
27
+ customElementName: 'shade-tree',
28
28
  css: {
29
29
  display: 'block',
30
30
  fontFamily: cssVariableTheme.typography.fontFamily,
@@ -298,7 +298,7 @@ const shadesByTag = {} as Record<TypographyTag, (props: TypographyProps, childre
298
298
 
299
299
  for (const [tag, elementBase] of tagConfigs) {
300
300
  shadesByTag[tag] = Shade<TypographyProps>({
301
- shadowDomName: `shade-typography-${tag}`,
301
+ customElementName: `shade-typography-${tag}`,
302
302
  elementBase,
303
303
  elementBaseName: tag,
304
304
  css: typographyCss,
@@ -7,7 +7,7 @@ import type { WizardStepProps } from './index.js'
7
7
  import { Wizard } from './index.js'
8
8
 
9
9
  const Step1 = Shade<WizardStepProps>({
10
- shadowDomName: 'wizard-test-step-1',
10
+ customElementName: 'wizard-test-step-1',
11
11
  render: ({ props }) => (
12
12
  <div className="wizard-step" data-step-name="step1">
13
13
  <span className="step-info">
@@ -25,7 +25,7 @@ const Step1 = Shade<WizardStepProps>({
25
25
  })
26
26
 
27
27
  const Step2 = Shade<WizardStepProps>({
28
- shadowDomName: 'wizard-test-step-2',
28
+ customElementName: 'wizard-test-step-2',
29
29
  render: ({ props }) => (
30
30
  <div className="wizard-step" data-step-name="step2">
31
31
  <span className="step-info">
@@ -43,7 +43,7 @@ const Step2 = Shade<WizardStepProps>({
43
43
  })
44
44
 
45
45
  const Step3 = Shade<WizardStepProps>({
46
- shadowDomName: 'wizard-test-step-3',
46
+ customElementName: 'wizard-test-step-3',
47
47
  render: ({ props }) => (
48
48
  <div className="wizard-step" data-step-name="step3">
49
49
  <span className="step-info">
@@ -43,7 +43,7 @@ export interface WizardProps {
43
43
  }
44
44
 
45
45
  export const Wizard = Shade<WizardProps>({
46
- shadowDomName: 'shades-wizard',
46
+ customElementName: 'shades-wizard',
47
47
  css: {
48
48
  fontFamily: cssVariableTheme.typography.fontFamily,
49
49
  '& .wizard-container': {