lintje 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (252) hide show
  1. package/README.md +1 -1
  2. package/dist-elements/actions.js +1 -1
  3. package/dist-elements/chunks/{base-CbmWxUig.js → base-DRGvkF-r.js} +90 -87
  4. package/dist-elements/chunks/{controls-DxmnDSBr.js → controls-_4ac1Lpz.js} +1 -1
  5. package/dist-elements/chunks/{date-format-mHtZyBys.js → date-format-DxP9yfDp.js} +1 -1
  6. package/dist-elements/chunks/{dialog-DChINFxD.js → dialog-B7aRBtjy.js} +2 -2
  7. package/dist-elements/chunks/{disclosure-DLkXPUpV.js → disclosure-DirPLy2E.js} +1 -1
  8. package/dist-elements/chunks/download-C68kcwPj.js +206 -0
  9. package/dist-elements/chunks/{focus-trap-BwOxE5BX.js → focus-trap-Dv8zu64A.js} +1 -1
  10. package/dist-elements/chunks/input-BGMLam-O.js +195 -0
  11. package/dist-elements/chunks/input-lQTmOMOz.js +4 -0
  12. package/dist-elements/chunks/{player-B8QXJ0Z5.js → player-BApadXr8.js} +2 -2
  13. package/dist-elements/chunks/{sentence-B19AyZBS.js → sentence-0wO85ZdJ.js} +1 -1
  14. package/dist-elements/chunks/{stagger-BHoOgy0g.js → stagger-BB_gcxBI.js} +55 -47
  15. package/dist-elements/content.js +1 -0
  16. package/dist-elements/core.js +1 -1
  17. package/dist-elements/custom-elements.json +7635 -6802
  18. package/dist-elements/data-types.json +130 -28
  19. package/dist-elements/feedback.js +1 -1
  20. package/dist-elements/guides/loading.md +3 -3
  21. package/dist-elements/inputs.js +1 -0
  22. package/dist-elements/layout.js +1 -1
  23. package/dist-elements/lintje.js +6301 -5732
  24. package/dist-elements/overlays.js +1 -1
  25. package/dist-elements/tag/activity-log.js +1 -1
  26. package/dist-elements/tag/ai-label.js +1 -1
  27. package/dist-elements/tag/announcement.js +2 -2
  28. package/dist-elements/tag/app-search.js +2 -2
  29. package/dist-elements/tag/audio-player.js +2 -2
  30. package/dist-elements/tag/badge.d.ts +1 -1
  31. package/dist-elements/tag/badge.js +1 -1
  32. package/dist-elements/tag/breadcrumbs.js +1 -1
  33. package/dist-elements/tag/button.d.ts +1 -1
  34. package/dist-elements/tag/button.js +1 -1
  35. package/dist-elements/tag/card-list.js +1 -1
  36. package/dist-elements/tag/card.js +1 -1
  37. package/dist-elements/tag/chart.js +721 -406
  38. package/dist-elements/tag/chat-answer.js +2 -2
  39. package/dist-elements/tag/chat-composer.js +1 -1
  40. package/dist-elements/tag/chat-message.js +1 -1
  41. package/dist-elements/tag/chat-strip.js +1 -1
  42. package/dist-elements/tag/chat-suggestions.js +1 -1
  43. package/dist-elements/tag/chat.js +1 -1
  44. package/dist-elements/tag/checkbox-group.js +3 -2
  45. package/dist-elements/tag/checkbox.js +3 -2
  46. package/dist-elements/tag/code.js +1 -1
  47. package/dist-elements/tag/combobox.js +11 -10
  48. package/dist-elements/tag/conflict-alert.js +1 -1
  49. package/dist-elements/tag/copy-button.js +1 -1
  50. package/dist-elements/tag/data-table.js +137 -137
  51. package/dist-elements/tag/date-input.js +14 -13
  52. package/dist-elements/tag/date-range.js +5 -4
  53. package/dist-elements/tag/description-list.js +1 -1
  54. package/dist-elements/tag/dialog.js +4 -4
  55. package/dist-elements/tag/document-viewer.js +1 -1
  56. package/dist-elements/tag/drawer.js +3 -3
  57. package/dist-elements/tag/empty-state.js +1 -1
  58. package/dist-elements/tag/error-page.js +1 -1
  59. package/dist-elements/tag/error-summary.js +2 -2
  60. package/dist-elements/tag/expander.js +2 -2
  61. package/dist-elements/tag/explainer.js +2 -2
  62. package/dist-elements/tag/field.js +1 -1
  63. package/dist-elements/tag/file-upload.js +4 -3
  64. package/dist-elements/tag/filter-bar.js +2 -2
  65. package/dist-elements/tag/filter-sheet.js +3 -3
  66. package/dist-elements/tag/filter-zone.js +2 -2
  67. package/dist-elements/tag/find.d.ts +1 -0
  68. package/dist-elements/tag/find.js +128 -0
  69. package/dist-elements/tag/footer.js +1 -1
  70. package/dist-elements/tag/form-actions.js +2 -2
  71. package/dist-elements/tag/form-section.js +2 -2
  72. package/dist-elements/tag/form.js +2 -2
  73. package/dist-elements/tag/gallery.js +1 -1
  74. package/dist-elements/tag/grid-item.d.ts +1 -1
  75. package/dist-elements/tag/grid-item.js +1 -1
  76. package/dist-elements/tag/grid.d.ts +1 -1
  77. package/dist-elements/tag/grid.js +1 -1
  78. package/dist-elements/tag/hero.js +1 -1
  79. package/dist-elements/tag/highlight.js +1 -1
  80. package/dist-elements/tag/icon-button.d.ts +1 -1
  81. package/dist-elements/tag/icon-button.js +1 -1
  82. package/dist-elements/tag/icon.d.ts +1 -1
  83. package/dist-elements/tag/icon.js +1 -1
  84. package/dist-elements/tag/job-list.js +1 -1
  85. package/dist-elements/tag/kpi-row.js +1 -1
  86. package/dist-elements/tag/kpi.js +61 -61
  87. package/dist-elements/tag/level-meter.js +1 -1
  88. package/dist-elements/tag/list.js +2 -2
  89. package/dist-elements/tag/logo.js +1 -1
  90. package/dist-elements/tag/map.js +148 -142
  91. package/dist-elements/tag/menu-button.js +1 -1
  92. package/dist-elements/tag/modal.js +2 -2
  93. package/dist-elements/tag/multiselect.js +4 -3
  94. package/dist-elements/tag/note.js +1 -1
  95. package/dist-elements/tag/notifications.js +2 -2
  96. package/dist-elements/tag/number-input.js +3 -2
  97. package/dist-elements/tag/page-header.js +1 -1
  98. package/dist-elements/tag/pagination.js +32 -32
  99. package/dist-elements/tag/popover.d.ts +1 -1
  100. package/dist-elements/tag/popover.js +1 -1
  101. package/dist-elements/tag/progress-bar.d.ts +1 -1
  102. package/dist-elements/tag/progress-bar.js +1 -1
  103. package/dist-elements/tag/prose.js +1 -1
  104. package/dist-elements/tag/qr-code.js +1 -1
  105. package/dist-elements/tag/radio-group.js +3 -2
  106. package/dist-elements/tag/range.js +3 -2
  107. package/dist-elements/tag/recording-status.js +1 -1
  108. package/dist-elements/tag/repeater.js +1 -1
  109. package/dist-elements/tag/segmented.js +3 -2
  110. package/dist-elements/tag/select.js +3 -2
  111. package/dist-elements/tag/shell.js +3 -3
  112. package/dist-elements/tag/skeleton.d.ts +1 -1
  113. package/dist-elements/tag/skeleton.js +1 -1
  114. package/dist-elements/tag/slot-picker.js +4 -3
  115. package/dist-elements/tag/sortable-list.js +1 -1
  116. package/dist-elements/tag/spinner.d.ts +1 -1
  117. package/dist-elements/tag/spinner.js +1 -1
  118. package/dist-elements/tag/split-pane.js +1 -1
  119. package/dist-elements/tag/status-dot.d.ts +1 -1
  120. package/dist-elements/tag/status-dot.js +1 -1
  121. package/dist-elements/tag/stepper.js +1 -1
  122. package/dist-elements/tag/streaming-text.js +1 -1
  123. package/dist-elements/tag/sub-nav.js +1 -1
  124. package/dist-elements/tag/tabs.js +1 -1
  125. package/dist-elements/tag/tag-input.js +11 -10
  126. package/dist-elements/tag/text-editor.js +3 -2
  127. package/dist-elements/tag/text-input.js +3 -2
  128. package/dist-elements/tag/textarea.js +3 -2
  129. package/dist-elements/tag/tile.d.ts +1 -1
  130. package/dist-elements/tag/tile.js +1 -1
  131. package/dist-elements/tag/time-input.js +7 -6
  132. package/dist-elements/tag/toast.js +2 -2
  133. package/dist-elements/tag/toggle.js +3 -2
  134. package/dist-elements/tag/toggletip.js +2 -2
  135. package/dist-elements/tag/token-value.d.ts +1 -0
  136. package/dist-elements/tag/token-value.js +75 -0
  137. package/dist-elements/tag/tooltip.d.ts +1 -1
  138. package/dist-elements/tag/tooltip.js +1 -1
  139. package/dist-elements/tag/transcript.js +1 -1
  140. package/dist-elements/tag/translator.js +1 -1
  141. package/dist-elements/tag/tree-view.js +1 -1
  142. package/dist-elements/tag/user-menu.js +1 -1
  143. package/dist-elements/tag/video-player.js +2 -2
  144. package/dist-elements/tokens.json +1244 -0
  145. package/dist-elements/types/bundle/actions.d.ts +3 -3
  146. package/dist-elements/types/bundle/content.d.ts +1 -0
  147. package/dist-elements/types/bundle/feedback.d.ts +5 -5
  148. package/dist-elements/types/bundle/index.d.ts +0 -10
  149. package/dist-elements/types/bundle/inputs.d.ts +1 -0
  150. package/dist-elements/types/bundle/layout.d.ts +3 -3
  151. package/dist-elements/types/bundle/overlays.d.ts +2 -2
  152. package/dist-elements/types/categories.d.ts +4 -0
  153. package/dist-elements/types/{primitives → components/actions}/button/button.d.ts +1 -1
  154. package/dist-elements/types/components/actions/copy-button/copy-button.d.ts +2 -2
  155. package/dist-elements/types/{icons → components/actions}/icon/icon.d.ts +2 -2
  156. package/dist-elements/types/{primitives → components/actions}/icon-button/icon-button.d.ts +1 -1
  157. package/dist-elements/types/components/actions/menu-button/menu-button.d.ts +3 -3
  158. package/dist-elements/types/components/actions/qr-code/qr-code.d.ts +1 -1
  159. package/dist-elements/types/components/charts/chart/chart.d.ts +1 -1
  160. package/dist-elements/types/components/charts/explainer/explainer.d.ts +1 -1
  161. package/dist-elements/types/components/charts/kpi/kpi.d.ts +3 -3
  162. package/dist-elements/types/components/charts/kpi-row/kpi-row.d.ts +1 -1
  163. package/dist-elements/types/components/charts/note/note.d.ts +1 -1
  164. package/dist-elements/types/components/chat/chat/chat.d.ts +1 -1
  165. package/dist-elements/types/components/chat/chat-answer/chat-answer.d.ts +3 -3
  166. package/dist-elements/types/components/chat/chat-composer/chat-composer.d.ts +2 -2
  167. package/dist-elements/types/components/chat/chat-message/chat-message.d.ts +1 -1
  168. package/dist-elements/types/components/content/audio-player/audio-player.d.ts +5 -5
  169. package/dist-elements/types/components/content/code/code.d.ts +1 -1
  170. package/dist-elements/types/components/content/document-viewer/document-viewer.d.ts +2 -2
  171. package/dist-elements/types/components/content/highlight/highlight.d.ts +1 -1
  172. package/dist-elements/types/components/content/prose/prose.d.ts +1 -1
  173. package/dist-elements/types/components/content/token-value/token-value.d.ts +42 -0
  174. package/dist-elements/types/components/content/transcript/transcript.d.ts +3 -3
  175. package/dist-elements/types/components/content/translator/translator.d.ts +1 -1
  176. package/dist-elements/types/components/content/video-player/video-player.d.ts +1 -1
  177. package/dist-elements/types/components/feedback/announcement/announcement.d.ts +2 -2
  178. package/dist-elements/types/{primitives → components/feedback}/badge/badge.d.ts +2 -2
  179. package/dist-elements/types/components/feedback/conflict-alert/conflict-alert.d.ts +1 -1
  180. package/dist-elements/types/components/feedback/empty-state/empty-state.d.ts +2 -2
  181. package/dist-elements/types/components/feedback/job-list/job-list.d.ts +1 -1
  182. package/dist-elements/types/{primitives → components/feedback}/progress-bar/progress-bar.d.ts +2 -2
  183. package/dist-elements/types/{primitives → components/feedback}/skeleton/skeleton.d.ts +1 -1
  184. package/dist-elements/types/{primitives → components/feedback}/spinner/spinner.d.ts +1 -1
  185. package/dist-elements/types/{primitives → components/feedback}/status-dot/status-dot.d.ts +2 -2
  186. package/dist-elements/types/components/feedback/streaming-text/streaming-text.d.ts +2 -2
  187. package/dist-elements/types/components/filters/filter-sheet/filter-sheet.d.ts +2 -2
  188. package/dist-elements/types/components/forms/error-summary/error-summary.d.ts +1 -1
  189. package/dist-elements/types/components/forms/form-actions/form-actions.d.ts +1 -1
  190. package/dist-elements/types/components/forms/repeater/repeater.d.ts +2 -2
  191. package/dist-elements/types/components/forms/stepper/stepper.d.ts +1 -1
  192. package/dist-elements/types/components/frame/app-search/app-search.d.ts +1 -1
  193. package/dist-elements/types/components/frame/notifications/notifications.d.ts +2 -2
  194. package/dist-elements/types/components/frame/page-header/page-header.d.ts +1 -1
  195. package/dist-elements/types/components/frame/shell/shell.d.ts +1 -1
  196. package/dist-elements/types/components/frame/user-menu/user-menu.d.ts +2 -2
  197. package/dist-elements/types/components/index.d.ts +43 -3
  198. package/dist-elements/types/components/inputs/combobox/combobox.d.ts +2 -2
  199. package/dist-elements/types/components/inputs/date-input/date-input.d.ts +1 -1
  200. package/dist-elements/types/components/inputs/date-range/date-range.d.ts +2 -2
  201. package/dist-elements/types/components/inputs/file-upload/file-upload.d.ts +2 -2
  202. package/dist-elements/types/components/inputs/find/find.d.ts +51 -0
  203. package/dist-elements/types/components/inputs/segmented/segmented.d.ts +1 -1
  204. package/dist-elements/types/components/inputs/shared/input.d.ts +1 -1
  205. package/dist-elements/types/components/inputs/tag-input/tag-input.d.ts +1 -1
  206. package/dist-elements/types/components/inputs/text-editor/text-editor.d.ts +2 -2
  207. package/dist-elements/types/components/inputs/text-input/text-input.d.ts +1 -1
  208. package/dist-elements/types/components/inputs/time-input/time-input.d.ts +1 -1
  209. package/dist-elements/types/components/layout/expander/expander.d.ts +1 -1
  210. package/dist-elements/types/{primitives → components/layout}/grid/grid.d.ts +1 -1
  211. package/dist-elements/types/{primitives → components/layout}/grid-item/grid-item.d.ts +1 -1
  212. package/dist-elements/types/components/layout/tabs/tabs.d.ts +1 -1
  213. package/dist-elements/types/{primitives → components/layout}/tile/tile.d.ts +6 -6
  214. package/dist-elements/types/components/map/map/map.d.ts +2 -2
  215. package/dist-elements/types/components/overlays/modal/modal.d.ts +2 -2
  216. package/dist-elements/types/{primitives → components/overlays}/popover/popover.d.ts +2 -2
  217. package/dist-elements/types/components/overlays/toggletip/toggletip.d.ts +1 -1
  218. package/dist-elements/types/{primitives → components/overlays}/tooltip/tooltip.d.ts +2 -2
  219. package/dist-elements/types/components/shared/charts/index.d.ts +1 -0
  220. package/dist-elements/types/components/shared/charts/kinds.d.ts +6 -0
  221. package/dist-elements/types/components/shared/charts/map-chart/map-chart.d.ts +1 -1
  222. package/dist-elements/types/components/shared/charts/radar-chart/radar-chart.d.ts +31 -0
  223. package/dist-elements/types/components/shared/charts/shared/axes.d.ts +3 -1
  224. package/dist-elements/types/components/shared/charts/shared/controller.d.ts +5 -0
  225. package/dist-elements/types/components/shared/charts/shared/types.d.ts +33 -0
  226. package/dist-elements/types/components/shared/content-tile.d.ts +1 -1
  227. package/dist-elements/types/components/{forms/form → shared}/controls.d.ts +3 -2
  228. package/dist-elements/types/components/shared/overflow.d.ts +1 -1
  229. package/dist-elements/types/components/tables/activity-log/activity-log.d.ts +1 -1
  230. package/dist-elements/types/components/tables/card/card.d.ts +4 -4
  231. package/dist-elements/types/components/tables/data-table/actions.d.ts +1 -1
  232. package/dist-elements/types/components/tables/data-table/data-table.d.ts +3 -3
  233. package/dist-elements/types/components/tables/data-table/editing.d.ts +1 -1
  234. package/dist-elements/types/components/tables/data-table/filters.d.ts +3 -3
  235. package/dist-elements/types/components/tables/description-list/description-list.d.ts +2 -2
  236. package/dist-elements/types/components/tables/list/list.d.ts +4 -4
  237. package/dist-elements/types/components/tables/tree-view/tree-view.d.ts +1 -1
  238. package/dist-elements/types/core/focus.d.ts +1 -1
  239. package/dist-elements/types/types.d.ts +7 -7
  240. package/package.json +1 -1
  241. package/dist-elements/chunks/download-Ct9q2anY.js +0 -206
  242. package/dist-elements/chunks/input-CRW_exv_.js +0 -195
  243. package/dist-elements/types/primitives/index.d.ts +0 -35
  244. /package/dist-elements/types/components/content/{audio-player → shared}/playback.d.ts +0 -0
  245. /package/dist-elements/types/components/content/{audio-player → shared}/player.d.ts +0 -0
  246. /package/dist-elements/types/{primitives → components}/shared/announcement-block.d.ts +0 -0
  247. /package/dist-elements/types/components/{inputs/date-input → shared}/date-format.d.ts +0 -0
  248. /package/dist-elements/types/{primitives → components}/shared/empty-state-block.d.ts +0 -0
  249. /package/dist-elements/types/{primitives → components}/shared/grid-item-element.d.ts +0 -0
  250. /package/dist-elements/types/{primitives → components}/shared/length.d.ts +0 -0
  251. /package/dist-elements/types/{primitives → components}/shared/place.d.ts +0 -0
  252. /package/dist-elements/types/{primitives → components}/shared/tone.d.ts +0 -0
