@nldd/design-system 0.8.49 → 0.8.51

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 (245) hide show
  1. package/dist/components/actions/button/button.styles.d.ts.map +1 -1
  2. package/dist/components/actions/button/button.styles.js +1 -0
  3. package/dist/components/actions/button/button.styles.js.map +1 -1
  4. package/dist/components/actions/icon-button/icon-button.styles.d.ts.map +1 -1
  5. package/dist/components/actions/icon-button/icon-button.styles.js +1 -0
  6. package/dist/components/actions/icon-button/icon-button.styles.js.map +1 -1
  7. package/dist/components/components.js +93 -86
  8. package/dist/components/content/code-viewer/code-viewer.d.ts +37 -0
  9. package/dist/components/content/code-viewer/code-viewer.d.ts.map +1 -1
  10. package/dist/components/content/code-viewer/code-viewer.i18n.d.ts +8 -0
  11. package/dist/components/content/code-viewer/code-viewer.i18n.d.ts.map +1 -0
  12. package/dist/components/content/code-viewer/code-viewer.i18n.js +7 -0
  13. package/dist/components/content/code-viewer/code-viewer.i18n.js.map +1 -0
  14. package/dist/components/content/code-viewer/code-viewer.js +104 -1
  15. package/dist/components/content/code-viewer/code-viewer.js.map +1 -1
  16. package/dist/components/content/code-viewer/code-viewer.styles.d.ts.map +1 -1
  17. package/dist/components/content/code-viewer/code-viewer.styles.js +112 -1
  18. package/dist/components/content/code-viewer/code-viewer.styles.js.map +1 -1
  19. package/dist/components/content/code-viewer/code-viewer.template.d.ts.map +1 -1
  20. package/dist/components/content/code-viewer/code-viewer.template.js +50 -3
  21. package/dist/components/content/code-viewer/code-viewer.template.js.map +1 -1
  22. package/dist/components/content/icon/icon-aliases.d.ts.map +1 -1
  23. package/dist/components/content/icon/icon-aliases.js +17 -0
  24. package/dist/components/content/icon/icon-aliases.js.map +1 -1
  25. package/dist/components/content/icon/icon-registry.d.ts.map +1 -1
  26. package/dist/components/content/icon/icon-registry.js +12 -0
  27. package/dist/components/content/icon/icon-registry.js.map +1 -1
  28. package/dist/components/content/image/image.d.ts +151 -0
  29. package/dist/components/content/image/image.d.ts.map +1 -0
  30. package/dist/components/content/image/image.i18n.d.ts +8 -0
  31. package/dist/components/content/image/image.i18n.d.ts.map +1 -0
  32. package/dist/components/content/image/image.i18n.js +7 -0
  33. package/dist/components/content/image/image.i18n.js.map +1 -0
  34. package/dist/components/content/image/image.js +320 -0
  35. package/dist/components/content/image/image.js.map +1 -0
  36. package/dist/components/content/image/image.styles.d.ts +2 -0
  37. package/dist/components/content/image/image.styles.d.ts.map +1 -0
  38. package/dist/components/content/image/image.styles.js +402 -0
  39. package/dist/components/content/image/image.styles.js.map +1 -0
  40. package/dist/components/content/image/image.template.d.ts +3 -0
  41. package/dist/components/content/image/image.template.d.ts.map +1 -0
  42. package/dist/components/content/image/image.template.js +109 -0
  43. package/dist/components/content/image/image.template.js.map +1 -0
  44. package/dist/components/content/image/lqip-encoder-element.d.ts +39 -0
  45. package/dist/components/content/image/lqip-encoder-element.d.ts.map +1 -0
  46. package/dist/components/content/image/lqip-encoder-element.js +240 -0
  47. package/dist/components/content/image/lqip-encoder-element.js.map +1 -0
  48. package/dist/components/content/image/lqip-encoder.d.ts +59 -0
  49. package/dist/components/content/image/lqip-encoder.d.ts.map +1 -0
  50. package/dist/components/content/image/lqip-encoder.js +279 -0
  51. package/dist/components/content/image/lqip-encoder.js.map +1 -0
  52. package/dist/components/content/rich-text/rich-text.d.ts +9 -0
  53. package/dist/components/content/rich-text/rich-text.d.ts.map +1 -1
  54. package/dist/components/content/rich-text/rich-text.i18n.d.ts +5 -0
  55. package/dist/components/content/rich-text/rich-text.i18n.d.ts.map +1 -0
  56. package/dist/components/content/rich-text/rich-text.i18n.js +4 -0
  57. package/dist/components/content/rich-text/rich-text.i18n.js.map +1 -0
  58. package/dist/components/content/rich-text/rich-text.js +61 -0
  59. package/dist/components/content/rich-text/rich-text.js.map +1 -1
  60. package/dist/components/content/tooltip/tooltip.d.ts +10 -0
  61. package/dist/components/content/tooltip/tooltip.d.ts.map +1 -1
  62. package/dist/components/content/tooltip/tooltip.js +74 -2
  63. package/dist/components/content/tooltip/tooltip.js.map +1 -1
  64. package/dist/components/{index-BVOcPb8I.js → index-DYnIl3ts.js} +5435 -2205
  65. package/dist/components/index.d.ts +5 -0
  66. package/dist/components/index.d.ts.map +1 -1
  67. package/dist/components/index.js +5 -0
  68. package/dist/components/index.js.map +1 -1
  69. package/dist/components/inputs/checkbox/checkbox.styles.d.ts.map +1 -1
  70. package/dist/components/inputs/checkbox/checkbox.styles.js +1 -0
  71. package/dist/components/inputs/checkbox/checkbox.styles.js.map +1 -1
  72. package/dist/components/inputs/combo-box/combo-box.styles.d.ts.map +1 -1
  73. package/dist/components/inputs/combo-box/combo-box.styles.js +4 -1
  74. package/dist/components/inputs/combo-box/combo-box.styles.js.map +1 -1
  75. package/dist/components/inputs/dropdown/dropdown.styles.d.ts.map +1 -1
  76. package/dist/components/inputs/dropdown/dropdown.styles.js +1 -0
  77. package/dist/components/inputs/dropdown/dropdown.styles.js.map +1 -1
  78. package/dist/components/inputs/multi-line-text-field/multi-line-text-field.styles.d.ts.map +1 -1
  79. package/dist/components/inputs/multi-line-text-field/multi-line-text-field.styles.js +4 -1
  80. package/dist/components/inputs/multi-line-text-field/multi-line-text-field.styles.js.map +1 -1
  81. package/dist/components/inputs/password-field/password-field.styles.d.ts.map +1 -1
  82. package/dist/components/inputs/password-field/password-field.styles.js +4 -1
  83. package/dist/components/inputs/password-field/password-field.styles.js.map +1 -1
  84. package/dist/components/inputs/radio-button/radio-button.styles.d.ts.map +1 -1
  85. package/dist/components/inputs/radio-button/radio-button.styles.js +1 -0
  86. package/dist/components/inputs/radio-button/radio-button.styles.js.map +1 -1
  87. package/dist/components/inputs/search-field/search-field.styles.d.ts.map +1 -1
  88. package/dist/components/inputs/search-field/search-field.styles.js +4 -1
  89. package/dist/components/inputs/search-field/search-field.styles.js.map +1 -1
  90. package/dist/components/inputs/segmented-control/segmented-control.styles.d.ts.map +1 -1
  91. package/dist/components/inputs/segmented-control/segmented-control.styles.js +1 -0
  92. package/dist/components/inputs/segmented-control/segmented-control.styles.js.map +1 -1
  93. package/dist/components/inputs/stepper/stepper.styles.d.ts.map +1 -1
  94. package/dist/components/inputs/stepper/stepper.styles.js +1 -0
  95. package/dist/components/inputs/stepper/stepper.styles.js.map +1 -1
  96. package/dist/components/inputs/switch/switch.styles.d.ts.map +1 -1
  97. package/dist/components/inputs/switch/switch.styles.js +1 -0
  98. package/dist/components/inputs/switch/switch.styles.js.map +1 -1
  99. package/dist/components/inputs/text-field/text-field.styles.d.ts.map +1 -1
  100. package/dist/components/inputs/text-field/text-field.styles.js +4 -1
  101. package/dist/components/inputs/text-field/text-field.styles.js.map +1 -1
  102. package/dist/components/inputs/toggle-button/toggle-button.d.ts +1 -1
  103. package/dist/components/inputs/toggle-button/toggle-button.d.ts.map +1 -1
  104. package/dist/components/inputs/toggle-button/toggle-button.js +22 -14
  105. package/dist/components/inputs/toggle-button/toggle-button.js.map +1 -1
  106. package/dist/components/inputs/toggle-button/toggle-button.styles.d.ts.map +1 -1
  107. package/dist/components/inputs/toggle-button/toggle-button.styles.js +16 -11
  108. package/dist/components/inputs/toggle-button/toggle-button.styles.js.map +1 -1
  109. package/dist/components/inputs/toggle-button/toggle-button.template.d.ts.map +1 -1
  110. package/dist/components/inputs/toggle-button/toggle-button.template.js +32 -16
  111. package/dist/components/inputs/toggle-button/toggle-button.template.js.map +1 -1
  112. package/dist/components/inputs/token/token.styles.d.ts.map +1 -1
  113. package/dist/components/inputs/token/token.styles.js +1 -0
  114. package/dist/components/inputs/token/token.styles.js.map +1 -1
  115. package/dist/components/layout/box/box.d.ts +6 -0
  116. package/dist/components/layout/box/box.d.ts.map +1 -1
  117. package/dist/components/layout/box/box.js +12 -1
  118. package/dist/components/layout/box/box.js.map +1 -1
  119. package/dist/components/layout/box/box.styles.d.ts.map +1 -1
  120. package/dist/components/layout/box/box.styles.js +40 -1
  121. package/dist/components/layout/box/box.styles.js.map +1 -1
  122. package/dist/components/layout/collection/collection.d.ts +1 -0
  123. package/dist/components/layout/collection/collection.d.ts.map +1 -1
  124. package/dist/components/layout/collection/collection.i18n.d.ts +1 -0
  125. package/dist/components/layout/collection/collection.i18n.d.ts.map +1 -1
  126. package/dist/components/layout/collection/collection.i18n.js +1 -0
  127. package/dist/components/layout/collection/collection.i18n.js.map +1 -1
  128. package/dist/components/layout/collection/collection.js +14 -0
  129. package/dist/components/layout/collection/collection.js.map +1 -1
  130. package/dist/components/layout/collection/collection.styles.d.ts.map +1 -1
  131. package/dist/components/layout/collection/collection.styles.js +27 -0
  132. package/dist/components/layout/collection/collection.styles.js.map +1 -1
  133. package/dist/components/layout/collection/collection.template.d.ts.map +1 -1
  134. package/dist/components/layout/collection/collection.template.js +12 -4
  135. package/dist/components/layout/collection/collection.template.js.map +1 -1
  136. package/dist/components/lists-and-menus/list/list.d.ts +10 -3
  137. package/dist/components/lists-and-menus/list/list.d.ts.map +1 -1
  138. package/dist/components/lists-and-menus/list/list.js +8 -3
  139. package/dist/components/lists-and-menus/list/list.js.map +1 -1
  140. package/dist/components/lists-and-menus/list/list.styles.d.ts.map +1 -1
  141. package/dist/components/lists-and-menus/list/list.styles.js +33 -6
  142. package/dist/components/lists-and-menus/list/list.styles.js.map +1 -1
  143. package/dist/components/lists-and-menus/list-item/list-item.js +1 -1
  144. package/dist/components/lists-and-menus/list-item/list-item.js.map +1 -1
  145. package/dist/components/lists-and-menus/menu/menu.styles.d.ts.map +1 -1
  146. package/dist/components/lists-and-menus/menu/menu.styles.js +1 -0
  147. package/dist/components/lists-and-menus/menu/menu.styles.js.map +1 -1
  148. package/dist/components/navigation/document-tab-bar/document-tab-bar.styles.d.ts.map +1 -1
  149. package/dist/components/navigation/document-tab-bar/document-tab-bar.styles.js +1 -0
  150. package/dist/components/navigation/document-tab-bar/document-tab-bar.styles.js.map +1 -1
  151. package/dist/components/navigation/menu-bar/menu-bar.styles.d.ts.map +1 -1
  152. package/dist/components/navigation/menu-bar/menu-bar.styles.js +1 -0
  153. package/dist/components/navigation/menu-bar/menu-bar.styles.js.map +1 -1
  154. package/dist/components/navigation/menu-bar-item/menu-bar-item.styles.d.ts.map +1 -1
  155. package/dist/components/navigation/menu-bar-item/menu-bar-item.styles.js +1 -0
  156. package/dist/components/navigation/menu-bar-item/menu-bar-item.styles.js.map +1 -1
  157. package/dist/components/navigation/pagination/pagination.styles.d.ts.map +1 -1
  158. package/dist/components/navigation/pagination/pagination.styles.js +1 -0
  159. package/dist/components/navigation/pagination/pagination.styles.js.map +1 -1
  160. package/dist/components/navigation/tab-bar/tab-bar.styles.d.ts.map +1 -1
  161. package/dist/components/navigation/tab-bar/tab-bar.styles.js +1 -0
  162. package/dist/components/navigation/tab-bar/tab-bar.styles.js.map +1 -1
  163. package/dist/components/navigation/top-navigation-bar/top-navigation-bar.styles.d.ts.map +1 -1
  164. package/dist/components/navigation/top-navigation-bar/top-navigation-bar.styles.js +10 -1
  165. package/dist/components/navigation/top-navigation-bar/top-navigation-bar.styles.js.map +1 -1
  166. package/dist/components/{prism-python-C1D7CYBc.js → prism-python-C9GXiQLy.js} +1 -1
  167. package/dist/components/{prism-rust-DI5vrP6V.js → prism-rust-De_U8Otq.js} +1 -1
  168. package/dist/components/{prism-typescript-DBgOPJ4M.js → prism-typescript-BJbUDHsa.js} +1 -1
  169. package/dist/components/sample-images/butterfly-1200.jpg +0 -0
  170. package/dist/components/sample-images/butterfly-1600.jpg +0 -0
  171. package/dist/components/sample-images/butterfly-480.jpg +0 -0
  172. package/dist/components/sample-images/butterfly-960.jpg +0 -0
  173. package/dist/components/status-and-feedback/badge/badge.d.ts +2 -2
  174. package/dist/components/status-and-feedback/badge/badge.d.ts.map +1 -1
  175. package/dist/components/status-and-feedback/badge/badge.js +1 -1
  176. package/dist/components/status-and-feedback/badge/badge.js.map +1 -1
  177. package/dist/components/status-and-feedback/badge/badge.styles.d.ts.map +1 -1
  178. package/dist/components/status-and-feedback/badge/badge.styles.js +126 -1
  179. package/dist/components/status-and-feedback/badge/badge.styles.js.map +1 -1
  180. package/dist/components/status-and-feedback/banner/banner.d.ts +89 -0
  181. package/dist/components/status-and-feedback/banner/banner.d.ts.map +1 -0
  182. package/dist/components/status-and-feedback/banner/banner.i18n.d.ts +5 -0
  183. package/dist/components/status-and-feedback/banner/banner.i18n.d.ts.map +1 -0
  184. package/dist/components/status-and-feedback/banner/banner.i18n.js +4 -0
  185. package/dist/components/status-and-feedback/banner/banner.i18n.js.map +1 -0
  186. package/dist/components/status-and-feedback/banner/banner.js +206 -0
  187. package/dist/components/status-and-feedback/banner/banner.js.map +1 -0
  188. package/dist/components/status-and-feedback/banner/banner.styles.d.ts +2 -0
  189. package/dist/components/status-and-feedback/banner/banner.styles.d.ts.map +1 -0
  190. package/dist/components/status-and-feedback/banner/banner.styles.js +160 -0
  191. package/dist/components/status-and-feedback/banner/banner.styles.js.map +1 -0
  192. package/dist/components/status-and-feedback/banner/banner.template.d.ts +3 -0
  193. package/dist/components/status-and-feedback/banner/banner.template.d.ts.map +1 -0
  194. package/dist/components/status-and-feedback/banner/banner.template.js +51 -0
  195. package/dist/components/status-and-feedback/banner/banner.template.js.map +1 -0
  196. package/dist/components/status-and-feedback/progress/progress.d.ts +77 -0
  197. package/dist/components/status-and-feedback/progress/progress.d.ts.map +1 -0
  198. package/dist/components/status-and-feedback/progress/progress.i18n.d.ts +5 -0
  199. package/dist/components/status-and-feedback/progress/progress.i18n.d.ts.map +1 -0
  200. package/dist/components/status-and-feedback/progress/progress.i18n.js +4 -0
  201. package/dist/components/status-and-feedback/progress/progress.i18n.js.map +1 -0
  202. package/dist/components/status-and-feedback/progress/progress.js +137 -0
  203. package/dist/components/status-and-feedback/progress/progress.js.map +1 -0
  204. package/dist/components/status-and-feedback/progress/progress.styles.d.ts +2 -0
  205. package/dist/components/status-and-feedback/progress/progress.styles.d.ts.map +1 -0
  206. package/dist/components/status-and-feedback/progress/progress.styles.js +57 -0
  207. package/dist/components/status-and-feedback/progress/progress.styles.js.map +1 -0
  208. package/dist/components/status-and-feedback/progress/progress.template.d.ts +4 -0
  209. package/dist/components/status-and-feedback/progress/progress.template.d.ts.map +1 -0
  210. package/dist/components/status-and-feedback/progress/progress.template.js +26 -0
  211. package/dist/components/status-and-feedback/progress/progress.template.js.map +1 -0
  212. package/dist/components/status-and-feedback/progress-bar/progress-bar.d.ts +131 -0
  213. package/dist/components/status-and-feedback/progress-bar/progress-bar.d.ts.map +1 -0
  214. package/dist/components/status-and-feedback/progress-bar/progress-bar.i18n.d.ts +8 -0
  215. package/dist/components/status-and-feedback/progress-bar/progress-bar.i18n.d.ts.map +1 -0
  216. package/dist/components/status-and-feedback/progress-bar/progress-bar.i18n.js +7 -0
  217. package/dist/components/status-and-feedback/progress-bar/progress-bar.i18n.js.map +1 -0
  218. package/dist/components/status-and-feedback/progress-bar/progress-bar.js +426 -0
  219. package/dist/components/status-and-feedback/progress-bar/progress-bar.js.map +1 -0
  220. package/dist/components/status-and-feedback/progress-bar/progress-bar.styles.d.ts +3 -0
  221. package/dist/components/status-and-feedback/progress-bar/progress-bar.styles.d.ts.map +1 -0
  222. package/dist/components/status-and-feedback/progress-bar/progress-bar.styles.js +400 -0
  223. package/dist/components/status-and-feedback/progress-bar/progress-bar.styles.js.map +1 -0
  224. package/dist/components/status-and-feedback/progress-bar/progress-bar.template.d.ts +3 -0
  225. package/dist/components/status-and-feedback/progress-bar/progress-bar.template.d.ts.map +1 -0
  226. package/dist/components/status-and-feedback/progress-bar/progress-bar.template.js +60 -0
  227. package/dist/components/status-and-feedback/progress-bar/progress-bar.template.js.map +1 -0
  228. package/dist/components/status-and-feedback/progress-circle/progress-circle.d.ts +132 -0
  229. package/dist/components/status-and-feedback/progress-circle/progress-circle.d.ts.map +1 -0
  230. package/dist/components/status-and-feedback/progress-circle/progress-circle.i18n.d.ts +8 -0
  231. package/dist/components/status-and-feedback/progress-circle/progress-circle.i18n.d.ts.map +1 -0
  232. package/dist/components/status-and-feedback/progress-circle/progress-circle.i18n.js +7 -0
  233. package/dist/components/status-and-feedback/progress-circle/progress-circle.i18n.js.map +1 -0
  234. package/dist/components/status-and-feedback/progress-circle/progress-circle.js +437 -0
  235. package/dist/components/status-and-feedback/progress-circle/progress-circle.js.map +1 -0
  236. package/dist/components/status-and-feedback/progress-circle/progress-circle.styles.d.ts +3 -0
  237. package/dist/components/status-and-feedback/progress-circle/progress-circle.styles.d.ts.map +1 -0
  238. package/dist/components/status-and-feedback/progress-circle/progress-circle.styles.js +245 -0
  239. package/dist/components/status-and-feedback/progress-circle/progress-circle.styles.js.map +1 -0
  240. package/dist/components/status-and-feedback/progress-circle/progress-circle.template.d.ts +14 -0
  241. package/dist/components/status-and-feedback/progress-circle/progress-circle.template.d.ts.map +1 -0
  242. package/dist/components/status-and-feedback/progress-circle/progress-circle.template.js +115 -0
  243. package/dist/components/status-and-feedback/progress-circle/progress-circle.template.js.map +1 -0
  244. package/dist/css/settings.css +346 -18
  245. package/package.json +21 -1
