@adobe/spectrum-wc-core 0.0.0-snapshot.20260922095923

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 (335) hide show
  1. package/README.md +39 -0
  2. package/dist/_virtual/_@oxc-project_runtime@0.124.0/helpers/decorate.js +9 -0
  3. package/dist/components/accordion/Accordion.base.d.ts +59 -0
  4. package/dist/components/accordion/Accordion.base.js +69 -0
  5. package/dist/components/accordion/Accordion.base.js.map +1 -0
  6. package/dist/components/accordion/Accordion.types.d.ts +22 -0
  7. package/dist/components/accordion/Accordion.types.js +21 -0
  8. package/dist/components/accordion/Accordion.types.js.map +1 -0
  9. package/dist/components/accordion/AccordionItem.base.d.ts +96 -0
  10. package/dist/components/accordion/AccordionItem.base.js +93 -0
  11. package/dist/components/accordion/AccordionItem.base.js.map +1 -0
  12. package/dist/components/accordion/index.d.ts +14 -0
  13. package/dist/components/accordion/index.js +4 -0
  14. package/dist/components/action-button/ActionButton.types.d.ts +15 -0
  15. package/dist/components/action-button/ActionButton.types.js +12 -0
  16. package/dist/components/action-button/ActionButton.types.js.map +1 -0
  17. package/dist/components/action-button/index.d.ts +12 -0
  18. package/dist/components/action-button/index.js +2 -0
  19. package/dist/components/action-group/ActionGroup.base.d.ts +108 -0
  20. package/dist/components/action-group/ActionGroup.base.js +53 -0
  21. package/dist/components/action-group/ActionGroup.base.js.map +1 -0
  22. package/dist/components/action-group/ActionGroup.types.d.ts +17 -0
  23. package/dist/components/action-group/ActionGroup.types.js +12 -0
  24. package/dist/components/action-group/ActionGroup.types.js.map +1 -0
  25. package/dist/components/action-group/index.d.ts +13 -0
  26. package/dist/components/action-group/index.js +3 -0
  27. package/dist/components/alert-banner/AlertBanner.base.d.ts +36 -0
  28. package/dist/components/alert-banner/AlertBanner.base.js +57 -0
  29. package/dist/components/alert-banner/AlertBanner.base.js.map +1 -0
  30. package/dist/components/alert-banner/AlertBanner.types.d.ts +13 -0
  31. package/dist/components/alert-banner/AlertBanner.types.js +10 -0
  32. package/dist/components/alert-banner/AlertBanner.types.js.map +1 -0
  33. package/dist/components/alert-banner/index.d.ts +13 -0
  34. package/dist/components/alert-banner/index.js +3 -0
  35. package/dist/components/asset/Asset.base.d.ts +101 -0
  36. package/dist/components/asset/Asset.base.js +130 -0
  37. package/dist/components/asset/Asset.base.js.map +1 -0
  38. package/dist/components/asset/Asset.types.d.ts +31 -0
  39. package/dist/components/asset/Asset.types.js +14 -0
  40. package/dist/components/asset/Asset.types.js.map +1 -0
  41. package/dist/components/asset/index.d.ts +13 -0
  42. package/dist/components/asset/index.js +3 -0
  43. package/dist/components/avatar/Avatar.base.d.ts +53 -0
  44. package/dist/components/avatar/Avatar.base.js +52 -0
  45. package/dist/components/avatar/Avatar.base.js.map +1 -0
  46. package/dist/components/avatar/Avatar.types.d.ts +19 -0
  47. package/dist/components/avatar/Avatar.types.js +24 -0
  48. package/dist/components/avatar/Avatar.types.js.map +1 -0
  49. package/dist/components/avatar/index.d.ts +13 -0
  50. package/dist/components/avatar/index.js +3 -0
  51. package/dist/components/badge/Badge.base.d.ts +114 -0
  52. package/dist/components/badge/Badge.base.js +49 -0
  53. package/dist/components/badge/Badge.base.js.map +1 -0
  54. package/dist/components/badge/Badge.types.d.ts +21 -0
  55. package/dist/components/badge/Badge.types.js +43 -0
  56. package/dist/components/badge/Badge.types.js.map +1 -0
  57. package/dist/components/badge/index.d.ts +13 -0
  58. package/dist/components/badge/index.js +3 -0
  59. package/dist/components/button/Button.base.d.ts +78 -0
  60. package/dist/components/button/Button.base.js +51 -0
  61. package/dist/components/button/Button.base.js.map +1 -0
  62. package/dist/components/button/Button.types.d.ts +19 -0
  63. package/dist/components/button/Button.types.js +16 -0
  64. package/dist/components/button/Button.types.js.map +1 -0
  65. package/dist/components/button/index.d.ts +13 -0
  66. package/dist/components/button/index.js +3 -0
  67. package/dist/components/button-group/ButtonGroup.base.d.ts +89 -0
  68. package/dist/components/button-group/ButtonGroup.base.js +60 -0
  69. package/dist/components/button-group/ButtonGroup.base.js.map +1 -0
  70. package/dist/components/button-group/ButtonGroup.types.d.ts +17 -0
  71. package/dist/components/button-group/ButtonGroup.types.js +15 -0
  72. package/dist/components/button-group/ButtonGroup.types.js.map +1 -0
  73. package/dist/components/button-group/index.d.ts +13 -0
  74. package/dist/components/button-group/index.js +3 -0
  75. package/dist/components/card/Card.base.d.ts +172 -0
  76. package/dist/components/card/Card.base.js +123 -0
  77. package/dist/components/card/Card.base.js.map +1 -0
  78. package/dist/components/card/Card.types.d.ts +18 -0
  79. package/dist/components/card/Card.types.js +21 -0
  80. package/dist/components/card/Card.types.js.map +1 -0
  81. package/dist/components/card/index.d.ts +13 -0
  82. package/dist/components/card/index.js +3 -0
  83. package/dist/components/color-handle/ColorHandle.base.d.ts +51 -0
  84. package/dist/components/color-handle/ColorHandle.base.js +39 -0
  85. package/dist/components/color-handle/ColorHandle.base.js.map +1 -0
  86. package/dist/components/color-handle/ColorHandle.types.d.ts +30 -0
  87. package/dist/components/color-handle/color-contrast.d.ts +55 -0
  88. package/dist/components/color-handle/color-contrast.js +49 -0
  89. package/dist/components/color-handle/color-contrast.js.map +1 -0
  90. package/dist/components/color-handle/index.d.ts +14 -0
  91. package/dist/components/color-handle/index.js +3 -0
  92. package/dist/components/color-loupe/ColorLoupe.base.d.ts +41 -0
  93. package/dist/components/color-loupe/ColorLoupe.base.js +21 -0
  94. package/dist/components/color-loupe/ColorLoupe.base.js.map +1 -0
  95. package/dist/components/color-loupe/index.d.ts +12 -0
  96. package/dist/components/color-loupe/index.js +2 -0
  97. package/dist/components/divider/Divider.base.d.ts +43 -0
  98. package/dist/components/divider/Divider.base.js +42 -0
  99. package/dist/components/divider/Divider.base.js.map +1 -0
  100. package/dist/components/divider/Divider.types.d.ts +15 -0
  101. package/dist/components/divider/Divider.types.js +10 -0
  102. package/dist/components/divider/Divider.types.js.map +1 -0
  103. package/dist/components/divider/index.d.ts +13 -0
  104. package/dist/components/divider/index.js +3 -0
  105. package/dist/components/dropzone/Dropzone.base.d.ts +74 -0
  106. package/dist/components/dropzone/Dropzone.base.js +82 -0
  107. package/dist/components/dropzone/Dropzone.base.js.map +1 -0
  108. package/dist/components/dropzone/Dropzone.types.d.ts +43 -0
  109. package/dist/components/dropzone/Dropzone.types.js +15 -0
  110. package/dist/components/dropzone/Dropzone.types.js.map +1 -0
  111. package/dist/components/dropzone/index.d.ts +13 -0
  112. package/dist/components/dropzone/index.js +3 -0
  113. package/dist/components/icon/Icon.base.d.ts +36 -0
  114. package/dist/components/icon/Icon.base.js +28 -0
  115. package/dist/components/icon/Icon.base.js.map +1 -0
  116. package/dist/components/icon/Icon.types.d.ts +13 -0
  117. package/dist/components/icon/Icon.types.js +12 -0
  118. package/dist/components/icon/Icon.types.js.map +1 -0
  119. package/dist/components/icon/index.d.ts +13 -0
  120. package/dist/components/icon/index.js +3 -0
  121. package/dist/components/illustrated-message/IllustratedMessage.base.d.ts +60 -0
  122. package/dist/components/illustrated-message/IllustratedMessage.base.js +59 -0
  123. package/dist/components/illustrated-message/IllustratedMessage.base.js.map +1 -0
  124. package/dist/components/illustrated-message/IllustratedMessage.types.d.ts +15 -0
  125. package/dist/components/illustrated-message/IllustratedMessage.types.js +10 -0
  126. package/dist/components/illustrated-message/IllustratedMessage.types.js.map +1 -0
  127. package/dist/components/illustrated-message/index.d.ts +13 -0
  128. package/dist/components/illustrated-message/index.js +3 -0
  129. package/dist/components/infield-button/InfieldButton.base.d.ts +28 -0
  130. package/dist/components/infield-button/InfieldButton.base.js +22 -0
  131. package/dist/components/infield-button/InfieldButton.base.js.map +1 -0
  132. package/dist/components/infield-button/InfieldButton.types.d.ts +13 -0
  133. package/dist/components/infield-button/InfieldButton.types.js +11 -0
  134. package/dist/components/infield-button/InfieldButton.types.js.map +1 -0
  135. package/dist/components/infield-button/index.d.ts +13 -0
  136. package/dist/components/infield-button/index.js +3 -0
  137. package/dist/components/meter/Meter.base.d.ts +40 -0
  138. package/dist/components/meter/Meter.base.js +32 -0
  139. package/dist/components/meter/Meter.base.js.map +1 -0
  140. package/dist/components/meter/Meter.types.d.ts +13 -0
  141. package/dist/components/meter/Meter.types.js +11 -0
  142. package/dist/components/meter/Meter.types.js.map +1 -0
  143. package/dist/components/meter/index.d.ts +13 -0
  144. package/dist/components/meter/index.js +3 -0
  145. package/dist/components/popover/Popover.base.d.ts +226 -0
  146. package/dist/components/popover/Popover.base.js +287 -0
  147. package/dist/components/popover/Popover.base.js.map +1 -0
  148. package/dist/components/popover/Popover.types.d.ts +39 -0
  149. package/dist/components/popover/Popover.types.js +24 -0
  150. package/dist/components/popover/Popover.types.js.map +1 -0
  151. package/dist/components/popover/index.d.ts +13 -0
  152. package/dist/components/popover/index.js +3 -0
  153. package/dist/components/progress-bar/ProgressBar.base.d.ts +34 -0
  154. package/dist/components/progress-bar/ProgressBar.base.js +21 -0
  155. package/dist/components/progress-bar/ProgressBar.base.js.map +1 -0
  156. package/dist/components/progress-bar/ProgressBar.types.d.ts +12 -0
  157. package/dist/components/progress-bar/index.d.ts +13 -0
  158. package/dist/components/progress-bar/index.js +2 -0
  159. package/dist/components/progress-circle/ProgressCircle.base.d.ts +83 -0
  160. package/dist/components/progress-circle/ProgressCircle.base.js +77 -0
  161. package/dist/components/progress-circle/ProgressCircle.base.js.map +1 -0
  162. package/dist/components/progress-circle/ProgressCircle.types.d.ts +15 -0
  163. package/dist/components/progress-circle/ProgressCircle.types.js +10 -0
  164. package/dist/components/progress-circle/ProgressCircle.types.js.map +1 -0
  165. package/dist/components/progress-circle/index.d.ts +13 -0
  166. package/dist/components/progress-circle/index.js +3 -0
  167. package/dist/components/status-light/StatusLight.base.d.ts +69 -0
  168. package/dist/components/status-light/StatusLight.base.js +32 -0
  169. package/dist/components/status-light/StatusLight.base.js.map +1 -0
  170. package/dist/components/status-light/StatusLight.types.d.ts +19 -0
  171. package/dist/components/status-light/StatusLight.types.js +32 -0
  172. package/dist/components/status-light/StatusLight.types.js.map +1 -0
  173. package/dist/components/status-light/index.d.ts +13 -0
  174. package/dist/components/status-light/index.js +3 -0
  175. package/dist/components/tabs/Tab.base.d.ts +49 -0
  176. package/dist/components/tabs/Tab.base.js +39 -0
  177. package/dist/components/tabs/Tab.base.js.map +1 -0
  178. package/dist/components/tabs/Tab.types.d.ts +17 -0
  179. package/dist/components/tabs/TabPanel.base.d.ts +49 -0
  180. package/dist/components/tabs/TabPanel.base.js +36 -0
  181. package/dist/components/tabs/TabPanel.base.js.map +1 -0
  182. package/dist/components/tabs/TabPanel.types.d.ts +17 -0
  183. package/dist/components/tabs/Tabs.base.d.ts +221 -0
  184. package/dist/components/tabs/Tabs.base.js +213 -0
  185. package/dist/components/tabs/Tabs.base.js.map +1 -0
  186. package/dist/components/tabs/Tabs.types.d.ts +55 -0
  187. package/dist/components/tabs/Tabs.types.js +6 -0
  188. package/dist/components/tabs/Tabs.types.js.map +1 -0
  189. package/dist/components/tabs/index.d.ts +17 -0
  190. package/dist/components/tabs/index.js +5 -0
  191. package/dist/components/tooltip/Tooltip.base.d.ts +159 -0
  192. package/dist/components/tooltip/Tooltip.base.js +198 -0
  193. package/dist/components/tooltip/Tooltip.base.js.map +1 -0
  194. package/dist/components/tooltip/Tooltip.types.d.ts +18 -0
  195. package/dist/components/tooltip/Tooltip.types.js +15 -0
  196. package/dist/components/tooltip/Tooltip.types.js.map +1 -0
  197. package/dist/components/tooltip/index.d.ts +13 -0
  198. package/dist/components/tooltip/index.js +3 -0
  199. package/dist/controllers/color-controller/index.d.ts +12 -0
  200. package/dist/controllers/color-controller/index.js +2 -0
  201. package/dist/controllers/color-controller/src/color-controller.d.ts +226 -0
  202. package/dist/controllers/color-controller/src/color-controller.js +253 -0
  203. package/dist/controllers/color-controller/src/color-controller.js.map +1 -0
  204. package/dist/controllers/drag-and-drop-controller/index.d.ts +12 -0
  205. package/dist/controllers/drag-and-drop-controller/index.js +2 -0
  206. package/dist/controllers/drag-and-drop-controller/src/drag-and-drop-controller.d.ts +68 -0
  207. package/dist/controllers/drag-and-drop-controller/src/drag-and-drop-controller.js +56 -0
  208. package/dist/controllers/drag-and-drop-controller/src/drag-and-drop-controller.js.map +1 -0
  209. package/dist/controllers/focusgroup-navigation-controller/index.d.ts +12 -0
  210. package/dist/controllers/focusgroup-navigation-controller/index.js +2 -0
  211. package/dist/controllers/focusgroup-navigation-controller/src/focusgroup-navigation-controller.d.ts +496 -0
  212. package/dist/controllers/focusgroup-navigation-controller/src/focusgroup-navigation-controller.js +345 -0
  213. package/dist/controllers/focusgroup-navigation-controller/src/focusgroup-navigation-controller.js.map +1 -0
  214. package/dist/controllers/hover-controller/index.d.ts +12 -0
  215. package/dist/controllers/hover-controller/index.js +2 -0
  216. package/dist/controllers/hover-controller/src/hover-controller.d.ts +118 -0
  217. package/dist/controllers/hover-controller/src/hover-controller.js +90 -0
  218. package/dist/controllers/hover-controller/src/hover-controller.js.map +1 -0
  219. package/dist/controllers/index.d.ts +26 -0
  220. package/dist/controllers/index.js +18 -0
  221. package/dist/controllers/language-resolution.d.ts +87 -0
  222. package/dist/controllers/language-resolution.js +56 -0
  223. package/dist/controllers/language-resolution.js.map +1 -0
  224. package/dist/controllers/live-selection-controller/index.d.ts +12 -0
  225. package/dist/controllers/live-selection-controller/index.js +2 -0
  226. package/dist/controllers/live-selection-controller/src/live-selection-controller.d.ts +144 -0
  227. package/dist/controllers/live-selection-controller/src/live-selection-controller.js +36 -0
  228. package/dist/controllers/live-selection-controller/src/live-selection-controller.js.map +1 -0
  229. package/dist/controllers/page-scroll-lock-controller/index.d.ts +12 -0
  230. package/dist/controllers/page-scroll-lock-controller/index.js +2 -0
  231. package/dist/controllers/page-scroll-lock-controller/src/page-scroll-lock.d.ts +20 -0
  232. package/dist/controllers/page-scroll-lock-controller/src/page-scroll-lock.js +30 -0
  233. package/dist/controllers/page-scroll-lock-controller/src/page-scroll-lock.js.map +1 -0
  234. package/dist/controllers/pending-controller/index.d.ts +12 -0
  235. package/dist/controllers/pending-controller/index.js +2 -0
  236. package/dist/controllers/pending-controller/src/pending-controller.d.ts +95 -0
  237. package/dist/controllers/pending-controller/src/pending-controller.js +55 -0
  238. package/dist/controllers/pending-controller/src/pending-controller.js.map +1 -0
  239. package/dist/controllers/placement-controller/index.d.ts +12 -0
  240. package/dist/controllers/placement-controller/index.js +4 -0
  241. package/dist/controllers/placement-controller/src/fallback-placements.d.ts +9 -0
  242. package/dist/controllers/placement-controller/src/fallback-placements.js +71 -0
  243. package/dist/controllers/placement-controller/src/fallback-placements.js.map +1 -0
  244. package/dist/controllers/placement-controller/src/placement-controller.d.ts +152 -0
  245. package/dist/controllers/placement-controller/src/placement-controller.js +129 -0
  246. package/dist/controllers/placement-controller/src/placement-controller.js.map +1 -0
  247. package/dist/controllers/placement-controller/src/placement-conversion.d.ts +35 -0
  248. package/dist/controllers/placement-controller/src/placement-conversion.js +54 -0
  249. package/dist/controllers/placement-controller/src/placement-conversion.js.map +1 -0
  250. package/dist/controllers/placement-controller/src/types.d.ts +128 -0
  251. package/dist/controllers/placement-controller/src/types.js +29 -0
  252. package/dist/controllers/placement-controller/src/types.js.map +1 -0
  253. package/dist/controllers/slot-attribute-propagation-controller/index.d.ts +12 -0
  254. package/dist/controllers/slot-attribute-propagation-controller/index.js +2 -0
  255. package/dist/controllers/slot-attribute-propagation-controller/src/slot-attribute-propagation-controller.d.ts +65 -0
  256. package/dist/controllers/slot-attribute-propagation-controller/src/slot-attribute-propagation-controller.js +33 -0
  257. package/dist/controllers/slot-attribute-propagation-controller/src/slot-attribute-propagation-controller.js.map +1 -0
  258. package/dist/controllers/slot-presence-controller/index.d.ts +12 -0
  259. package/dist/controllers/slot-presence-controller/index.js +2 -0
  260. package/dist/controllers/slot-presence-controller/src/slot-presence-controller.d.ts +57 -0
  261. package/dist/controllers/slot-presence-controller/src/slot-presence-controller.js +44 -0
  262. package/dist/controllers/slot-presence-controller/src/slot-presence-controller.js.map +1 -0
  263. package/dist/controllers/slot-text-controller/index.d.ts +12 -0
  264. package/dist/controllers/slot-text-controller/index.js +2 -0
  265. package/dist/controllers/slot-text-controller/src/slot-text-controller.d.ts +92 -0
  266. package/dist/controllers/slot-text-controller/src/slot-text-controller.js +53 -0
  267. package/dist/controllers/slot-text-controller/src/slot-text-controller.js.map +1 -0
  268. package/dist/directives/index.d.ts +15 -0
  269. package/dist/directives/index.js +3 -0
  270. package/dist/directives/pending-spinner/index.d.ts +12 -0
  271. package/dist/directives/pending-spinner/index.js +1 -0
  272. package/dist/directives/pending-spinner/src/pending-spinner.d.ts +22 -0
  273. package/dist/directives/pending-spinner/src/pending-spinner.js +39 -0
  274. package/dist/directives/pending-spinner/src/pending-spinner.js.map +1 -0
  275. package/dist/element/define-element.d.ts +16 -0
  276. package/dist/element/define-element.js +8 -0
  277. package/dist/element/define-element.js.map +1 -0
  278. package/dist/element/index.d.ts +14 -0
  279. package/dist/element/index.js +4 -0
  280. package/dist/element/spectrum-element.d.ts +69 -0
  281. package/dist/element/spectrum-element.js +85 -0
  282. package/dist/element/spectrum-element.js.map +1 -0
  283. package/dist/element/version.d.ts +19 -0
  284. package/dist/element/version.js +6 -0
  285. package/dist/element/version.js.map +1 -0
  286. package/dist/mixins/disabled-mixin.d.ts +30 -0
  287. package/dist/mixins/disabled-mixin.js +27 -0
  288. package/dist/mixins/disabled-mixin.js.map +1 -0
  289. package/dist/mixins/index.d.ts +16 -0
  290. package/dist/mixins/index.js +5 -0
  291. package/dist/mixins/linear-progress-mixin.d.ts +41 -0
  292. package/dist/mixins/linear-progress-mixin.js +115 -0
  293. package/dist/mixins/linear-progress-mixin.js.map +1 -0
  294. package/dist/mixins/pending-mixin.d.ts +45 -0
  295. package/dist/mixins/pending-mixin.js +50 -0
  296. package/dist/mixins/pending-mixin.js.map +1 -0
  297. package/dist/mixins/sized-mixin.d.ts +49 -0
  298. package/dist/mixins/sized-mixin.js +42 -0
  299. package/dist/mixins/sized-mixin.js.map +1 -0
  300. package/dist/utils/actual-placement.d.ts +10 -0
  301. package/dist/utils/actual-placement.js +8 -0
  302. package/dist/utils/actual-placement.js.map +1 -0
  303. package/dist/utils/capitalize.d.ts +26 -0
  304. package/dist/utils/capitalize.js +8 -0
  305. package/dist/utils/capitalize.js.map +1 -0
  306. package/dist/utils/deep-contains.d.ts +26 -0
  307. package/dist/utils/deep-contains.js +14 -0
  308. package/dist/utils/deep-contains.js.map +1 -0
  309. package/dist/utils/dev-validation.d.ts +88 -0
  310. package/dist/utils/dev-validation.js +33 -0
  311. package/dist/utils/dev-validation.js.map +1 -0
  312. package/dist/utils/dismissible-stack.d.ts +26 -0
  313. package/dist/utils/dismissible-stack.js +16 -0
  314. package/dist/utils/dismissible-stack.js.map +1 -0
  315. package/dist/utils/focusable-selectors.d.ts +43 -0
  316. package/dist/utils/focusable-selectors.js +18 -0
  317. package/dist/utils/focusable-selectors.js.map +1 -0
  318. package/dist/utils/get-active-element.d.ts +31 -0
  319. package/dist/utils/get-active-element.js +11 -0
  320. package/dist/utils/get-active-element.js.map +1 -0
  321. package/dist/utils/get-label-from-slot.d.ts +12 -0
  322. package/dist/utils/get-label-from-slot.js +10 -0
  323. package/dist/utils/get-label-from-slot.js.map +1 -0
  324. package/dist/utils/index.d.ts +22 -0
  325. package/dist/utils/index.js +12 -0
  326. package/dist/utils/is-focus-visible-in-tree.d.ts +33 -0
  327. package/dist/utils/is-focus-visible-in-tree.js +11 -0
  328. package/dist/utils/is-focus-visible-in-tree.js.map +1 -0
  329. package/dist/utils/resolve-trigger.d.ts +42 -0
  330. package/dist/utils/resolve-trigger.js +23 -0
  331. package/dist/utils/resolve-trigger.js.map +1 -0
  332. package/dist/utils/transition.d.ts +53 -0
  333. package/dist/utils/transition.js +26 -0
  334. package/dist/utils/transition.js.map +1 -0
  335. package/package.json +644 -0