@@ -10,8 +10,8 @@
10
10
  */
11
11
  import { type PropertyDeclarations, type PropertyValues, type TemplateResult } from 'lit';
12
12
  import { LintjeElement } from '../../../core/element.js';
13
- import '../../../primitives/badge/badge.js';
14
- import '../../../primitives/popover/popover.js';
13
+ import '../../feedback/badge/badge.js';
14
+ import '../../overlays/popover/popover.js';
15
15
  export interface NotificationItem {
16
16
  id: string;
17
17
  title: string;
@@ -12,7 +12,7 @@ import { nothing, type PropertyDeclarations, type TemplateResult, type PropertyV
12
12
  import { LintjeElement, type FrameSettings } from '../../../core/element.js';
13
13
  import '../../feedback/announcement/announcement.js';
14
14
  import '../../actions/menu-button/menu-button.js';
15
- import '../../../primitives/icon-button/icon-button.js';
15
+ import '../../actions/icon-button/icon-button.js';
16
16
  import type { PageHeaderData } from '../../../types.js';
17
17
  export declare class LintjePageHeader extends LintjeElement {
18
18
  static styles: import("lit").CSSResult;
@@ -13,7 +13,7 @@
13
13
  */
14
14
  import { nothing, type PropertyDeclarations, type PropertyValues, type TemplateResult } from 'lit';
15
15
  import { LintjeElement, type FrameSettings } from '../../../core/element.js';
16
- import '../../../primitives/button/button.js';
16
+ import '../../actions/button/button.js';
17
17
  import '../../actions/logo/logo.js';
18
18
  import '../../feedback/toast/toast.js';
19
19
  import type { ToastKind } from '../../feedback/toast/toast.js';
@@ -11,8 +11,8 @@
11
11
  import { type PropertyDeclarations, type PropertyValues, type TemplateResult } from 'lit';
12
12
  import { LintjeElement } from '../../../core/element.js';
13
13
  import { type MenuEntry } from '../../actions/menu-button/menu-button.js';
14
- import '../../../primitives/popover/popover.js';
15
- import '../../../primitives/tooltip/tooltip.js';
14
+ import '../../overlays/popover/popover.js';
15
+ import '../../overlays/tooltip/tooltip.js';
16
16
  import type { UserMenuUser } from '../../../types.js';
17
17
  export declare class LintjeUserMenu extends LintjeElement {
18
18
  #private;
@@ -1,10 +1,23 @@
1
1
  /**
2
- * The components of every category. Importing this module registers every tag it defines;
2
+ * The tags of every category. Importing this module registers every tag it defines;
3
3
  * `define()` leaves a tag another bundle already defined alone. The modal's and the toast's
4
4
  * events are stopped by the content tiles and `<lintje-shell>`, so one action is one line in a
5
5
  * host's log. Put one filter bar on a page: two would both write the count in the mobile header
6
6
  * and both own the sheet.
7
7
  */
8
+ import './actions/icon/icon.js';
9
+ import './actions/button/button.js';
10
+ import './actions/icon-button/icon-button.js';
11
+ import './feedback/status-dot/status-dot.js';
12
+ import './feedback/skeleton/skeleton.js';
13
+ import './layout/grid/grid.js';
14
+ import './layout/grid-item/grid-item.js';
15
+ import './layout/tile/tile.js';
16
+ import './feedback/badge/badge.js';
17
+ import './feedback/spinner/spinner.js';
18
+ import './feedback/progress-bar/progress-bar.js';
19
+ import './overlays/popover/popover.js';
20
+ import './overlays/tooltip/tooltip.js';
8
21
  import './frame/shell/shell.js';
9
22
  import './frame/user-menu/user-menu.js';
10
23
  import './frame/page-header/page-header.js';
@@ -34,6 +47,7 @@ import './inputs/checkbox-group/checkbox-group.js';
34
47
  import './inputs/number-input/number-input.js';
35
48
  import './inputs/radio-group/radio-group.js';
36
49
  import './inputs/text-input/text-input.js';
50
+ import './inputs/find/find.js';
37
51
  import './inputs/toggle/toggle.js';
38
52
  import './actions/logo/logo.js';
39
53
  import './inputs/field/field.js';
@@ -85,6 +99,7 @@ import './actions/copy-button/copy-button.js';
85
99
  import './actions/qr-code/qr-code.js';
86
100
  import './feedback/ai-label/ai-label.js';
87
101
  import './content/highlight/highlight.js';
102
+ import './content/token-value/token-value.js';
88
103
  import './feedback/job-list/job-list.js';
89
104
  import './feedback/streaming-text/streaming-text.js';
90
105
  import './content/audio-player/audio-player.js';
@@ -94,6 +109,29 @@ import './content/document-viewer/document-viewer.js';
94
109
  import './feedback/conflict-alert/conflict-alert.js';
95
110
  import './frame/app-search/app-search.js';
96
111
  import './frame/notifications/notifications.js';
112
+ export { LintjeIcon, ICON_NAMES } from './actions/icon/icon.js';
113
+ export { LintjeButton } from './actions/button/button.js';
114
+ export type { ButtonSize, ButtonVariant } from './actions/button/button.js';
115
+ export { LintjeIconButton } from './actions/icon-button/icon-button.js';
116
+ export type { IconButtonVariant } from './actions/icon-button/icon-button.js';
117
+ export { LintjeStatusDot, STATUS_LABEL } from './feedback/status-dot/status-dot.js';
118
+ export { TONE_ICON, TONE_WORD, WORK_STATE_LABEL, WORK_STATE_TONE } from './shared/tone.js';
119
+ export type { ContentStateKind, Tone, WorkState } from './shared/tone.js';
120
+ export { LintjeSkeleton } from './feedback/skeleton/skeleton.js';
121
+ export { LintjeGrid } from './layout/grid/grid.js';
122
+ export { LintjeGridItem } from './layout/grid-item/grid-item.js';
123
+ export { LintjeGridItemElement, spanStyles } from './shared/grid-item-element.js';
124
+ export { LintjeTile } from './layout/tile/tile.js';
125
+ export { LintjeBadge, badgeStyles, renderBadge } from './feedback/badge/badge.js';
126
+ export type { BadgeOptions, BadgeTone, BadgeVariant } from './feedback/badge/badge.js';
127
+ export { LintjeSpinner } from './feedback/spinner/spinner.js';
128
+ export type { SpinnerSize } from './feedback/spinner/spinner.js';
129
+ export { LintjeProgressBar } from './feedback/progress-bar/progress-bar.js';
130
+ export type { ProgressState } from './feedback/progress-bar/progress-bar.js';
131
+ export { LintjePopover } from './overlays/popover/popover.js';
132
+ export { LintjeTooltip } from './overlays/tooltip/tooltip.js';
133
+ export { place } from './shared/place.js';
134
+ export type { Place, Placement } from './shared/place.js';
97
135
  export { LintjeAnnouncement } from './feedback/announcement/announcement.js';
98
136
  export { LintjeChart } from './charts/chart/chart.js';
99
137
  export { LintjeChat } from './chat/chat/chat.js';
@@ -130,6 +168,7 @@ export { LintjeCheckboxGroup } from './inputs/checkbox-group/checkbox-group.js';
130
168
  export { LintjeNumberInput } from './inputs/number-input/number-input.js';
131
169
  export { LintjeRadioGroup } from './inputs/radio-group/radio-group.js';
132
170
  export { LintjeTextInput } from './inputs/text-input/text-input.js';
171
+ export { LintjeFind } from './inputs/find/find.js';
133
172
  export { LintjeToggle } from './inputs/toggle/toggle.js';
134
173
  export { LintjeLogo } from './actions/logo/logo.js';
135
174
  export { LintjeField } from './inputs/field/field.js';
@@ -211,6 +250,7 @@ export { LintjeQrCode } from './actions/qr-code/qr-code.js';
211
250
  export { LintjeAiLabel } from './feedback/ai-label/ai-label.js';
212
251
  export { LintjeHighlight } from './content/highlight/highlight.js';
213
252
  export type { HighlightKind } from './content/highlight/highlight.js';
253
+ export { LintjeTokenValue, formatColour } from './content/token-value/token-value.js';
214
254
  export { LintjeJobList } from './feedback/job-list/job-list.js';
215
255
  export type { Job, JobState } from './feedback/job-list/job-list.js';
216
256
  export { LintjeStreamingText } from './feedback/streaming-text/streaming-text.js';
@@ -218,8 +258,8 @@ export type { StreamState } from './feedback/streaming-text/streaming-text.js';
218
258
  export { LintjeConflictAlert } from './feedback/conflict-alert/conflict-alert.js';
219
259
  export type { ConflictChange, ConflictChoice } from './feedback/conflict-alert/conflict-alert.js';
220
260
  export { LintjeAudioPlayer } from './content/audio-player/audio-player.js';
221
- export { speakerColours, SPEAKER_COLOURS } from './content/audio-player/playback.js';
222
- export type { SpeakerColour } from './content/audio-player/playback.js';
261
+ export { speakerColours, SPEAKER_COLOURS } from './content/shared/playback.js';
262
+ export type { SpeakerColour } from './content/shared/playback.js';
223
263
  export { LintjeVideoPlayer } from './content/video-player/video-player.js';
224
264
  export type { TimedText } from './content/video-player/video-player.js';
225
265
  export { LintjeTranscript } from './content/transcript/transcript.js';
@@ -10,8 +10,8 @@
10
10
  * `remote`, after typing stops).
11
11
  */
12
12
  import { type PropertyDeclarations, type PropertyValues, type TemplateResult } from 'lit';
13
- import '../../../primitives/popover/popover.js';
14
- import '../../../primitives/spinner/spinner.js';
13
+ import '../../overlays/popover/popover.js';
14
+ import '../../feedback/spinner/spinner.js';
15
15
  import { LintjeInputElement } from '../shared/input.js';
16
16
  import type { FilterOption } from '../../../types.js';
17
17
  export declare function filterOptions(options: FilterOption[], query: string): FilterOption[];
@@ -10,7 +10,7 @@
10
10
  */
11
11
  import { type PropertyDeclarations, type PropertyValues, type TemplateResult } from 'lit';
12
12
  import { LintjeInputElement } from '../shared/input.js';
13
- import '../../../primitives/popover/popover.js';
13
+ import '../../overlays/popover/popover.js';
14
14
  export declare class LintjeDateInput extends LintjeInputElement {
15
15
  static styles: import("lit").CSSResult[];
16
16
  static properties: PropertyDeclarations;
@@ -10,8 +10,8 @@
10
10
  */
11
11
  import { type PropertyDeclarations, type TemplateResult } from 'lit';
12
12
  import { LintjeInputElement } from '../shared/input.js';
13
- import '../../../primitives/button/button.js';
14
- import '../../../primitives/icon-button/icon-button.js';
13
+ import '../../actions/button/button.js';
14
+ import '../../actions/icon-button/icon-button.js';
15
15
  /**
16
16
  * Each preset as its first and last day. "Afgelopen n dagen" runs back from today; the calendar
17
17
  * periods run past today while they last, and `presetRange` cuts them at the data's last day.
@@ -10,8 +10,8 @@
10
10
  * `name`), `lintje-reset` (the reset link was pressed).
11
11
  */
12
12
  import { type PropertyDeclarations, type PropertyValues, type TemplateResult } from 'lit';
13
- import '../../../primitives/button/button.js';
14
- import '../../../primitives/progress-bar/progress-bar.js';
13
+ import '../../actions/button/button.js';
14
+ import '../../feedback/progress-bar/progress-bar.js';
15
15
  import { LintjeInputElement } from '../shared/input.js';
16
16
  /** One row, as the host keeps it. */
17
17
  export interface UploadFile {
@@ -0,0 +1,51 @@
1
+ /**
2
+ * `<lintje-find>` — a field that finds a word in content already shown, and steps through the hits.
3
+ *
4
+ * It searches nothing itself: the host, or the element around it, counts the hits, sets `total`
5
+ * and `current`, and marks them in its content with `lintje-highlight`. Finding filters nothing.
6
+ * The count and the buttons stand inside the field, so nothing around it moves while typing. A
7
+ * host that counts asynchronously sets `busy` until it knows the total.
8
+ *
9
+ * Events: `lintje-change` `string` (the term, 300 ms after the last key; `''` when cleared),
10
+ * `lintje-values-change` `{ [name]: term }` (with a `name`), `lintje-find-step` `1 | -1` (to the
11
+ * next or the previous hit; the host answers with `current`).
12
+ */
13
+ import { type PropertyDeclarations, type PropertyValues, type TemplateResult } from 'lit';
14
+ import '../../feedback/spinner/spinner.js';
15
+ import { LintjeInputElement } from '../shared/input.js';
16
+ export declare class LintjeFind extends LintjeInputElement {
17
+ #private;
18
+ static styles: import("lit").CSSResult[];
19
+ static properties: PropertyDeclarations;
20
+ value: string;
21
+ /** Without one, the field shows its label. */
22
+ placeholder: string;
23
+ /** The number of hits; `null` while there is no count. */
24
+ total: number | null;
25
+ /** The current hit, from 1; `0` for none. */
26
+ current: number;
27
+ /** The host is still counting: the field says "Zoeken…" and cannot step. */
28
+ busy: boolean;
29
+ protected message: string;
30
+ private readonly typing;
31
+ constructor();
32
+ private get navigable();
33
+ private get countText();
34
+ protected willUpdate(changed: PropertyValues<this>): void;
35
+ protected updated(changed: PropertyValues<this>): void;
36
+ disconnectedCallback(): void;
37
+ private say;
38
+ private send;
39
+ private onInput;
40
+ private onKeydown;
41
+ private step;
42
+ private clear;
43
+ private keepTyping;
44
+ private renderButton;
45
+ protected render(): TemplateResult;
46
+ }
47
+ declare global {
48
+ interface HTMLElementTagNameMap {
49
+ 'lintje-find': LintjeFind;
50
+ }
51
+ }
@@ -8,7 +8,7 @@
8
8
  * `lintje-reset` (the reset link was pressed).
9
9
  */
10
10
  import { type PropertyDeclarations, type PropertyValues, type TemplateResult } from 'lit';
11
- import '../../../primitives/badge/badge.js';
11
+ import '../../feedback/badge/badge.js';
12
12
  import { LintjeInputElement } from '../shared/input.js';
13
13
  import type { FilterOption } from '../../../types.js';
14
14
  export declare class LintjeSegmented extends LintjeInputElement {
@@ -6,7 +6,7 @@
6
6
  * is set, so an input inside another component's shadow root does not leak a filter change.
7
7
  */
8
8
  import { nothing, type PropertyDeclarations, type PropertyValues, type TemplateResult } from 'lit';
9
- import { LintjeGridItemElement } from '../../../primitives/shared/grid-item-element.js';
9
+ import { LintjeGridItemElement } from '../../shared/grid-item-element.js';
10
10
  /** What an input may commit. A host serialises it into the URL. */
11
11
  export type InputValue = string | number | boolean | null;
12
12
  export declare abstract class LintjeInputElement extends LintjeGridItemElement {
@@ -9,7 +9,7 @@
9
9
  * `lintje-reset` (the reset link was pressed).
10
10
  */
11
11
  import { type PropertyDeclarations, type PropertyValues, type TemplateResult } from 'lit';
12
- import '../../../primitives/popover/popover.js';
12
+ import '../../overlays/popover/popover.js';
13
13
  import { LintjeInputElement } from '../shared/input.js';
14
14
  import type { FilterOption } from '../../../types.js';
15
15
  export declare function splitWords(text: string): string[];
@@ -9,8 +9,8 @@
9
9
  */
10
10
  import { type PropertyDeclarations, type PropertyValues, type TemplateResult } from 'lit';
11
11
  import { LintjeInputElement } from '../shared/input.js';
12
- import '../../../primitives/popover/popover.js';
13
- import '../../../primitives/button/button.js';
12
+ import '../../overlays/popover/popover.js';
13
+ import '../../actions/button/button.js';
14
14
  import '../text-input/text-input.js';
15
15
  export type EditorFormat = 'bold' | 'italic' | 'heading' | 'list' | 'link';
16
16
  export declare class LintjeTextEditor extends LintjeInputElement {
@@ -9,7 +9,7 @@
9
9
  * `lintje-reset` (the reset link was pressed).
10
10
  */
11
11
  import { nothing, type PropertyDeclarations, type PropertyValues, type TemplateResult } from 'lit';
12
- import '../../../primitives/button/button.js';
12
+ import '../../actions/button/button.js';
13
13
  import { LintjeFormInputElement } from '../shared/input.js';
14
14
  export type TextInputType = 'text' | 'search' | 'password' | 'email';
15
15
  /** When a typed value is committed: on leaving the field, or 300 ms after the last key. */
@@ -10,7 +10,7 @@
10
10
  */
11
11
  import { type PropertyDeclarations, type PropertyValues, type TemplateResult } from 'lit';
12
12
  import { LintjeInputElement } from '../shared/input.js';
13
- import '../../../primitives/popover/popover.js';
13
+ import '../../overlays/popover/popover.js';
14
14
  export declare class LintjeTimeInput extends LintjeInputElement {
15
15
  static styles: import("lit").CSSResult[];
16
16
  static properties: PropertyDeclarations;
@@ -8,7 +8,7 @@
8
8
  * Events: `lintje-toggle` `boolean` (open, after the reader pressed the title).
9
9
  */
10
10
  import { type PropertyDeclarations, type PropertyValues, type TemplateResult } from 'lit';
11
- import { LintjeGridItemElement } from '../../../primitives/shared/grid-item-element.js';
11
+ import { LintjeGridItemElement } from '../../shared/grid-item-element.js';
12
12
  export declare class LintjeExpander extends LintjeGridItemElement {
13
13
  #private;
14
14
  static styles: import("lit").CSSResult[];
@@ -4,7 +4,7 @@
4
4
  * Its items are its own children; a tile carries `span` itself and needs no wrapper.
5
5
  */
6
6
  import { type PropertyValues, type TemplateResult } from 'lit';
7
- import { LintjeElement } from '../../core/element.js';
7
+ import { LintjeElement } from '../../../core/element.js';
8
8
  export declare class LintjeGrid extends LintjeElement {
9
9
  static styles: import("lit").CSSResult;
10
10
  static properties: {
@@ -1,6 +1,6 @@
1
1
  /** `<lintje-grid-item>` — a grid cell for non-`lintje-` content. */
2
2
  import { type TemplateResult } from 'lit';
3
- import { LintjeGridItemElement } from '../shared/grid-item-element.js';
3
+ import { LintjeGridItemElement } from '../../shared/grid-item-element.js';
4
4
  export declare class LintjeGridItem extends LintjeGridItemElement {
5
5
  static styles: import("lit").CSSResult;
6
6
  protected render(): TemplateResult;
@@ -10,7 +10,7 @@
10
10
  */
11
11
  import { type PropertyDeclarations, type PropertyValues, type TemplateResult } from 'lit';
12
12
  import { LintjeElement } from '../../../core/element.js';
13
- import '../../../primitives/badge/badge.js';
13
+ import '../../feedback/badge/badge.js';
14
14
  export interface TabItem {
15
15
  /** What `lintje-tab-change` carries and the name of the panel's slot. */
16
16
  value: string;
@@ -9,12 +9,12 @@
9
9
  * Events: `lintje-tile-expand`, `lintje-tile-download`.
10
10
  */
11
11
  import { type PropertyValues, type TemplateResult } from 'lit';
12
- import { LintjeGridItemElement } from '../shared/grid-item-element.js';
13
- import '../button/button.js';
14
- import '../icon-button/icon-button.js';
15
- import '../status-dot/status-dot.js';
16
- import '../skeleton/skeleton.js';
17
- import type { ContentStateKind } from '../shared/tone.js';
12
+ import { LintjeGridItemElement } from '../../shared/grid-item-element.js';
13
+ import '../../actions/button/button.js';
14
+ import '../../actions/icon-button/icon-button.js';
15
+ import '../../feedback/status-dot/status-dot.js';
16
+ import '../../feedback/skeleton/skeleton.js';
17
+ import type { ContentStateKind } from '../../shared/tone.js';
18
18
  /** The same four as `ContentState` in the contract. */
19
19
  export type ContentState = ContentStateKind;
20
20
  export declare class LintjeTile extends LintjeGridItemElement {
@@ -14,8 +14,8 @@ import { nothing, type PropertyDeclarations, type PropertyValues, type TemplateR
14
14
  import { type FrameSettings } from '../../../core/element.js';
15
15
  import { LintjeContentTileElement } from '../../shared/content-tile.js';
16
16
  import '../../feedback/announcement/announcement.js';
17
- import '../../../primitives/tile/tile.js';
18
- import '../../../primitives/tooltip/tooltip.js';
17
+ import '../../layout/tile/tile.js';
18
+ import '../../overlays/tooltip/tooltip.js';
19
19
  import type { MapData } from '../../../types.js';
20
20
  export declare class LintjeMap extends LintjeContentTileElement {
21
21
  #private;
@@ -9,8 +9,8 @@
9
9
  */
10
10
  import { nothing, type PropertyDeclarations, type TemplateResult } from 'lit';
11
11
  import { LintjeElement } from '../../../core/element.js';
12
- import '../../../primitives/button/button.js';
13
- import '../../../primitives/icon-button/icon-button.js';
12
+ import '../../actions/button/button.js';
13
+ import '../../actions/icon-button/icon-button.js';
14
14
  export declare class LintjeModal extends LintjeElement {
15
15
  #private;
16
16
  static styles: import("lit").CSSResult[];
@@ -7,8 +7,8 @@
7
7
  * Events: `lintje-close` `{ reason: 'escape' | 'outside' }`.
8
8
  */
9
9
  import { nothing, type PropertyDeclarations, type PropertyValues, type TemplateResult } from 'lit';
10
- import { LintjeElement } from '../../core/element.js';
11
- import { type Place, type Placement } from '../shared/place.js';
10
+ import { LintjeElement } from '../../../core/element.js';
11
+ import { type Place, type Placement } from '../../shared/place.js';
12
12
  export declare class LintjePopover extends LintjeElement {
13
13
  static styles: import("lit").CSSResult;
14
14
  static properties: PropertyDeclarations;
@@ -8,7 +8,7 @@
8
8
  */
9
9
  import { type PropertyDeclarations, type PropertyValues, type TemplateResult } from 'lit';
10
10
  import { LintjeElement } from '../../../core/element.js';
11
- import { type Place } from '../../../primitives/shared/place.js';
11
+ import { type Place } from '../../shared/place.js';
12
12
  export type ToggletipPlacement = 'bottom-start' | 'bottom-end';
13
13
  export declare class LintjeToggletip extends LintjeElement {
14
14
  static styles: import("lit").CSSResult[];
@@ -6,8 +6,8 @@
6
6
  * description.
7
7
  */
8
8
  import { type PropertyDeclarations, type PropertyValues, type TemplateResult } from 'lit';
9
- import { LintjeElement } from '../../core/element.js';
10
- import { type Place } from '../shared/place.js';
9
+ import { LintjeElement } from '../../../core/element.js';
10
+ import { type Place } from '../../shared/place.js';
11
11
  export declare const TOOLTIP_DELAY = 300;
12
12
  /** How long the bubble waits after the pointer leaves: time to cross the gap onto it. */
13
13
  export declare const TOOLTIP_LINGER = 150;
@@ -15,6 +15,7 @@ export { renderStackedAreaChart } from './stacked-area-chart/stacked-area-chart.
15
15
  export { renderPieChart } from './pie-chart/pie-chart.js';
16
16
  export { renderDualAxisChart } from './dual-axis-chart/dual-axis-chart.js';
17
17
  export { renderScatterChart } from './scatter-chart/scatter-chart.js';
18
+ export { renderRadarChart } from './radar-chart/radar-chart.js';
18
19
  export { renderHeatmap, heatmapBounds, heatmapClasses } from './heatmap-chart/heatmap-chart.js';
19
20
  export type { HeatmapClass } from './heatmap-chart/heatmap-chart.js';
20
21
  export { renderHistogramChart } from './histogram-chart/histogram-chart.js';
@@ -47,6 +47,12 @@ export declare const CHART_KINDS: {
47
47
  readonly use: 'Twee of drie reeksen naast elkaar per groep, om ze binnen de groep te vergelijken.';
48
48
  readonly avoid: 'Meer dan drie reeksen: de groepen worden onleesbaar. Neem een lijn of een tabel.';
49
49
  };
50
+ readonly radar: {
51
+ readonly label: 'Spinnendiagram';
52
+ readonly question: 'compare';
53
+ readonly use: 'Het profiel van één tot drie eenheden over vijf tot acht maten op één schaal, tegen een vergelijking in grijs of een norm.';
54
+ readonly avoid: 'Maten met elk een eigen eenheid, of meer dan drie eenheden: neem horizontale staven of een tabel. Precies aflezen: een tabel.';
55
+ };
50
56
  readonly 'stacked-bar': {
51
57
  readonly label: 'Gestapelde staven';
52
58
  readonly question: 'parts';
@@ -6,7 +6,7 @@
6
6
  import { type TemplateResult } from 'lit';
7
7
  import type { ChartOptions } from '../shared/controller.js';
8
8
  import type { MapArea, MapSpec, MapValue } from '../shared/types.js';
9
- import '../../../../primitives/popover/popover.js';
9
+ import '../../../overlays/popover/popover.js';
10
10
  /** The map's own height in a tile: on a phone taller, so all its buttons fit on the touch size. */
11
11
  export declare const MAP_HEIGHT: {
12
12
  readonly desktop: 400;
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Radar chart: the profile of one to three variables over five to eight axes that share one
3
+ * scale, from 0 in the centre to `max` on the outer ring, with a grey comparison and a norm.
4
+ * Dashed is the norm only: a dashed comparison over it would read as a second norm.
5
+ * Overlapping areas mix into a colour no variable has, so of more layers only the one the
6
+ * reader points at in the legend fills. Below 768 px each axis becomes a row of bars (rule 9).
7
+ */
8
+ import { type TemplateResult } from 'lit';
9
+ import type { ChartOptions } from '../shared/controller.js';
10
+ import type { ChartSpec } from '../shared/types.js';
11
+ type RadarSpec = Extract<ChartSpec, {
12
+ kind: 'radar';
13
+ }>;
14
+ /**
15
+ * The runs of known values around the circle, as axis indices. Without a gap the one run closes
16
+ * on itself; a gap breaks the line there, as nothing is known to bridge it (rule 15).
17
+ */
18
+ export declare function radarRuns(values: (number | null)[]): {
19
+ closed: boolean;
20
+ runs: number[][];
21
+ };
22
+ /** The rings: every `step` up to `max`, and `max` itself as the outer one. */
23
+ export declare function radarTicks(max: number, step?: number): number[];
24
+ /** Which layers fill: one alone does; of more, the emphasised one (`emphasis`), all or none. */
25
+ export declare function radarFills(spec: Pick<RadarSpec, 'area'>, shown: {
26
+ label: string;
27
+ comparison: boolean;
28
+ complete: boolean;
29
+ }[], emphasis: string | null): Set<string>;
30
+ export declare function renderRadarChart(spec: RadarSpec, options: ChartOptions): TemplateResult;
31
+ export {};
@@ -23,9 +23,11 @@ export interface LegendItem {
23
23
  * dark-yellow one with the edge of its text colour (`lineCasing`).
24
24
  */
25
25
  export declare function renderSymbol(symbol: SeriesKey, color: string | undefined, centre: number): SVGTemplateResult;
26
- export declare function renderLegend({ items, onToggle, position, }: {
26
+ export declare function renderLegend({ items, onToggle, onEmphasis, position, }: {
27
27
  items: LegendItem[];
28
28
  onToggle?: (label: string) => void;
29
+ /** A series pointed at or focused, and `null` once it is left. */
30
+ onEmphasis?: (label: string | null) => void;
29
31
  position?: 'top' | 'bottom' | 'right';
30
32
  }): TemplateResult;
31
33
  type XAnchor = 'start' | 'middle' | 'end';
@@ -35,6 +35,8 @@ export interface TooltipRow {
35
35
  divider?: boolean;
36
36
  /** The series' shape instead of a square swatch, as its legend draws it. */
37
37
  symbol?: SeriesKey;
38
+ /** A line instead of a square swatch, plain or dashed (a norm), as its legend draws it. */
39
+ marker?: 'line' | 'dashed';
38
40
  }
39
41
  export interface TooltipContent {
40
42
  title: string;
@@ -71,6 +73,8 @@ export declare class ChartController {
71
73
  /** What the keyboard's tooltip says, for the chart's status region; empty otherwise. */
72
74
  status: string;
73
75
  hiddenSeries: string[];
76
+ /** The series the reader points at or focuses in the legend; `null` for none. */
77
+ emphasis: string | null;
74
78
  /** The layers of a stacked map switched off in its legend, by their place in the stack. */
75
79
  hiddenLayers: number[];
76
80
  hoverSegment: number | null;
@@ -147,6 +151,7 @@ export declare class ChartController {
147
151
  private watchEscape;
148
152
  private unwatchEscape;
149
153
  toggleLayer(index: number): void;
154
+ emphasise(label: string | null): void;
150
155
  toggleSeries(label: string): void;
151
156
  private read;
152
157
  /**
@@ -238,7 +238,40 @@ export type ChartSpec = {
238
238
  /** The text beside the threshold line; default "norm" with its value and unit. */
239
239
  thresholdLabel?: string;
240
240
  small?: boolean;
241
+ } | {
242
+ kind: 'radar';
243
+ /** The axes' names, five to eight, clockwise from the top. All share one scale. */
244
+ axes: string[];
245
+ /** The layers: at most three variables and one comparison. */
246
+ series: RadarSeriesData[];
247
+ /** The outer ring. The scale starts at 0 in the centre: the area carries the value. */
248
+ max: number;
249
+ /** The distance between the rings; without it five rings. */
250
+ step?: number;
251
+ unit?: string;
252
+ /** A norm on every axis: a dashed polygon in the emphasis colour. */
253
+ threshold?: number;
254
+ thresholdLabel?: string;
255
+ /**
256
+ * Which layer fills. `emphasis` (the default): one layer always does, of more only the
257
+ * one the reader points at in the legend, as overlapping areas mix into a colour no
258
+ * variable has. `always` fills every layer, `never` none.
259
+ */
260
+ area?: 'emphasis' | 'always' | 'never';
261
+ /** The value under each axis name; with one layer only (all or nothing). Default true. */
262
+ dataLabels?: boolean;
263
+ small?: boolean;
241
264
  };
265
+ /**
266
+ * A layer of a radar chart: one value per axis, `null` for no data (rule 15). Without a colour
267
+ * the layers take the data colours in their order; a comparison is grey and dashed.
268
+ */
269
+ export interface RadarSeriesData {
270
+ label: string;
271
+ values: (number | null)[];
272
+ color?: ChartColor;
273
+ comparison?: boolean;
274
+ }
242
275
  export type ChartKind = ChartSpec['kind'];
243
276
  /**
244
277
  * What a map draws. `polygons` are areas that carry their own outline (`MapValue.polygon`);
@@ -4,7 +4,7 @@
4
4
  * data. The modal's events stop here, like the tile's own, so one action is one line in a log.
5
5
  */
6
6
  import { type PropertyDeclarations, type TemplateResult } from 'lit';
7
- import { LintjeGridItemElement } from '../../primitives/shared/grid-item-element.js';
7
+ import { LintjeGridItemElement } from './grid-item-element.js';
8
8
  import '../overlays/modal/modal.js';
9
9
  export interface ExpandModalOptions {
10
10
  heading?: string;
@@ -1,6 +1,7 @@
1
1
  /**
2
- * What `lintje-form`, `lintje-form-section` and `lintje-form-actions` share: finding the controls
3
- * in their light DOM, and setting a property on them that can be handed back.
2
+ * What the holders of controls (`lintje-form`, `lintje-form-section`, `lintje-form-actions`,
3
+ * `lintje-dialog`) and the controls themselves share: finding the controls in a light DOM,
4
+ * reading and writing their values, and setting a property on them that can be handed back.
4
5
  *
5
6
  * A `<fieldset disabled>` in a shadow root disables nothing slotted into it, so each holder
6
7
  * disables controls itself and hands back the state it found, or a control the host had
@@ -10,7 +10,7 @@
10
10
  * action goes first, the last never goes, and a menu of one row does not exist.
11
11
  */
12
12
  import type { ReactiveController, ReactiveControllerHost } from 'lit';
13
- import type { LintjeButton } from '../../primitives/button/button.js';
13
+ import type { LintjeButton } from '../actions/button/button.js';
14
14
  import type { MenuEntry } from '../actions/menu-button/menu-button.js';
15
15
  export interface OverflowItem {
16
16
  width: number;
@@ -6,7 +6,7 @@
6
6
  */
7
7
  import { type PropertyDeclarations, type TemplateResult } from 'lit';
8
8
  import { LintjeElement } from '../../../core/element.js';
9
- import '../../../primitives/button/button.js';
9
+ import '../../actions/button/button.js';
10
10
  export interface ActivityEntry {
11
11
  /** A name, or "Systeem". */
12
12
  who: string;