@@ -0,0 +1,245 @@
1
+ import { css } from 'lit';
2
+ export const progressCircleStyles = css `
3
+
4
+
5
+ /* # Host */
6
+
7
+ :host {
8
+ --_size: var(--primitives-space-28);
9
+ /* SVG viewBox is 100×100 user units. To get a visual {N}px stroke at any
10
+ rendered size, the user-unit stroke-width must scale up by 100/size.
11
+ Per-size overrides below set the appropriate value. Stroke width
12
+ grows with circle size — must match getStrokeWidthPx() in the
13
+ template file. */
14
+ --_stroke-width: calc(4px * 100 / 28);
15
+ --_track-color: var(--components-progress-circle-track-color);
16
+ --_track-border-color: var(--components-progress-circle-track-border-color);
17
+ --_label-gap: var(--components-progress-circle-label-gap);
18
+ --_label-color: var(--components-progress-circle-label-color);
19
+ --_label-font: var(--components-progress-circle-label-font);
20
+
21
+ box-sizing: border-box;
22
+ display: inline-flex;
23
+ flex-direction: column;
24
+ align-items: center;
25
+ gap: var(--_label-gap);
26
+ }
27
+
28
+ :host([hidden]) {
29
+ display: none;
30
+ }
31
+
32
+ :host([size="16"]) { --_size: var(--primitives-space-16); --_stroke-width: calc(3px * 100 / 16); }
33
+ :host([size="20"]) { --_size: var(--primitives-space-20); --_stroke-width: calc(3px * 100 / 20); }
34
+ :host([size="24"]) { --_size: var(--primitives-space-24); --_stroke-width: calc(4px * 100 / 24); }
35
+ :host([size="28"]) { --_size: var(--primitives-space-28); --_stroke-width: calc(4px * 100 / 28); }
36
+ :host([size="32"]) { --_size: var(--primitives-space-32); --_stroke-width: calc(4px * 100 / 32); }
37
+ :host([size="40"]) { --_size: var(--primitives-space-40); --_stroke-width: calc(4px * 100 / 40); }
38
+ :host([size="44"]) { --_size: var(--primitives-space-44); --_stroke-width: calc(5px * 100 / 44); }
39
+ :host([size="48"]) { --_size: var(--primitives-space-48); --_stroke-width: calc(5px * 100 / 48); }
40
+ :host([size="56"]) { --_size: var(--primitives-space-56); --_stroke-width: calc(6px * 100 / 56); }
41
+ :host([size="64"]) { --_size: var(--primitives-space-64); --_stroke-width: calc(6px * 100 / 64); }
42
+ :host([size="80"]) { --_size: var(--primitives-space-80); --_stroke-width: calc(6px * 100 / 80); }
43
+ :host([size="96"]) { --_size: var(--primitives-space-96); --_stroke-width: calc(6px * 100 / 96); }
44
+
45
+
46
+ /* # SVG wrapper */
47
+
48
+ .progress-circle__circle {
49
+ display: block;
50
+ position: relative;
51
+ width: var(--_size);
52
+ height: var(--_size);
53
+ }
54
+
55
+ .progress-circle__svg {
56
+ display: block;
57
+ width: 100%;
58
+ height: 100%;
59
+ /* Start segments at 12 o'clock instead of the default 3 o'clock. */
60
+ transform: rotate(-90deg);
61
+ }
62
+
63
+
64
+ /* # Track ring (background)
65
+ vector-effect: non-scaling-stroke keeps the stroke at its specified
66
+ CSS pixel width regardless of the viewBox-to-rendered-size ratio,
67
+ so a 4px stroke is always 4 actual pixels at any circle size. */
68
+
69
+ .progress-circle__track {
70
+ stroke: var(--_track-color);
71
+ stroke-width: var(--_stroke-width);
72
+ }
73
+
74
+
75
+ /* # Arc segments
76
+ Animate value changes smoothly via stroke-dasharray transition.
77
+ Crossfade with the indeterminate indicator uses opacity on the SVG group. */
78
+
79
+ .progress-circle__segment {
80
+ stroke-width: var(--_stroke-width);
81
+ opacity: 1;
82
+ transition: stroke-dasharray var(--primitives-transition-duration-slow) ease-out, stroke-dashoffset var(--primitives-transition-duration-slow) ease-out, opacity var(--primitives-transition-duration-slow) ease-out;
83
+ }
84
+
85
+ .progress-circle__segment[data-shrink] {
86
+ opacity: 0;
87
+ }
88
+
89
+ /* Progress mode: rounded caps for friendly segment ends. The JS gap
90
+ calculation compensates for the half-stroke-width extension so the
91
+ visible gap between segments stays consistent.
92
+ Distribution mode: butt caps keep the segment boundaries crisp. */
93
+
94
+ .progress-circle__segment {
95
+ stroke-linecap: round;
96
+ }
97
+
98
+ :host([mode="distribution"]) .progress-circle__segment {
99
+ stroke-linecap: butt;
100
+ }
101
+
102
+
103
+ /* ## Arc color per variant */
104
+
105
+ .progress-circle__segment--neutral { stroke: var(--components-progress-circle-neutral-fill-color); }
106
+ .progress-circle__segment--accent { stroke: var(--components-progress-circle-accent-fill-color); }
107
+ .progress-circle__segment--success { stroke: var(--components-progress-circle-success-fill-color); }
108
+ .progress-circle__segment--warning { stroke: var(--components-progress-circle-warning-fill-color); }
109
+ .progress-circle__segment--critical { stroke: var(--components-progress-circle-critical-fill-color); }
110
+ .progress-circle__segment--coolgray { stroke: var(--components-progress-circle-coolgray-fill-color); }
111
+ .progress-circle__segment--lintblauw { stroke: var(--components-progress-circle-lintblauw-fill-color); }
112
+ .progress-circle__segment--donkerblauw { stroke: var(--components-progress-circle-donkerblauw-fill-color); }
113
+ .progress-circle__segment--hemelblauw { stroke: var(--components-progress-circle-hemelblauw-fill-color); }
114
+ .progress-circle__segment--lichtblauw { stroke: var(--components-progress-circle-lichtblauw-fill-color); }
115
+ .progress-circle__segment--paars { stroke: var(--components-progress-circle-paars-fill-color); }
116
+ .progress-circle__segment--violet { stroke: var(--components-progress-circle-violet-fill-color); }
117
+ .progress-circle__segment--robijnrood { stroke: var(--components-progress-circle-robijnrood-fill-color); }
118
+ .progress-circle__segment--roze { stroke: var(--components-progress-circle-roze-fill-color); }
119
+ .progress-circle__segment--rood { stroke: var(--components-progress-circle-rood-fill-color); }
120
+ .progress-circle__segment--oranje { stroke: var(--components-progress-circle-oranje-fill-color); }
121
+ .progress-circle__segment--donkergeel { stroke: var(--components-progress-circle-donkergeel-fill-color); }
122
+ .progress-circle__segment--geel { stroke: var(--components-progress-circle-geel-fill-color); }
123
+ .progress-circle__segment--donkerbruin { stroke: var(--components-progress-circle-donkerbruin-fill-color); }
124
+ .progress-circle__segment--bruin { stroke: var(--components-progress-circle-bruin-fill-color); }
125
+ .progress-circle__segment--donkergroen { stroke: var(--components-progress-circle-donkergroen-fill-color); }
126
+ .progress-circle__segment--groen { stroke: var(--components-progress-circle-groen-fill-color); }
127
+ .progress-circle__segment--mosgroen { stroke: var(--components-progress-circle-mosgroen-fill-color); }
128
+ .progress-circle__segment--mintgroen { stroke: var(--components-progress-circle-mintgroen-fill-color); }
129
+
130
+
131
+ /* # Spinner (indeterminate)
132
+ GitHub-style: a fixed-width arc (25 / 100 = quarter turn, 90°) that
133
+ simply rotates around the circle. Calmer than Material's elastic
134
+ grow + shrink, which at small sizes (default 28 px) reads as visually
135
+ busy. pathLength="100" on the indicator normalises the dash pattern
136
+ to percentages of the circumference so the same numbers stay correct
137
+ at every size. transform-origin centres the rotation. */
138
+
139
+ .progress-circle__indeterminate-indicator {
140
+ stroke-width: var(--_stroke-width);
141
+ stroke-dasharray: 25 100;
142
+ stroke-dashoffset: 0;
143
+ stroke: var(--_indeterminate-fill-color);
144
+ opacity: 1;
145
+ transform-origin: 50% 50%;
146
+ transition: opacity var(--primitives-transition-duration-slow) ease-out;
147
+ animation: progress-circle-indeterminate-indicator-rotate 1s linear infinite;
148
+ }
149
+
150
+ .progress-circle__indeterminate-indicator[data-fade="out"] {
151
+ opacity: 0;
152
+ }
153
+
154
+ @keyframes progress-circle-indeterminate-indicator-rotate {
155
+ 100% { transform: rotate(360deg); }
156
+ }
157
+
158
+
159
+ /* # Indeterminate fill colour follows the color variant; default accent (blue) */
160
+
161
+ :host {
162
+ --_indeterminate-fill-color: var(--components-progress-circle-accent-fill-color);
163
+ }
164
+
165
+ :host([color="neutral"]) { --_indeterminate-fill-color: var(--components-progress-circle-neutral-fill-color); }
166
+ :host([color="accent"]) { --_indeterminate-fill-color: var(--components-progress-circle-accent-fill-color); }
167
+ :host([color="success"]) { --_indeterminate-fill-color: var(--components-progress-circle-success-fill-color); }
168
+ :host([color="warning"]) { --_indeterminate-fill-color: var(--components-progress-circle-warning-fill-color); }
169
+ :host([color="critical"]) { --_indeterminate-fill-color: var(--components-progress-circle-critical-fill-color); }
170
+ :host([color="coolgray"]) { --_indeterminate-fill-color: var(--components-progress-circle-coolgray-fill-color); }
171
+ :host([color="lintblauw"]) { --_indeterminate-fill-color: var(--components-progress-circle-lintblauw-fill-color); }
172
+ :host([color="donkerblauw"]) { --_indeterminate-fill-color: var(--components-progress-circle-donkerblauw-fill-color); }
173
+ :host([color="hemelblauw"]) { --_indeterminate-fill-color: var(--components-progress-circle-hemelblauw-fill-color); }
174
+ :host([color="lichtblauw"]) { --_indeterminate-fill-color: var(--components-progress-circle-lichtblauw-fill-color); }
175
+ :host([color="paars"]) { --_indeterminate-fill-color: var(--components-progress-circle-paars-fill-color); }
176
+ :host([color="violet"]) { --_indeterminate-fill-color: var(--components-progress-circle-violet-fill-color); }
177
+ :host([color="robijnrood"]) { --_indeterminate-fill-color: var(--components-progress-circle-robijnrood-fill-color); }
178
+ :host([color="roze"]) { --_indeterminate-fill-color: var(--components-progress-circle-roze-fill-color); }
179
+ :host([color="rood"]) { --_indeterminate-fill-color: var(--components-progress-circle-rood-fill-color); }
180
+ :host([color="oranje"]) { --_indeterminate-fill-color: var(--components-progress-circle-oranje-fill-color); }
181
+ :host([color="donkergeel"]) { --_indeterminate-fill-color: var(--components-progress-circle-donkergeel-fill-color); }
182
+ :host([color="geel"]) { --_indeterminate-fill-color: var(--components-progress-circle-geel-fill-color); }
183
+ :host([color="donkerbruin"]) { --_indeterminate-fill-color: var(--components-progress-circle-donkerbruin-fill-color); }
184
+ :host([color="bruin"]) { --_indeterminate-fill-color: var(--components-progress-circle-bruin-fill-color); }
185
+ :host([color="donkergroen"]) { --_indeterminate-fill-color: var(--components-progress-circle-donkergroen-fill-color); }
186
+ :host([color="groen"]) { --_indeterminate-fill-color: var(--components-progress-circle-groen-fill-color); }
187
+ :host([color="mosgroen"]) { --_indeterminate-fill-color: var(--components-progress-circle-mosgroen-fill-color); }
188
+ :host([color="mintgroen"]) { --_indeterminate-fill-color: var(--components-progress-circle-mintgroen-fill-color); }
189
+
190
+
191
+ /* # Label */
192
+
193
+ .progress-circle__text {
194
+ color: var(--_label-color);
195
+ font: var(--_label-font);
196
+ text-align: center;
197
+ }
198
+
199
+
200
+ /* # Slot
201
+ Segment children are data-only; hide them visually but keep them in
202
+ the DOM so consumers can mutate values. */
203
+
204
+ slot {
205
+ display: none;
206
+ }
207
+
208
+
209
+ /* # Accessibility */
210
+
211
+ @media (prefers-reduced-motion: reduce) {
212
+ .progress-circle__indeterminate-indicator {
213
+ /* Static arc with the same 25 / 100 dash pattern as the full-motion
214
+ spinner — only the rotation is removed and an opacity pulse
215
+ takes its place. Keeping the dasharray identical means the
216
+ placeholder shape doesn't visibly jump when a user toggles
217
+ reduce-motion at runtime. */
218
+ animation: progress-circle-indeterminate-indicator-pulse 2s ease-in-out infinite;
219
+ }
220
+
221
+ @keyframes progress-circle-indeterminate-indicator-pulse {
222
+ 0%, 100% { opacity: 0.3; }
223
+ 50% { opacity: 0.7; }
224
+ }
225
+
226
+ .progress-circle__segment {
227
+ transition: none;
228
+ animation: none;
229
+ }
230
+ }
231
+
232
+ @media (forced-colors: active) {
233
+ .progress-circle__track,
234
+ .progress-circle__segment,
235
+ .progress-circle__indeterminate-indicator {
236
+ stroke: CanvasText;
237
+ }
238
+ }
239
+ `;
240
+ export const progressCircleSegmentStyles = css `
241
+ :host {
242
+ display: none;
243
+ }
244
+ `;
245
+ //# sourceMappingURL=progress-circle.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"progress-circle.styles.js","sourceRoot":"","sources":["../../../../src/components/status-and-feedback/progress-circle/progress-circle.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6OtC,CAAC;AAGF,MAAM,CAAC,MAAM,2BAA2B,GAAG,GAAG,CAAA;;;;CAI7C,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { NLDDProgressCircle } from './progress-circle.js';
2
+ export declare function getStrokeWidthPx(sizeInPixels: number): number;
3
+ export declare function getRadius(sizeInPixels: number): number;
4
+ export declare function getCircumference(sizeInPixels: number): number;
5
+ /**
6
+ * Lit template — renders the full SVG structure including one `<circle>` per
7
+ * segment and (when needed) an indeterminate indicator. The dynamic per-render
8
+ * attributes (stroke-dasharray, stroke-dashoffset, data-shrink, data-fade) are
9
+ * NOT set here — they're applied by the component's _syncDynamicAttributes()
10
+ * in the updated() lifecycle. Keeping them out of the Lit binding avoids the
11
+ * SVG attribute removal quirks that bit us earlier.
12
+ */
13
+ export declare function progressCircleTemplate(component: NLDDProgressCircle, onSlotChange: () => void): import("lit-html").TemplateResult<1>;
14
+ //# sourceMappingURL=progress-circle.template.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"progress-circle.template.d.ts","sourceRoot":"","sources":["../../../../src/components/status-and-feedback/progress-circle/progress-circle.template.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAW/D,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAK7D;AAED,wBAAgB,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAGtD;AAED,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,IAAI,wCA8E7F"}
@@ -0,0 +1,115 @@
1
+ import { html, svg, nothing } from 'lit';
2
+ import { ifDefined } from 'lit/directives/if-defined.js';
3
+ // SVG geometry: viewBox 100×100, ring centred. The stroke would extend
4
+ // half-width past the path on each side; at small sizes that half-stroke is
5
+ // large in user units (size 16, stroke 2px → 12.5u, half = 6.25u) and could
6
+ // clip outside the viewBox. So radius shrinks with size so that the stroke's
7
+ // outer edge aligns with the viewBox edge (50u from centre).
8
+ //
9
+ // Stroke width scales with circle size for visual harmony — thin strokes look
10
+ // out of place on a huge ring and thick strokes overpower a tiny ring. Must
11
+ // stay in sync with the per-size --_stroke-width rules in the stylesheet.
12
+ export function getStrokeWidthPx(sizeInPixels) {
13
+ if (sizeInPixels <= 20)
14
+ return 3;
15
+ if (sizeInPixels <= 40)
16
+ return 4;
17
+ if (sizeInPixels <= 48)
18
+ return 5;
19
+ return 6;
20
+ }
21
+ export function getRadius(sizeInPixels) {
22
+ const strokeWidthUserUnits = getStrokeWidthPx(sizeInPixels) * 100 / sizeInPixels;
23
+ return 50 - strokeWidthUserUnits / 2;
24
+ }
25
+ export function getCircumference(sizeInPixels) {
26
+ return 2 * Math.PI * getRadius(sizeInPixels);
27
+ }
28
+ /**
29
+ * Lit template — renders the full SVG structure including one `<circle>` per
30
+ * segment and (when needed) an indeterminate indicator. The dynamic per-render
31
+ * attributes (stroke-dasharray, stroke-dashoffset, data-shrink, data-fade) are
32
+ * NOT set here — they're applied by the component's _syncDynamicAttributes()
33
+ * in the updated() lifecycle. Keeping them out of the Lit binding avoids the
34
+ * SVG attribute removal quirks that bit us earlier.
35
+ */
36
+ export function progressCircleTemplate(component, onSlotChange) {
37
+ const tooltipText = component._tooltipText;
38
+ const ariaText = component._ariaValueText;
39
+ // Round so aria-valuenow doesn't produce floats (some screenreaders
40
+ // read them out literally — "49 point 999 percent").
41
+ const ariaValueNow = component.indeterminate ? undefined : Math.round(component._totalValue);
42
+ const isExiting = component._indeterminateExiting;
43
+ const isIndeterminate = (component.indeterminate || isExiting) && !component._hasSegments;
44
+ const showArcs = !component.indeterminate || component._indeterminateEntering;
45
+ const arcs = showArcs ? component._buildArcs() : [];
46
+ const sizeInPixels = Number(component.size) || 28;
47
+ const radius = getRadius(sizeInPixels);
48
+ const circumference = getCircumference(sizeInPixels);
49
+ // Accessible name: use aria-label with the visible label text or a
50
+ // translated fallback. aria-labelledby would be cleaner but VoiceOver on
51
+ // Safari can't resolve IDREFs scoped to a shadow root, so we duplicate
52
+ // the string into aria-label for cross-browser screen-reader support.
53
+ const ariaLabel = component.text || component._t('components.progress-circle.label-text');
54
+ const circle = html `
55
+ <div class="progress-circle__circle"
56
+ role="progressbar"
57
+ aria-label=${ariaLabel}
58
+ aria-valuemin="0"
59
+ aria-valuemax=${component.max}
60
+ aria-valuenow=${ifDefined(ariaValueNow)}
61
+ aria-valuetext=${ariaText}
62
+ >
63
+ <svg class="progress-circle__svg"
64
+ viewBox="0 0 100 100"
65
+ aria-hidden="true"
66
+ >
67
+ <circle class="progress-circle__track"
68
+ cx="50"
69
+ cy="50"
70
+ r=${radius}
71
+ fill="none"
72
+ ></circle>
73
+ <g class="progress-circle__segments">
74
+ ${arcs.map(arc => svg `
75
+ <circle class="progress-circle__segment progress-circle__segment--${arc.color}"
76
+ cx="50"
77
+ cy="50"
78
+ r=${radius}
79
+ fill="none"
80
+ stroke-dasharray="${arc.length} ${circumference}"
81
+ stroke-dashoffset=${-arc.offset}
82
+ ></circle>
83
+ `)}
84
+ </g>
85
+ ${isIndeterminate ? svg `
86
+ <circle class="progress-circle__indeterminate-indicator"
87
+ cx="50"
88
+ cy="50"
89
+ r=${radius}
90
+ fill="none"
91
+ pathLength="100"
92
+ stroke-linecap="round"
93
+ ></circle>
94
+ ` : nothing}
95
+ </svg>
96
+ </div>
97
+ `;
98
+ // Skip the tooltip wrapper entirely when there's no text (value-format
99
+ // 'none' with no override) so consumers don't get an inert tooltip.
100
+ const wrappedCircle = tooltipText
101
+ ? html `
102
+ <nldd-tooltip
103
+ text=${tooltipText}
104
+ placement="top"
105
+ timing="instant"
106
+ >${circle}</nldd-tooltip>
107
+ `
108
+ : circle;
109
+ return html `
110
+ ${wrappedCircle}
111
+ <slot @slotchange=${onSlotChange}></slot>
112
+ ${component.text ? html `<span class="progress-circle__text">${component.text}</span>` : nothing}
113
+ `;
114
+ }
115
+ //# sourceMappingURL=progress-circle.template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"progress-circle.template.js","sourceRoot":"","sources":["../../../../src/components/status-and-feedback/progress-circle/progress-circle.template.ts"],"names":[],"mappings":"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"}