@@ -0,0 +1,83 @@
1
+ import { PropertyValues } from 'lit';
2
+ import { SpectrumElement } from '../../element/index.js';
3
+ import { PROGRESS_CIRCLE_VALID_SIZES, ProgressCircleStaticColor } from './ProgressCircle.types.js';
4
+ declare const ProgressCircleBase_base: typeof SpectrumElement & {
5
+ new (...args: any[]): import('../../mixins/index.js').SizedElementInterface;
6
+ prototype: import('../../mixins/index.js').SizedElementInterface;
7
+ } & import('../../mixins/index.js').SizedElementConstructor;
8
+ /**
9
+ * A progress circle component that visually represents the completion progress of a task.
10
+ * Can be used in both determinate (with specific progress value) and indeterminate (loading) states.
11
+ *
12
+ * @attribute {ElementSize} size - The size of the progress circle.
13
+ */
14
+ export declare abstract class ProgressCircleBase extends ProgressCircleBase_base {
15
+ /**
16
+ * The size of the progress circle.
17
+ *
18
+ * @default m
19
+ */
20
+ size: (typeof PROGRESS_CIRCLE_VALID_SIZES)[number];
21
+ /**
22
+ * @internal
23
+ *
24
+ * A readonly array of the valid static colors for the progress circle.
25
+ *
26
+ * This is an actual internal property, intended not for customer use
27
+ * but for use in internal validation logic, stories, tests, etc.
28
+ *
29
+ * Because S1 and S2 support different static colors, the value of this
30
+ * property must be set in each subclass.
31
+ */
32
+ static readonly STATIC_COLORS: readonly string[];
33
+ /**
34
+ * @internal
35
+ *
36
+ * Static color variant for use on different backgrounds.
37
+ *
38
+ * This is a public property, but its valid values vary between S1 and S2,
39
+ * so the property (and its docs) need to be redefined in each subclass.
40
+ *
41
+ * The type declared here is a union of the valid values for S1 and S2,
42
+ * and should be narrowed in each subclass.
43
+ */
44
+ staticColor?: ProgressCircleStaticColor;
45
+ /**
46
+ * Accessible label for the progress circle.
47
+ *
48
+ * Used to provide context about what is loading or progressing.
49
+ * When no accessible name is provided (no label, aria-label, or
50
+ * aria-labelledby), a default "Loading" label is applied.
51
+ *
52
+ * @todo Localize the default "Loading" fallback via LanguageResolutionController
53
+ * once a runtime i18n system for static strings is available.
54
+ */
55
+ label: string;
56
+ /**
57
+ * Progress value from 0 to 100.
58
+ *
59
+ * When `null` (indeterminate), the component shows a loading animation.
60
+ * Setting a number switches to determinate mode. Removing the `progress`
61
+ * attribute or setting this property to `null` returns to indeterminate.
62
+ * Values outside 0–100 or non-finite numbers are clamped (non-finite becomes 0).
63
+ *
64
+ * Reflected to the `progress` attribute when set; the attribute is omitted when indeterminate.
65
+ */
66
+ progress: number | null;
67
+ private languageResolver;
68
+ /**
69
+ * @todo Localize via LanguageResolutionController once a runtime i18n
70
+ * system for static strings is available.
71
+ */
72
+ private static readonly DEFAULT_LABEL;
73
+ /** True when light DOM has element nodes or non-whitespace text (no default slot). */
74
+ private static hasMeaningfulLightDomChildren;
75
+ private hasAccessibleName;
76
+ private static clampProgress;
77
+ private formatProgress;
78
+ private warnDeprecatedLightDomChildren;
79
+ protected willUpdate(changes: PropertyValues): void;
80
+ protected firstUpdated(changes: PropertyValues): void;
81
+ protected updated(changes: PropertyValues): void;
82
+ }
83
+ export {};
@@ -0,0 +1,77 @@
1
+ import { __decorate as e } from "../../_virtual/_@oxc-project_runtime@0.124.0/helpers/decorate.js";
2
+ import { PROGRESS_CIRCLE_VALID_SIZES as t } from "./ProgressCircle.types.js";
3
+ import { property as n } from "lit/decorators.js";
4
+ import { SpectrumElement as r } from "@adobe/spectrum-wc-core/element/index.js";
5
+ import { SizedMixin as i } from "@adobe/spectrum-wc-core/mixins/index.js";
6
+ import { isDebug as a, validateEnum as o, warnIf as s } from "@adobe/spectrum-wc-core/utils/index.js";
7
+ import { LanguageResolutionController as c, languageResolverUpdatedSymbol as l } from "@adobe/spectrum-wc-core/controllers/language-resolution.js";
8
+ //#region components/progress-circle/ProgressCircle.base.ts
9
+ var u, d = class e extends i(r, { validSizes: t }) {
10
+ constructor(...e) {
11
+ super(...e), this.label = "", this.progress = null, this.languageResolver = new c(this);
12
+ }
13
+ static hasMeaningfulLightDomChildren(e) {
14
+ for (let n of e.childNodes) {
15
+ var t;
16
+ if (n.nodeType === Node.ELEMENT_NODE || n.nodeType === Node.TEXT_NODE && (t = n.textContent) != null && t.trim()) return !0;
17
+ }
18
+ return !1;
19
+ }
20
+ hasAccessibleName() {
21
+ return !!(this.label || this.getAttribute("aria-label") || this.getAttribute("aria-labelledby"));
22
+ }
23
+ static clampProgress(e) {
24
+ return Number.isFinite(e) ? Math.min(100, Math.max(0, e)) : 0;
25
+ }
26
+ formatProgress() {
27
+ var e;
28
+ return new Intl.NumberFormat(this.languageResolver.language, {
29
+ style: "percent",
30
+ unitDisplay: "narrow"
31
+ }).format(((e = this.progress) == null ? 0 : e) / 100);
32
+ }
33
+ warnDeprecatedLightDomChildren() {
34
+ s(this, e.hasMeaningfulLightDomChildren(this), `<${this.localName}> no longer has a default slot. Light DOM children are not rendered and are not used for an accessible name. Use the "label" attribute or property, or "aria-label" / "aria-labelledby" on the host instead.`, "https://spectrum-web-components.adobe.com/?path=/docs/components-progress-circle--docs", { level: "deprecation" });
35
+ }
36
+ willUpdate(t) {
37
+ if (t.has("progress") && this.progress !== null) {
38
+ let t = e.clampProgress(this.progress);
39
+ t !== this.progress && (this.progress = t);
40
+ }
41
+ super.willUpdate(t);
42
+ }
43
+ firstUpdated(e) {
44
+ super.firstUpdated(e), this.setAttribute("role", "progressbar");
45
+ }
46
+ updated(t) {
47
+ if (super.updated(t), t.has("progress") && (this.progress !== null && this.progress >= 0 ? (this.setAttribute("aria-valuemin", "0"), this.setAttribute("aria-valuemax", "100"), this.setAttribute("aria-valuenow", String(this.progress)), this.setAttribute("aria-valuetext", this.formatProgress())) : (this.removeAttribute("aria-valuemin"), this.removeAttribute("aria-valuemax"), this.removeAttribute("aria-valuenow"), this.removeAttribute("aria-valuetext"))), this.progress !== null && t.has(l) && this.setAttribute("aria-valuetext", this.formatProgress()), t.has("label") && (this.label.length ? this.setAttribute("aria-label", this.label) : t.get("label") === this.getAttribute("aria-label") && this.removeAttribute("aria-label")), t.has("label") && !this.hasAccessibleName() && (this.setAttribute("aria-label", e.DEFAULT_LABEL), s(this, !0, `<${this.localName}> requires an accessible name. A default label of "${e.DEFAULT_LABEL}" has been applied, but a more specific label should be provided via:`, "https://spectrum-web-components.adobe.com/?path=/docs/components-progress-circle--docs", {
48
+ type: "accessibility",
49
+ issues: [
50
+ "value supplied to the \"label\" attribute, which will be displayed visually as part of the element, or",
51
+ "value supplied to the \"aria-label\" attribute, which will only be provided to screen readers, or",
52
+ "an element ID reference supplied to the \"aria-labelledby\" attribute, which will be provided by screen readers and will need to be managed manually by the parent application."
53
+ ]
54
+ })), t.has("staticColor") && this.staticColor !== void 0) {
55
+ let e = this.constructor;
56
+ o(this, {
57
+ prop: "static-color",
58
+ value: this.staticColor,
59
+ valid: e.STATIC_COLORS,
60
+ url: "https://spectrum-web-components.adobe.com/?path=/docs/components-progress-circle--docs"
61
+ });
62
+ }
63
+ a() && this.warnDeprecatedLightDomChildren();
64
+ }
65
+ };
66
+ u = d, u.DEFAULT_LABEL = "Loading", e([n({
67
+ type: String,
68
+ reflect: !0,
69
+ attribute: "static-color"
70
+ })], d.prototype, "staticColor", void 0), e([n({ type: String })], d.prototype, "label", void 0), e([n({
71
+ type: Number,
72
+ reflect: !0
73
+ })], d.prototype, "progress", void 0);
74
+ //#endregion
75
+ export { d as ProgressCircleBase };
76
+
77
+ //# sourceMappingURL=ProgressCircle.base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProgressCircle.base.js","names":[],"sources":["../../../components/progress-circle/ProgressCircle.base.ts"],"sourcesContent":["/**\n * Copyright 2026 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport { PropertyValues } from 'lit';\nimport { property } from 'lit/decorators.js';\n\nimport {\n LanguageResolutionController,\n languageResolverUpdatedSymbol,\n} from '@adobe/spectrum-wc-core/controllers/language-resolution.js';\nimport { SpectrumElement } from '@adobe/spectrum-wc-core/element/index.js';\nimport { SizedMixin } from '@adobe/spectrum-wc-core/mixins/index.js';\nimport {\n isDebug,\n validateEnum,\n warnIf,\n} from '@adobe/spectrum-wc-core/utils/index.js';\n\nimport {\n PROGRESS_CIRCLE_VALID_SIZES,\n ProgressCircleStaticColor,\n} from './ProgressCircle.types.js';\n\n/**\n * A progress circle component that visually represents the completion progress of a task.\n * Can be used in both determinate (with specific progress value) and indeterminate (loading) states.\n *\n * @attribute {ElementSize} size - The size of the progress circle.\n */\nexport abstract class ProgressCircleBase extends SizedMixin(SpectrumElement, {\n validSizes: PROGRESS_CIRCLE_VALID_SIZES,\n}) {\n /**\n * The size of the progress circle.\n *\n * @default m\n */\n declare public size: (typeof PROGRESS_CIRCLE_VALID_SIZES)[number];\n\n // ─────────────────────────\n // API TO OVERRIDE\n // ─────────────────────────\n\n /**\n * @internal\n *\n * A readonly array of the valid static colors for the progress circle.\n *\n * This is an actual internal property, intended not for customer use\n * but for use in internal validation logic, stories, tests, etc.\n *\n * Because S1 and S2 support different static colors, the value of this\n * property must be set in each subclass.\n */\n static readonly STATIC_COLORS: readonly string[];\n\n /**\n * @internal\n *\n * Static color variant for use on different backgrounds.\n *\n * This is a public property, but its valid values vary between S1 and S2,\n * so the property (and its docs) need to be redefined in each subclass.\n *\n * The type declared here is a union of the valid values for S1 and S2,\n * and should be narrowed in each subclass.\n */\n @property({ type: String, reflect: true, attribute: 'static-color' })\n public staticColor?: ProgressCircleStaticColor;\n\n // ──────────────────\n // SHARED API\n // ──────────────────\n\n /**\n * Accessible label for the progress circle.\n *\n * Used to provide context about what is loading or progressing.\n * When no accessible name is provided (no label, aria-label, or\n * aria-labelledby), a default \"Loading\" label is applied.\n *\n * @todo Localize the default \"Loading\" fallback via LanguageResolutionController\n * once a runtime i18n system for static strings is available.\n */\n @property({ type: String })\n public label = '';\n\n /**\n * Progress value from 0 to 100.\n *\n * When `null` (indeterminate), the component shows a loading animation.\n * Setting a number switches to determinate mode. Removing the `progress`\n * attribute or setting this property to `null` returns to indeterminate.\n * Values outside 0–100 or non-finite numbers are clamped (non-finite becomes 0).\n *\n * Reflected to the `progress` attribute when set; the attribute is omitted when indeterminate.\n */\n @property({ type: Number, reflect: true })\n public progress: number | null = null;\n\n private languageResolver = new LanguageResolutionController(this);\n\n // ──────────────────────\n // IMPLEMENTATION\n // ──────────────────────\n\n /**\n * @todo Localize via LanguageResolutionController once a runtime i18n\n * system for static strings is available.\n */\n private static readonly DEFAULT_LABEL = 'Loading';\n\n /** True when light DOM has element nodes or non-whitespace text (no default slot). */\n private static hasMeaningfulLightDomChildren(host: HTMLElement): boolean {\n for (const node of host.childNodes) {\n if (\n node.nodeType === Node.ELEMENT_NODE ||\n (node.nodeType === Node.TEXT_NODE && node.textContent?.trim())\n ) {\n return true;\n }\n }\n return false;\n }\n\n private hasAccessibleName(): boolean {\n return Boolean(\n this.label ||\n this.getAttribute('aria-label') ||\n this.getAttribute('aria-labelledby')\n );\n }\n\n private static clampProgress(value: number): number {\n if (!Number.isFinite(value)) {\n return 0;\n }\n return Math.min(100, Math.max(0, value));\n }\n\n private formatProgress(): string {\n return new Intl.NumberFormat(this.languageResolver.language, {\n style: 'percent',\n unitDisplay: 'narrow',\n }).format((this.progress ?? 0) / 100);\n }\n\n private warnDeprecatedLightDomChildren(): void {\n warnIf(\n this,\n ProgressCircleBase.hasMeaningfulLightDomChildren(this),\n `<${this.localName}> no longer has a default slot. Light DOM children are not rendered and are not used for an accessible name. Use the \"label\" attribute or property, or \"aria-label\" / \"aria-labelledby\" on the host instead.`,\n 'https://spectrum-web-components.adobe.com/?path=/docs/components-progress-circle--docs',\n { level: 'deprecation' }\n );\n }\n\n protected override willUpdate(changes: PropertyValues): void {\n if (changes.has('progress') && this.progress !== null) {\n const clamped = ProgressCircleBase.clampProgress(this.progress);\n if (clamped !== this.progress) {\n this.progress = clamped;\n }\n }\n\n super.willUpdate(changes);\n }\n\n protected override firstUpdated(changes: PropertyValues): void {\n super.firstUpdated(changes);\n this.setAttribute('role', 'progressbar');\n }\n\n protected override updated(changes: PropertyValues): void {\n super.updated(changes);\n\n if (changes.has('progress')) {\n if (this.progress !== null && this.progress >= 0) {\n this.setAttribute('aria-valuemin', '0');\n this.setAttribute('aria-valuemax', '100');\n this.setAttribute('aria-valuenow', String(this.progress));\n this.setAttribute('aria-valuetext', this.formatProgress());\n } else {\n this.removeAttribute('aria-valuemin');\n this.removeAttribute('aria-valuemax');\n this.removeAttribute('aria-valuenow');\n this.removeAttribute('aria-valuetext');\n }\n }\n\n if (this.progress !== null && changes.has(languageResolverUpdatedSymbol)) {\n this.setAttribute('aria-valuetext', this.formatProgress());\n }\n\n if (changes.has('label')) {\n if (this.label.length) {\n this.setAttribute('aria-label', this.label);\n } else if (changes.get('label') === this.getAttribute('aria-label')) {\n this.removeAttribute('aria-label');\n }\n }\n\n // Apply default accessible name fallback after handling explicit label changes.\n if (changes.has('label') && !this.hasAccessibleName()) {\n this.setAttribute('aria-label', ProgressCircleBase.DEFAULT_LABEL);\n warnIf(\n this,\n true,\n `<${this.localName}> requires an accessible name. A default label of \"${ProgressCircleBase.DEFAULT_LABEL}\" has been applied, but a more specific label should be provided via:`,\n 'https://spectrum-web-components.adobe.com/?path=/docs/components-progress-circle--docs',\n {\n type: 'accessibility',\n issues: [\n 'value supplied to the \"label\" attribute, which will be displayed visually as part of the element, or',\n 'value supplied to the \"aria-label\" attribute, which will only be provided to screen readers, or',\n 'an element ID reference supplied to the \"aria-labelledby\" attribute, which will be provided by screen readers and will need to be managed manually by the parent application.',\n ],\n }\n );\n }\n\n if (changes.has('staticColor') && this.staticColor !== undefined) {\n const constructor = this.constructor as typeof ProgressCircleBase;\n validateEnum(this, {\n prop: 'static-color',\n value: this.staticColor,\n valid: constructor.STATIC_COLORS,\n url: 'https://spectrum-web-components.adobe.com/?path=/docs/components-progress-circle--docs',\n });\n }\n\n // Guard the call site: `hasMeaningfulLightDomChildren` traverses the light\n // DOM and the message is built eagerly as an argument, so both would run on\n // every `updated()` (including production) if passed straight to `warnIf`.\n // `isDebug()` skips that work entirely when validation is off.\n if (isDebug()) {\n this.warnDeprecatedLightDomChildren();\n }\n }\n}\n"],"mappings":";;;;;;;;OAsCsB,IAAtB,MAAsB,UAA2B,EAAW,GAAiB,EAC3E,YAAY,GACb,CAAC,CAAC;;4BAsDc,oBAakB,8BAEN,IAAI,EAA6B,KAAK;;CAajE,OAAe,8BAA8B,GAA4B;AACvE,OAAK,IAAM,KAAQ,EAAK,YAAY;;AAClC,OACE,EAAK,aAAa,KAAK,gBACtB,EAAK,aAAa,KAAK,cAAA,IAAa,EAAK,gBAAA,QAAA,EAAa,MAAM,CAE7D,QAAO;;AAGX,SAAO;;CAGT,oBAAqC;AACnC,SAAO,GACL,KAAK,SACL,KAAK,aAAa,aAAa,IAC/B,KAAK,aAAa,kBAAkB;;CAIxC,OAAe,cAAc,GAAuB;AAIlD,SAHK,OAAO,SAAS,EAAM,GAGpB,KAAK,IAAI,KAAK,KAAK,IAAI,GAAG,EAAM,CAAC,GAF/B;;CAKX,iBAAiC;;AAC/B,SAAO,IAAI,KAAK,aAAa,KAAK,iBAAiB,UAAU;GAC3D,OAAO;GACP,aAAa;GACd,CAAC,CAAC,SAAA,IAAQ,KAAK,aAAA,OAAY,IAAZ,KAAiB,IAAI;;CAGvC,iCAA+C;AAC7C,IACE,MACA,EAAmB,8BAA8B,KAAK,EACtD,IAAI,KAAK,UAAU,+MACnB,0FACA,EAAE,OAAO,eAAe,CACzB;;CAGH,WAA8B,GAA+B;AAC3D,MAAI,EAAQ,IAAI,WAAW,IAAI,KAAK,aAAa,MAAM;GACrD,IAAM,IAAU,EAAmB,cAAc,KAAK,SAAS;AAC/D,GAAI,MAAY,KAAK,aACnB,KAAK,WAAW;;AAIpB,QAAM,WAAW,EAAQ;;CAG3B,aAAgC,GAA+B;AAE7D,EADA,MAAM,aAAa,EAAQ,EAC3B,KAAK,aAAa,QAAQ,cAAc;;CAG1C,QAA2B,GAA+B;AAgDxD,MA/CA,MAAM,QAAQ,EAAQ,EAElB,EAAQ,IAAI,WAAW,KACrB,KAAK,aAAa,QAAQ,KAAK,YAAY,KAC7C,KAAK,aAAa,iBAAiB,IAAI,EACvC,KAAK,aAAa,iBAAiB,MAAM,EACzC,KAAK,aAAa,iBAAiB,OAAO,KAAK,SAAS,CAAC,EACzD,KAAK,aAAa,kBAAkB,KAAK,gBAAgB,CAAC,KAE1D,KAAK,gBAAgB,gBAAgB,EACrC,KAAK,gBAAgB,gBAAgB,EACrC,KAAK,gBAAgB,gBAAgB,EACrC,KAAK,gBAAgB,iBAAiB,IAItC,KAAK,aAAa,QAAQ,EAAQ,IAAI,EAA8B,IACtE,KAAK,aAAa,kBAAkB,KAAK,gBAAgB,CAAC,EAGxD,EAAQ,IAAI,QAAQ,KAClB,KAAK,MAAM,SACb,KAAK,aAAa,cAAc,KAAK,MAAM,GAClC,EAAQ,IAAI,QAAQ,KAAK,KAAK,aAAa,aAAa,IACjE,KAAK,gBAAgB,aAAa,GAKlC,EAAQ,IAAI,QAAQ,IAAI,CAAC,KAAK,mBAAmB,KACnD,KAAK,aAAa,cAAc,EAAmB,cAAc,EACjE,EACE,MACA,IACA,IAAI,KAAK,UAAU,qDAAqD,EAAmB,cAAc,wEACzG,0FACA;GACE,MAAM;GACN,QAAQ;IACN;IACA;IACA;IACD;GACF,CACF,GAGC,EAAQ,IAAI,cAAc,IAAI,KAAK,gBAAgB,KAAA,GAAW;GAChE,IAAM,IAAc,KAAK;AACzB,KAAa,MAAM;IACjB,MAAM;IACN,OAAO,KAAK;IACZ,OAAO,EAAY;IACnB,KAAK;IACN,CAAC;;AAOJ,EAAI,GAAS,IACX,KAAK,gCAAgC;;;yBA9HD,cA3CvC,EAAS;CAAE,MAAM;CAAQ,SAAS;CAAM,WAAW;CAAgB,CAAC,CAAA,EAAA,EAAA,WAAA,eAAA,KAAA,EAAA,KAiBpE,EAAS,EAAE,MAAM,QAAQ,CAAC,CAAA,EAAA,EAAA,WAAA,SAAA,KAAA,EAAA,KAa1B,EAAS;CAAE,MAAM;CAAQ,SAAS;CAAM,CAAC,CAAA,EAAA,EAAA,WAAA,YAAA,KAAA,EAAA"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Copyright 2026 Adobe. All rights reserved.
3
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
4
+ * you may not use this file except in compliance with the License. You may obtain a copy
5
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0
6
+ *
7
+ * Unless required by applicable law or agreed to in writing, software distributed under
8
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
9
+ * OF ANY KIND, either express or implied. See the License for the specific language
10
+ * governing permissions and limitations under the License.
11
+ */
12
+ export declare const PROGRESS_CIRCLE_VALID_SIZES: readonly ["s", "m", "l"];
13
+ export declare const PROGRESS_CIRCLE_STATIC_COLORS: readonly ["white", "black"];
14
+ export type ProgressCircleStaticColor = (typeof PROGRESS_CIRCLE_STATIC_COLORS)[number];
15
+ export type ProgressCircleSize = (typeof PROGRESS_CIRCLE_VALID_SIZES)[number];
@@ -0,0 +1,10 @@
1
+ //#region components/progress-circle/ProgressCircle.types.ts
2
+ var e = [
3
+ "s",
4
+ "m",
5
+ "l"
6
+ ], t = ["white", "black"];
7
+ //#endregion
8
+ export { t as PROGRESS_CIRCLE_STATIC_COLORS, e as PROGRESS_CIRCLE_VALID_SIZES };
9
+
10
+ //# sourceMappingURL=ProgressCircle.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProgressCircle.types.js","names":[],"sources":["../../../components/progress-circle/ProgressCircle.types.ts"],"sourcesContent":["/**\n * Copyright 2026 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport type { ElementSize } from '@adobe/spectrum-wc-core/mixins/index.js';\n\nexport const PROGRESS_CIRCLE_VALID_SIZES = [\n 's',\n 'm',\n 'l',\n] as const satisfies readonly ElementSize[];\nexport const PROGRESS_CIRCLE_STATIC_COLORS = ['white', 'black'] as const;\n\nexport type ProgressCircleStaticColor =\n (typeof PROGRESS_CIRCLE_STATIC_COLORS)[number];\nexport type ProgressCircleSize = (typeof PROGRESS_CIRCLE_VALID_SIZES)[number];\n"],"mappings":";AAcA,IAAa,IAA8B;CACzC;CACA;CACA;CACD,EACY,IAAgC,CAAC,SAAS,QAAQ"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Copyright 2026 Adobe. All rights reserved.
3
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
4
+ * you may not use this file except in compliance with the License. You may obtain a copy
5
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0
6
+ *
7
+ * Unless required by applicable law or agreed to in writing, software distributed under
8
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
9
+ * OF ANY KIND, either express or implied. See the License for the specific language
10
+ * governing permissions and limitations under the License.
11
+ */
12
+ export * from './ProgressCircle.base.js';
13
+ export * from './ProgressCircle.types.js';
@@ -0,0 +1,3 @@
1
+ import { PROGRESS_CIRCLE_STATIC_COLORS as e, PROGRESS_CIRCLE_VALID_SIZES as t } from "./ProgressCircle.types.js";
2
+ import { ProgressCircleBase as n } from "./ProgressCircle.base.js";
3
+ export { e as PROGRESS_CIRCLE_STATIC_COLORS, t as PROGRESS_CIRCLE_VALID_SIZES, n as ProgressCircleBase };
@@ -0,0 +1,69 @@
1
+ import { PropertyValues } from 'lit';
2
+ import { SpectrumElement } from '../../element/index.js';
3
+ import { StatusLightSize, StatusLightVariant } from './StatusLight.types.js';
4
+ declare const StatusLightBase_base: typeof SpectrumElement & {
5
+ new (...args: any[]): import('../../mixins/index.js').SizedElementInterface;
6
+ prototype: import('../../mixins/index.js').SizedElementInterface;
7
+ } & import('../../mixins/index.js').SizedElementConstructor;
8
+ /**
9
+ * A status light is a great way to convey semantic meaning and the condition of an entity, such as statuses and categories. It provides visual indicators through colored dots accompanied by descriptive text.
10
+ *
11
+ * @slot - The text label of the status light.
12
+ * @attribute {ElementSize} size - The size of the status light.
13
+ */
14
+ export declare abstract class StatusLightBase extends StatusLightBase_base {
15
+ /**
16
+ * The size of the status light.
17
+ */
18
+ size: StatusLightSize;
19
+ /**
20
+ * @internal
21
+ *
22
+ * A readonly array of the valid color variants for the status light.
23
+ *
24
+ * This is an actual internal property, intended not for customer use
25
+ * but for use in internal validation logic, stories, tests, etc.
26
+ *
27
+ * Because S1 and S2 support different color variants, the value of this
28
+ * property must be set in each subclass.
29
+ */
30
+ static readonly VARIANTS_COLOR: readonly string[];
31
+ /**
32
+ * @internal
33
+ *
34
+ * A readonly array of the valid semantic variants for the status light.
35
+ *
36
+ * This is an actual internal property, intended not for customer use
37
+ * but for use in internal validation logic, stories, tests, etc.
38
+ *
39
+ * Because S1 and S2 support different semantic variants, the value of this
40
+ * property must be set in each subclass.
41
+ */
42
+ static readonly VARIANTS_SEMANTIC: readonly string[];
43
+ /**
44
+ * @internal
45
+ *
46
+ * A readonly array of all valid variants for the status light.
47
+ *
48
+ * This is an actual internal property, intended not for customer use
49
+ * but for use in internal validation logic, stories, tests, etc.
50
+ *
51
+ * Because S1 and S2 support different variants, the value of this
52
+ * property must be set in each subclass.
53
+ */
54
+ static readonly VARIANTS: readonly string[];
55
+ /**
56
+ * @internal
57
+ *
58
+ * The variant of the status light.
59
+ *
60
+ * This is a public property, but its valid values vary between S1 and S2,
61
+ * so the property (and its docs) need to be redefined in each subclass.
62
+ *
63
+ * The type declared here is a union of the valid values for S1 and S2,
64
+ * and should be narrowed in each subclass.
65
+ */
66
+ variant: StatusLightVariant;
67
+ protected update(changes: PropertyValues): void;
68
+ }
69
+ export {};
@@ -0,0 +1,32 @@
1
+ import { __decorate as e } from "../../_virtual/_@oxc-project_runtime@0.124.0/helpers/decorate.js";
2
+ import { STATUS_LIGHT_VALID_SIZES as t } from "./StatusLight.types.js";
3
+ import { property as n } from "lit/decorators.js";
4
+ import { SpectrumElement as r } from "@adobe/spectrum-wc-core/element/index.js";
5
+ import { SizedMixin as i } from "@adobe/spectrum-wc-core/mixins/index.js";
6
+ import { validateEnum as a, warnIf as o } from "@adobe/spectrum-wc-core/utils/index.js";
7
+ //#region components/status-light/StatusLight.base.ts
8
+ var s = class extends i(r, {
9
+ validSizes: t,
10
+ noDefaultSize: !0
11
+ }) {
12
+ constructor(...e) {
13
+ super(...e), this.variant = "neutral";
14
+ }
15
+ update(e) {
16
+ let t = this.constructor;
17
+ this.variant === "accent" ? o(this, !0, `<${this.localName}> does not support the "accent" variant in Spectrum 2. Use "neutral" or "info" depending on intent.`, "https://spectrum-web-components.adobe.com/?path=/docs/status-light-migration-guide--docs", { level: "deprecation" }) : a(this, {
18
+ prop: "variant",
19
+ value: this.variant,
20
+ valid: t.VARIANTS,
21
+ url: "https://spectrum-web-components.adobe.com/?path=/docs/components-status-light--docs"
22
+ }), o(this, this.hasAttribute("disabled"), `<${this.localName}> does not support the "disabled" attribute. It was deprecated in Spectrum 1 and has been removed in Spectrum 2.`, "https://spectrum-web-components.adobe.com/?path=/docs/status-light-migration-guide--docs", { level: "deprecation" }), super.update(e);
23
+ }
24
+ };
25
+ e([n({
26
+ type: String,
27
+ reflect: !0
28
+ })], s.prototype, "variant", void 0);
29
+ //#endregion
30
+ export { s as StatusLightBase };
31
+
32
+ //# sourceMappingURL=StatusLight.base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatusLight.base.js","names":[],"sources":["../../../components/status-light/StatusLight.base.ts"],"sourcesContent":["/**\n * Copyright 2026 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\nimport { PropertyValues } from 'lit';\nimport { property } from 'lit/decorators.js';\n\nimport { SpectrumElement } from '@adobe/spectrum-wc-core/element/index.js';\nimport { SizedMixin } from '@adobe/spectrum-wc-core/mixins/index.js';\nimport { validateEnum, warnIf } from '@adobe/spectrum-wc-core/utils/index.js';\n\nimport {\n STATUS_LIGHT_VALID_SIZES,\n type StatusLightSize,\n type StatusLightVariant,\n} from './StatusLight.types.js';\n\n/**\n * A status light is a great way to convey semantic meaning and the condition of an entity, such as statuses and categories. It provides visual indicators through colored dots accompanied by descriptive text.\n *\n * @slot - The text label of the status light.\n * @attribute {ElementSize} size - The size of the status light.\n */\nexport abstract class StatusLightBase extends SizedMixin(SpectrumElement, {\n validSizes: STATUS_LIGHT_VALID_SIZES,\n noDefaultSize: true,\n}) {\n /**\n * The size of the status light.\n */\n declare public size: StatusLightSize;\n\n // ─────────────────────────\n // API TO OVERRIDE\n // ─────────────────────────\n\n /**\n * @internal\n *\n * A readonly array of the valid color variants for the status light.\n *\n * This is an actual internal property, intended not for customer use\n * but for use in internal validation logic, stories, tests, etc.\n *\n * Because S1 and S2 support different color variants, the value of this\n * property must be set in each subclass.\n */\n static readonly VARIANTS_COLOR: readonly string[];\n\n /**\n * @internal\n *\n * A readonly array of the valid semantic variants for the status light.\n *\n * This is an actual internal property, intended not for customer use\n * but for use in internal validation logic, stories, tests, etc.\n *\n * Because S1 and S2 support different semantic variants, the value of this\n * property must be set in each subclass.\n */\n static readonly VARIANTS_SEMANTIC: readonly string[];\n\n /**\n * @internal\n *\n * A readonly array of all valid variants for the status light.\n *\n * This is an actual internal property, intended not for customer use\n * but for use in internal validation logic, stories, tests, etc.\n *\n * Because S1 and S2 support different variants, the value of this\n * property must be set in each subclass.\n */\n static readonly VARIANTS: readonly string[];\n\n /**\n * @internal\n *\n * The variant of the status light.\n *\n * This is a public property, but its valid values vary between S1 and S2,\n * so the property (and its docs) need to be redefined in each subclass.\n *\n * The type declared here is a union of the valid values for S1 and S2,\n * and should be narrowed in each subclass.\n */\n @property({ type: String, reflect: true })\n public variant: StatusLightVariant = 'neutral';\n\n // ──────────────────────\n // IMPLEMENTATION\n // ──────────────────────\n\n protected override update(changes: PropertyValues): void {\n const constructor = this.constructor as typeof StatusLightBase;\n // @ts-expect-error -- intentional runtime guard: 1st-gen consumers may pass 'accent'\n if (this.variant === 'accent') {\n warnIf(\n this,\n true,\n `<${this.localName}> does not support the \"accent\" variant in Spectrum 2. Use \"neutral\" or \"info\" depending on intent.`,\n 'https://spectrum-web-components.adobe.com/?path=/docs/status-light-migration-guide--docs',\n { level: 'deprecation' }\n );\n } else {\n validateEnum(this, {\n prop: 'variant',\n value: this.variant,\n valid: constructor.VARIANTS,\n url: 'https://spectrum-web-components.adobe.com/?path=/docs/components-status-light--docs',\n });\n }\n warnIf(\n this,\n this.hasAttribute('disabled'),\n `<${this.localName}> does not support the \"disabled\" attribute. It was deprecated in Spectrum 1 and has been removed in Spectrum 2.`,\n 'https://spectrum-web-components.adobe.com/?path=/docs/status-light-migration-guide--docs',\n { level: 'deprecation' }\n );\n\n super.update(changes);\n }\n}\n"],"mappings":";;;;;;;AA8BA,IAAsB,IAAtB,cAA8C,EAAW,GAAiB;CACxE,YAAY;CACZ,eAAe;CAChB,CAAC,CAAC;;8BA6DoC;;CAMrC,OAA0B,GAA+B;EACvD,IAAM,IAAc,KAAK;AA0BzB,EAxBI,KAAK,YAAY,WACnB,EACE,MACA,IACA,IAAI,KAAK,UAAU,sGACnB,4FACA,EAAE,OAAO,eAAe,CACzB,GAED,EAAa,MAAM;GACjB,MAAM;GACN,OAAO,KAAK;GACZ,OAAO,EAAY;GACnB,KAAK;GACN,CAAC,EAEJ,EACE,MACA,KAAK,aAAa,WAAW,EAC7B,IAAI,KAAK,UAAU,mHACnB,4FACA,EAAE,OAAO,eAAe,CACzB,EAED,MAAM,OAAO,EAAQ;;;GAlCtB,EAAS;CAAE,MAAM;CAAQ,SAAS;CAAM,CAAC,CAAA,EAAA,EAAA,WAAA,WAAA,KAAA,EAAA"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Copyright 2026 Adobe. All rights reserved.
3
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
4
+ * you may not use this file except in compliance with the License. You may obtain a copy
5
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0
6
+ *
7
+ * Unless required by applicable law or agreed to in writing, software distributed under
8
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
9
+ * OF ANY KIND, either express or implied. See the License for the specific language
10
+ * governing permissions and limitations under the License.
11
+ */
12
+ export declare const STATUS_LIGHT_VALID_SIZES: readonly ["s", "m", "l", "xl"];
13
+ export declare const STATUS_LIGHT_VARIANTS_SEMANTIC: readonly ["neutral", "info", "positive", "negative", "notice"];
14
+ export declare const STATUS_LIGHT_VARIANTS_COLOR: readonly ["fuchsia", "indigo", "magenta", "purple", "seafoam", "yellow", "chartreuse", "celery", "cyan", "pink", "turquoise", "brown", "cinnamon", "silver"];
15
+ export declare const STATUS_LIGHT_VARIANTS: readonly ["neutral", "info", "positive", "negative", "notice", "fuchsia", "indigo", "magenta", "purple", "seafoam", "yellow", "chartreuse", "celery", "cyan", "pink", "turquoise", "brown", "cinnamon", "silver"];
16
+ export type StatusLightSemanticVariant = (typeof STATUS_LIGHT_VARIANTS_SEMANTIC)[number];
17
+ export type StatusLightColorVariant = (typeof STATUS_LIGHT_VARIANTS_COLOR)[number];
18
+ export type StatusLightVariant = (typeof STATUS_LIGHT_VARIANTS)[number];
19
+ export type StatusLightSize = (typeof STATUS_LIGHT_VALID_SIZES)[number];
@@ -0,0 +1,32 @@
1
+ //#region components/status-light/StatusLight.types.ts
2
+ var e = [
3
+ "s",
4
+ "m",
5
+ "l",
6
+ "xl"
7
+ ], t = [
8
+ "neutral",
9
+ "info",
10
+ "positive",
11
+ "negative",
12
+ "notice"
13
+ ], n = [
14
+ "fuchsia",
15
+ "indigo",
16
+ "magenta",
17
+ "purple",
18
+ "seafoam",
19
+ "yellow",
20
+ "chartreuse",
21
+ "celery",
22
+ "cyan",
23
+ "pink",
24
+ "turquoise",
25
+ "brown",
26
+ "cinnamon",
27
+ "silver"
28
+ ], r = [...t, ...n];
29
+ //#endregion
30
+ export { e as STATUS_LIGHT_VALID_SIZES, r as STATUS_LIGHT_VARIANTS, n as STATUS_LIGHT_VARIANTS_COLOR, t as STATUS_LIGHT_VARIANTS_SEMANTIC };
31
+
32
+ //# sourceMappingURL=StatusLight.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatusLight.types.js","names":[],"sources":["../../../components/status-light/StatusLight.types.ts"],"sourcesContent":["/**\n * Copyright 2026 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport type { ElementSize } from '@adobe/spectrum-wc-core/mixins/index.js';\n\nexport const STATUS_LIGHT_VALID_SIZES = [\n 's',\n 'm',\n 'l',\n 'xl',\n] as const satisfies readonly ElementSize[];\n\nexport const STATUS_LIGHT_VARIANTS_SEMANTIC = [\n 'neutral',\n 'info',\n 'positive',\n 'negative',\n 'notice',\n] as const;\n\nexport const STATUS_LIGHT_VARIANTS_COLOR = [\n 'fuchsia',\n 'indigo',\n 'magenta',\n 'purple',\n 'seafoam',\n 'yellow',\n 'chartreuse',\n 'celery',\n 'cyan',\n 'pink',\n 'turquoise',\n 'brown',\n 'cinnamon',\n 'silver',\n] as const;\n\nexport const STATUS_LIGHT_VARIANTS = [\n ...STATUS_LIGHT_VARIANTS_SEMANTIC,\n ...STATUS_LIGHT_VARIANTS_COLOR,\n] as const;\n\nexport type StatusLightSemanticVariant =\n (typeof STATUS_LIGHT_VARIANTS_SEMANTIC)[number];\n\nexport type StatusLightColorVariant =\n (typeof STATUS_LIGHT_VARIANTS_COLOR)[number];\n\nexport type StatusLightVariant = (typeof STATUS_LIGHT_VARIANTS)[number];\n\nexport type StatusLightSize = (typeof STATUS_LIGHT_VALID_SIZES)[number];\n"],"mappings":";AAcA,IAAa,IAA2B;CACtC;CACA;CACA;CACA;CACD,EAEY,IAAiC;CAC5C;CACA;CACA;CACA;CACA;CACD,EAEY,IAA8B;CACzC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD,EAEY,IAAwB,CACnC,GAAG,GACH,GAAG,EACJ"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Copyright 2026 Adobe. All rights reserved.
3
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
4
+ * you may not use this file except in compliance with the License. You may obtain a copy
5
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0
6
+ *
7
+ * Unless required by applicable law or agreed to in writing, software distributed under
8
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
9
+ * OF ANY KIND, either express or implied. See the License for the specific language
10
+ * governing permissions and limitations under the License.
11
+ */
12
+ export * from './StatusLight.base.js';
13
+ export * from './StatusLight.types.js';
@@ -0,0 +1,3 @@
1
+ import { STATUS_LIGHT_VALID_SIZES as e, STATUS_LIGHT_VARIANTS as t, STATUS_LIGHT_VARIANTS_COLOR as n, STATUS_LIGHT_VARIANTS_SEMANTIC as r } from "./StatusLight.types.js";
2
+ import { StatusLightBase as i } from "./StatusLight.base.js";
3
+ export { e as STATUS_LIGHT_VALID_SIZES, t as STATUS_LIGHT_VARIANTS, n as STATUS_LIGHT_VARIANTS_COLOR, r as STATUS_LIGHT_VARIANTS_SEMANTIC, i as StatusLightBase };
@@ -0,0 +1,49 @@
1
+ import { PropertyValues } from 'lit';
2
+ import { SpectrumElement } from '../../element/index.js';
3
+ /**
4
+ * Base class for an individual tab within a tabbed interface.
5
+ *
6
+ * Manages the tab's selection state, disabled behavior, ARIA
7
+ * attributes, and roving tabindex. Concrete classes supply the
8
+ * stylesheet and render template.
9
+ *
10
+ * Disabled tabs use `aria-disabled="true"` and remain focusable via
11
+ * arrow keys per the ARIA Authoring Practices Guide, but are not
12
+ * activatable (Enter, Space, and click are guarded).
13
+ *
14
+ * @slot - Text label of the tab
15
+ * @slot icon - Optional icon displayed before the label
16
+ */
17
+ export declare abstract class TabBase extends SpectrumElement {
18
+ /**
19
+ * Whether this tab is disabled. Disabled tabs are announced as
20
+ * unavailable by assistive technology and cannot be activated,
21
+ * but remain focusable via arrow keys within the tablist.
22
+ */
23
+ disabled: boolean;
24
+ /**
25
+ * Whether this tab is currently selected. Managed by the parent
26
+ * `swc-tabs` container — consumers should not set this directly.
27
+ * Use `swc-tabs[selected]` instead.
28
+ */
29
+ selected: boolean;
30
+ /**
31
+ * Whether the tab is displayed in vertical orientation.
32
+ *
33
+ * Orientation is primarily driven by the parent `swc-tabs` `direction`
34
+ * attribute; this property remains for styling and any consumers that read
35
+ * it explicitly. We can remove it in a future major once vertical layout is
36
+ * fully parent-driven only—track that cleanup in the component backlog if
37
+ * it becomes redundant in practice.
38
+ */
39
+ vertical: boolean;
40
+ /**
41
+ * Unique identifier for this tab. Used by the parent `swc-tabs`
42
+ * to match this tab to its corresponding `swc-tab-panel`.
43
+ */
44
+ tabId: string;
45
+ protected firstUpdated(changes: PropertyValues): void;
46
+ protected updated(changes: PropertyValues): void;
47
+ private syncAriaSelected;
48
+ private syncAriaDisabled;
49
+ }
@@ -0,0 +1,39 @@
1
+ import { __decorate as e } from "../../_virtual/_@oxc-project_runtime@0.124.0/helpers/decorate.js";
2
+ import { property as t } from "lit/decorators.js";
3
+ import { SpectrumElement as n } from "@adobe/spectrum-wc-core/element/index.js";
4
+ //#region components/tabs/Tab.base.ts
5
+ var r = 0, i = class extends n {
6
+ constructor(...e) {
7
+ super(...e), this.disabled = !1, this.selected = !1, this.vertical = !1, this.tabId = "";
8
+ }
9
+ firstUpdated(e) {
10
+ super.firstUpdated(e), this.setAttribute("role", "tab"), this.hasAttribute("id") || (this.id = `swc-tab-${r++}`), this.syncAriaSelected(), this.syncAriaDisabled(), this.hasAttribute("tabindex") || (this.tabIndex = -1);
11
+ }
12
+ updated(e) {
13
+ super.updated(e), e.has("selected") && this.syncAriaSelected(), e.has("disabled") && this.syncAriaDisabled();
14
+ }
15
+ syncAriaSelected() {
16
+ this.setAttribute("aria-selected", String(this.selected));
17
+ }
18
+ syncAriaDisabled() {
19
+ this.disabled ? this.setAttribute("aria-disabled", "true") : this.removeAttribute("aria-disabled");
20
+ }
21
+ };
22
+ e([t({
23
+ type: Boolean,
24
+ reflect: !0
25
+ })], i.prototype, "disabled", void 0), e([t({
26
+ type: Boolean,
27
+ reflect: !0
28
+ })], i.prototype, "selected", void 0), e([t({
29
+ type: Boolean,
30
+ reflect: !0
31
+ })], i.prototype, "vertical", void 0), e([t({
32
+ type: String,
33
+ reflect: !0,
34
+ attribute: "tab-id"
35
+ })], i.prototype, "tabId", void 0);
36
+ //#endregion
37
+ export { i as TabBase };
38
+
39
+ //# sourceMappingURL=Tab.base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tab.base.js","names":[],"sources":["../../../components/tabs/Tab.base.ts"],"sourcesContent":["/**\n * Copyright 2026 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\nimport { PropertyValues } from 'lit';\nimport { property } from 'lit/decorators.js';\n\nimport { SpectrumElement } from '@adobe/spectrum-wc-core/element/index.js';\n\nlet tabIdCounter = 0;\n\n/**\n * Base class for an individual tab within a tabbed interface.\n *\n * Manages the tab's selection state, disabled behavior, ARIA\n * attributes, and roving tabindex. Concrete classes supply the\n * stylesheet and render template.\n *\n * Disabled tabs use `aria-disabled=\"true\"` and remain focusable via\n * arrow keys per the ARIA Authoring Practices Guide, but are not\n * activatable (Enter, Space, and click are guarded).\n *\n * @slot - Text label of the tab\n * @slot icon - Optional icon displayed before the label\n */\nexport abstract class TabBase extends SpectrumElement {\n // ──────────────────\n // SHARED API\n // ──────────────────\n\n /**\n * Whether this tab is disabled. Disabled tabs are announced as\n * unavailable by assistive technology and cannot be activated,\n * but remain focusable via arrow keys within the tablist.\n */\n @property({ type: Boolean, reflect: true })\n public disabled = false;\n\n /**\n * Whether this tab is currently selected. Managed by the parent\n * `swc-tabs` container — consumers should not set this directly.\n * Use `swc-tabs[selected]` instead.\n */\n @property({ type: Boolean, reflect: true })\n public selected = false;\n\n /**\n * Whether the tab is displayed in vertical orientation.\n *\n * Orientation is primarily driven by the parent `swc-tabs` `direction`\n * attribute; this property remains for styling and any consumers that read\n * it explicitly. We can remove it in a future major once vertical layout is\n * fully parent-driven only—track that cleanup in the component backlog if\n * it becomes redundant in practice.\n */\n @property({ type: Boolean, reflect: true })\n public vertical = false;\n\n /**\n * Unique identifier for this tab. Used by the parent `swc-tabs`\n * to match this tab to its corresponding `swc-tab-panel`.\n */\n @property({ type: String, reflect: true, attribute: 'tab-id' })\n public tabId = '';\n\n // ──────────────────────\n // IMPLEMENTATION\n // ──────────────────────\n\n protected override firstUpdated(changes: PropertyValues): void {\n super.firstUpdated(changes);\n\n this.setAttribute('role', 'tab');\n\n if (!this.hasAttribute('id')) {\n this.id = `swc-tab-${tabIdCounter++}`;\n }\n\n this.syncAriaSelected();\n this.syncAriaDisabled();\n\n // Initial tabindex: -1 by default. The parent TabsBase\n // manages roving tabindex via setRovingTabindex() /\n // updateCheckedState() to ensure exactly one tab has\n // tabindex=\"0\" at all times.\n if (!this.hasAttribute('tabindex')) {\n this.tabIndex = -1;\n }\n }\n\n protected override updated(changes: PropertyValues): void {\n super.updated(changes);\n\n if (changes.has('selected')) {\n this.syncAriaSelected();\n }\n\n if (changes.has('disabled')) {\n this.syncAriaDisabled();\n }\n }\n\n private syncAriaSelected(): void {\n this.setAttribute('aria-selected', String(this.selected));\n }\n\n private syncAriaDisabled(): void {\n if (this.disabled) {\n this.setAttribute('aria-disabled', 'true');\n } else {\n this.removeAttribute('aria-disabled');\n }\n }\n}\n"],"mappings":";;;;AAgBA,IAAI,IAAe,GAgBG,IAAtB,cAAsC,EAAgB;;+BAWlC,oBAQA,oBAYA,iBAOH;;CAMf,aAAgC,GAA+B;AAgB7D,EAfA,MAAM,aAAa,EAAQ,EAE3B,KAAK,aAAa,QAAQ,MAAM,EAE3B,KAAK,aAAa,KAAK,KAC1B,KAAK,KAAK,WAAW,QAGvB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EAMlB,KAAK,aAAa,WAAW,KAChC,KAAK,WAAW;;CAIpB,QAA2B,GAA+B;AAOxD,EANA,MAAM,QAAQ,EAAQ,EAElB,EAAQ,IAAI,WAAW,IACzB,KAAK,kBAAkB,EAGrB,EAAQ,IAAI,WAAW,IACzB,KAAK,kBAAkB;;CAI3B,mBAAiC;AAC/B,OAAK,aAAa,iBAAiB,OAAO,KAAK,SAAS,CAAC;;CAG3D,mBAAiC;AAC/B,EAAI,KAAK,WACP,KAAK,aAAa,iBAAiB,OAAO,GAE1C,KAAK,gBAAgB,gBAAgB;;;GA3ExC,EAAS;CAAE,MAAM;CAAS,SAAS;CAAM,CAAC,CAAA,EAAA,EAAA,WAAA,YAAA,KAAA,EAAA,KAQ1C,EAAS;CAAE,MAAM;CAAS,SAAS;CAAM,CAAC,CAAA,EAAA,EAAA,WAAA,YAAA,KAAA,EAAA,KAY1C,EAAS;CAAE,MAAM;CAAS,SAAS;CAAM,CAAC,CAAA,EAAA,EAAA,WAAA,YAAA,KAAA,EAAA,KAO1C,EAAS;CAAE,MAAM;CAAQ,SAAS;CAAM,WAAW;CAAU,CAAC,CAAA,EAAA,EAAA,WAAA,SAAA,KAAA,EAAA"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Copyright 2026 Adobe. All rights reserved.
3
+ * This file is licensed to you under the Apache License, Version 2.0 (the "License");
4
+ * you may not use this file except in compliance with the License. You may obtain a copy
5
+ * of the License at http://www.apache.org/licenses/LICENSE-2.0
6
+ *
7
+ * Unless required by applicable law or agreed to in writing, software distributed under
8
+ * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
9
+ * OF ANY KIND, either express or implied. See the License for the specific language
10
+ * governing permissions and limitations under the License.
11
+ */
12
+ /**
13
+ * Reserved for future tab-specific type definitions (e.g., icon placement,
14
+ * badge configuration). The file is scaffolded now so imports are stable
15
+ * when implementation work begins.
16
+ */
17
+ export {};
@@ -0,0 +1,49 @@
1
+ import { PropertyValues } from 'lit';
2
+ import { SpectrumElement } from '../../element/index.js';
3
+ /**
4
+ * Base class for a tab panel that displays content associated with
5
+ * a tab.
6
+ *
7
+ * Manages visibility, ARIA hidden state, tabindex, and the
8
+ * focus-in/out behavior that prevents Tab-key trapping inside panel
9
+ * content.
10
+ *
11
+ * In 1st-gen, `slot="tab-panel"` was
12
+ * assigned programmatically in `firstUpdated` so consumers never
13
+ * wrote it in markup. This behavior is preserved in gen2.
14
+ *
15
+ * The panel removes its own
16
+ * `tabindex` on `focusin` so that Tab presses inside the panel
17
+ * move to the next interactive element rather than being trapped.
18
+ * On `focusout`, `tabindex` is restored so the panel remains
19
+ * focusable from the tablist.
20
+ *
21
+ * @slot - Content displayed when the associated tab is selected
22
+ */
23
+ export declare abstract class TabPanelBase extends SpectrumElement {
24
+ /**
25
+ * Whether this panel is currently visible (its associated tab is
26
+ * selected). Managed by the parent `swc-tabs` — consumers should
27
+ * not set this directly.
28
+ */
29
+ selected: boolean;
30
+ /**
31
+ * Unique identifier linking this panel to its corresponding tab.
32
+ * Must match the `tab-id` attribute on the associated `swc-tab`.
33
+ */
34
+ tabId: string;
35
+ /**
36
+ * Removes the panel's `tabindex` while focus is inside the panel
37
+ * so that Tab presses navigate to the next interactive element
38
+ * rather than the panel container itself.
39
+ */
40
+ protected handleFocusin(): void;
41
+ /**
42
+ * Restores `tabindex` when focus leaves the panel so the panel
43
+ * remains directly focusable from the tablist via Tab key.
44
+ */
45
+ protected handleFocusout(): void;
46
+ protected firstUpdated(_changes: PropertyValues): void;
47
+ protected updated(changes: PropertyValues): void;
48
+ private syncVisibility;
49
+ }