lintje 0.5.0 → 0.6.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 (219) hide show
  1. package/README.md +1 -1
  2. package/dist-elements/actions.js +1 -5
  3. package/dist-elements/charts.js +1 -5
  4. package/dist-elements/chat.js +1 -6
  5. package/dist-elements/chunks/base-DuuwEY22.js +224 -0
  6. package/dist-elements/chunks/chart-styles-zJy-DGvZ.js +44 -0
  7. package/dist-elements/chunks/controls-IwMNNdZt.js +1 -0
  8. package/dist-elements/chunks/copied-Dx6jfxoK.js +1 -0
  9. package/dist-elements/chunks/date-format-5bii3QLP.js +1 -0
  10. package/dist-elements/chunks/debounce-Dfwdcv-z.js +1 -0
  11. package/dist-elements/chunks/dialog-CuB90unp.js +1 -0
  12. package/dist-elements/chunks/dialog-close-CIwpGpo7.js +1 -0
  13. package/dist-elements/chunks/disclosure-DHZz0V4I.js +22 -0
  14. package/dist-elements/chunks/disclosure-DjLQzn9n.js +1 -0
  15. package/dist-elements/chunks/download-D1wbtARJ.js +13 -0
  16. package/dist-elements/chunks/focus-trap-qYvMiFZF.js +1 -0
  17. package/dist-elements/chunks/frame-resize-observer-BGZg6VbV.js +1 -0
  18. package/dist-elements/chunks/input-CTxDOlLs.js +1 -0
  19. package/dist-elements/chunks/input-fzGBdp-5.js +8 -0
  20. package/dist-elements/chunks/key-CAxrgBxD.js +1 -0
  21. package/dist-elements/chunks/live-message-CYZ-Ch7D.js +1 -0
  22. package/dist-elements/chunks/playback-gEUDw038.js +1 -0
  23. package/dist-elements/chunks/player-Dh7ZHcMF.js +39 -0
  24. package/dist-elements/chunks/prose-DOF7h3je.js +1 -0
  25. package/dist-elements/chunks/sentence-DCIShaRE.js +3 -0
  26. package/dist-elements/chunks/sentence-end-DqHdi7Wb.js +1 -0
  27. package/dist-elements/chunks/stagger-nGiD5JgJ.js +133 -0
  28. package/dist-elements/chunks/transition-DZKyyCQs.js +1 -0
  29. package/dist-elements/content.js +1 -11
  30. package/dist-elements/core.js +1 -1
  31. package/dist-elements/custom-elements.json +121 -96
  32. package/dist-elements/data-types.json +140 -17
  33. package/dist-elements/dev.js +1 -31
  34. package/dist-elements/feedback.js +1 -11
  35. package/dist-elements/filters.js +1 -3
  36. package/dist-elements/forms.js +1 -7
  37. package/dist-elements/frame.js +1 -9
  38. package/dist-elements/guides/dashboard.md +3 -2
  39. package/dist-elements/guides/events.md +12 -2
  40. package/dist-elements/guides/loading.md +4 -0
  41. package/dist-elements/guides/start.md +6 -3
  42. package/dist-elements/inputs.js +1 -21
  43. package/dist-elements/layout.js +1 -4
  44. package/dist-elements/lintje.js +3569 -43561
  45. package/dist-elements/map.js +1 -1
  46. package/dist-elements/overlays.js +1 -5
  47. package/dist-elements/tables.js +1 -9
  48. package/dist-elements/tag/activity-log.js +10 -58
  49. package/dist-elements/tag/ai-label.js +5 -38
  50. package/dist-elements/tag/announcement.js +9 -105
  51. package/dist-elements/tag/app-search.js +22 -173
  52. package/dist-elements/tag/audio-player.js +49 -263
  53. package/dist-elements/tag/badge.js +1 -1
  54. package/dist-elements/tag/breadcrumbs.js +11 -76
  55. package/dist-elements/tag/button.js +1 -1
  56. package/dist-elements/tag/card-list.js +8 -77
  57. package/dist-elements/tag/card.js +36 -171
  58. package/dist-elements/tag/chart.js +457 -2291
  59. package/dist-elements/tag/chat-answer.js +50 -195
  60. package/dist-elements/tag/chat-composer.js +48 -403
  61. package/dist-elements/tag/chat-message.js +13 -75
  62. package/dist-elements/tag/chat-strip.js +20 -100
  63. package/dist-elements/tag/chat-suggestions.js +8 -51
  64. package/dist-elements/tag/chat.js +33 -191
  65. package/dist-elements/tag/checkbox-group.js +6 -46
  66. package/dist-elements/tag/checkbox.js +8 -47
  67. package/dist-elements/tag/code.js +9 -55
  68. package/dist-elements/tag/combobox.js +22 -180
  69. package/dist-elements/tag/conflict-alert.js +12 -67
  70. package/dist-elements/tag/copy-button.js +11 -102
  71. package/dist-elements/tag/data-table.js +302 -1538
  72. package/dist-elements/tag/date-input.js +28 -157
  73. package/dist-elements/tag/date-range.js +30 -231
  74. package/dist-elements/tag/description-list.js +18 -87
  75. package/dist-elements/tag/dialog.js +10 -120
  76. package/dist-elements/tag/document-viewer.js +30 -210
  77. package/dist-elements/tag/drawer.js +10 -86
  78. package/dist-elements/tag/empty-state.js +1 -58
  79. package/dist-elements/tag/error-page.js +13 -90
  80. package/dist-elements/tag/error-summary.js +14 -73
  81. package/dist-elements/tag/expander.js +5 -68
  82. package/dist-elements/tag/explainer.js +6 -61
  83. package/dist-elements/tag/field.js +5 -50
  84. package/dist-elements/tag/file-upload.js +40 -234
  85. package/dist-elements/tag/filter-bar.js +48 -221
  86. package/dist-elements/tag/filter-sheet.js +7 -77
  87. package/dist-elements/tag/filter-zone.js +25 -202
  88. package/dist-elements/tag/find.js +16 -110
  89. package/dist-elements/tag/footer.js +14 -36
  90. package/dist-elements/tag/form-actions.js +3 -103
  91. package/dist-elements/tag/form-section.js +6 -49
  92. package/dist-elements/tag/form.js +5 -291
  93. package/dist-elements/tag/gallery.js +10 -48
  94. package/dist-elements/tag/grid-item.js +1 -1
  95. package/dist-elements/tag/grid.js +1 -1
  96. package/dist-elements/tag/hero.js +7 -50
  97. package/dist-elements/tag/highlight.js +3 -57
  98. package/dist-elements/tag/icon-button.js +1 -1
  99. package/dist-elements/tag/icon.js +1 -1
  100. package/dist-elements/tag/job-list.js +4 -117
  101. package/dist-elements/tag/kpi-row.js +10 -30
  102. package/dist-elements/tag/kpi.js +74 -357
  103. package/dist-elements/tag/level-meter.js +9 -52
  104. package/dist-elements/tag/list.js +36 -225
  105. package/dist-elements/tag/log-viewer.js +101 -707
  106. package/dist-elements/tag/logo.js +27 -82
  107. package/dist-elements/tag/map.js +825 -21851
  108. package/dist-elements/tag/menu-button.js +35 -286
  109. package/dist-elements/tag/modal.js +16 -82
  110. package/dist-elements/tag/multiselect.js +28 -157
  111. package/dist-elements/tag/note.js +3 -22
  112. package/dist-elements/tag/notifications.js +31 -157
  113. package/dist-elements/tag/number-input.js +20 -88
  114. package/dist-elements/tag/page-header.js +17 -178
  115. package/dist-elements/tag/pagination.js +31 -232
  116. package/dist-elements/tag/popover.js +1 -1
  117. package/dist-elements/tag/progress-bar.js +1 -1
  118. package/dist-elements/tag/prose.js +1 -31
  119. package/dist-elements/tag/qr-code.js +6 -878
  120. package/dist-elements/tag/radio-group.js +11 -53
  121. package/dist-elements/tag/range.js +28 -222
  122. package/dist-elements/tag/recording-status.js +10 -82
  123. package/dist-elements/tag/repeater-row.js +1 -1
  124. package/dist-elements/tag/repeater.js +8 -139
  125. package/dist-elements/tag/segmented.js +12 -73
  126. package/dist-elements/tag/select.js +7 -49
  127. package/dist-elements/tag/shell.js +257 -998
  128. package/dist-elements/tag/skeleton.js +1 -1
  129. package/dist-elements/tag/slot-picker.js +13 -56
  130. package/dist-elements/tag/sortable-list.js +19 -193
  131. package/dist-elements/tag/spinner.js +1 -1
  132. package/dist-elements/tag/split-pane.js +10 -155
  133. package/dist-elements/tag/status-dot.js +1 -1
  134. package/dist-elements/tag/stepper.js +18 -118
  135. package/dist-elements/tag/streaming-text.js +14 -94
  136. package/dist-elements/tag/sub-nav.js +27 -141
  137. package/dist-elements/tag/tabs.js +27 -139
  138. package/dist-elements/tag/tag-input.js +32 -215
  139. package/dist-elements/tag/text-editor.js +31 -397
  140. package/dist-elements/tag/text-input.js +21 -110
  141. package/dist-elements/tag/textarea.js +11 -139
  142. package/dist-elements/tag/tile.js +1 -1
  143. package/dist-elements/tag/time-input.js +17 -199
  144. package/dist-elements/tag/toast.js +12 -100
  145. package/dist-elements/tag/toggle.js +6 -39
  146. package/dist-elements/tag/toggletip.js +8 -108
  147. package/dist-elements/tag/token-value.js +2 -72
  148. package/dist-elements/tag/tooltip.js +1 -1
  149. package/dist-elements/tag/transcript.js +31 -278
  150. package/dist-elements/tag/translator.js +7 -80
  151. package/dist-elements/tag/tree-view.js +22 -156
  152. package/dist-elements/tag/user-menu.js +29 -175
  153. package/dist-elements/tag/video-player.js +15 -154
  154. package/dist-elements/tokens.css +44 -20
  155. package/dist-elements/tokens.json +16 -12
  156. package/dist-elements/types/components/charts/chart/chart.d.ts +9 -1
  157. package/dist-elements/types/components/content/log-viewer/log-viewer.d.ts +0 -2
  158. package/dist-elements/types/components/feedback/recording-status/recording-status.d.ts +5 -2
  159. package/dist-elements/types/components/feedback/streaming-text/streaming-text.d.ts +1 -0
  160. package/dist-elements/types/components/forms/repeater/repeater.d.ts +1 -1
  161. package/dist-elements/types/components/forms/stepper/stepper.d.ts +12 -1
  162. package/dist-elements/types/components/frame/notifications/notifications.d.ts +0 -2
  163. package/dist-elements/types/components/inputs/checkbox-group/checkbox-group.d.ts +3 -2
  164. package/dist-elements/types/components/inputs/file-upload/file-upload.d.ts +12 -2
  165. package/dist-elements/types/components/inputs/find/find.d.ts +0 -3
  166. package/dist-elements/types/components/inputs/number-input/number-input.d.ts +3 -2
  167. package/dist-elements/types/components/inputs/range/range.d.ts +1 -0
  168. package/dist-elements/types/components/inputs/shared/input.d.ts +25 -3
  169. package/dist-elements/types/components/inputs/tag-input/tag-input.d.ts +0 -1
  170. package/dist-elements/types/components/map/map/map.d.ts +9 -1
  171. package/dist-elements/types/components/overlays/popover/popover.d.ts +6 -1
  172. package/dist-elements/types/components/shared/charts/map-chart/drawings.d.ts +4 -1
  173. package/dist-elements/types/components/shared/charts/map-chart/leaflet.d.ts +1 -1
  174. package/dist-elements/types/components/shared/charts/map-chart/map-chart.d.ts +5 -2
  175. package/dist-elements/types/components/shared/charts/map-chart/marks.d.ts +15 -4
  176. package/dist-elements/types/components/shared/charts/map-chart/series-style.d.ts +10 -0
  177. package/dist-elements/types/components/shared/charts/pie-chart/pie-chart.d.ts +2 -1
  178. package/dist-elements/types/components/shared/charts/shared/axes.d.ts +5 -3
  179. package/dist-elements/types/components/shared/charts/shared/controller.d.ts +15 -3
  180. package/dist-elements/types/components/shared/charts/shared/mark-select.d.ts +2 -1
  181. package/dist-elements/types/components/shared/charts/shared/runs.d.ts +7 -0
  182. package/dist-elements/types/components/shared/charts/shared/types.d.ts +57 -3
  183. package/dist-elements/types/components/shared/controls.d.ts +2 -0
  184. package/dist-elements/types/components/shared/disclosure.d.ts +2 -2
  185. package/dist-elements/types/components/shared/frame-resize-observer.d.ts +12 -0
  186. package/dist-elements/types/components/shared/live-message.d.ts +17 -0
  187. package/dist-elements/types/components/shared/transition.d.ts +12 -0
  188. package/dist-elements/types/components/tables/card/card.d.ts +0 -5
  189. package/dist-elements/types/components/tables/card-list/card-list.d.ts +2 -5
  190. package/dist-elements/types/components/tables/data-table/data-table.d.ts +8 -5
  191. package/dist-elements/types/components/tables/data-table/filters.d.ts +4 -2
  192. package/dist-elements/types/components/tables/description-list/description-list.d.ts +3 -2
  193. package/dist-elements/types/components/tables/sortable-list/sortable-list.d.ts +1 -1
  194. package/dist-elements/types/core/element.d.ts +5 -2
  195. package/dist-elements/types/core/links.d.ts +2 -0
  196. package/dist-elements/types/core/styles.d.ts +2 -0
  197. package/dist-elements/types/types.d.ts +8 -4
  198. package/package.json +2 -2
  199. package/dist-elements/chunks/base-CVKIPSLx.js +0 -2865
  200. package/dist-elements/chunks/chart-styles-JK4clSyA.js +0 -108
  201. package/dist-elements/chunks/controls-_4ac1Lpz.js +0 -121
  202. package/dist-elements/chunks/copied-7BXYVkXT.js +0 -4
  203. package/dist-elements/chunks/date-format-DxP9yfDp.js +0 -152
  204. package/dist-elements/chunks/debounce-JXnLMCcF.js +0 -25
  205. package/dist-elements/chunks/dialog-D4V467iC.js +0 -28
  206. package/dist-elements/chunks/dialog-close-u75fVEw4.js +0 -4
  207. package/dist-elements/chunks/disclosure-D39vAR5q.js +0 -4
  208. package/dist-elements/chunks/disclosure-DVex7Lo_.js +0 -64
  209. package/dist-elements/chunks/download-D7ZarlMZ.js +0 -103
  210. package/dist-elements/chunks/focus-trap-rje9Oz19.js +0 -73
  211. package/dist-elements/chunks/input-DEHA2Z_0.js +0 -195
  212. package/dist-elements/chunks/input-lQTmOMOz.js +0 -4
  213. package/dist-elements/chunks/key-CuuOw1KE.js +0 -4
  214. package/dist-elements/chunks/playback-DZJ_NMXv.js +0 -133
  215. package/dist-elements/chunks/player-DDDWUevR.js +0 -208
  216. package/dist-elements/chunks/prose-CmKVp5kL.js +0 -4
  217. package/dist-elements/chunks/sentence-end-8jlqKJ5P.js +0 -8
  218. package/dist-elements/chunks/sentence-mY0Iqu5H.js +0 -15
  219. package/dist-elements/chunks/stagger-Dvkth9_C.js +0 -515
@@ -644,7 +644,7 @@
644
644
  "ChartData": {
645
645
  "kind": "interface",
646
646
  "module": "src/types.ts",
647
- "description": "Events: `lintje-mark-select` `{id, label, href}` when a mark with a `href` is clicked,\n`{id: null, href: clearHref}` when the selection is undone.",
647
+ "description": "Events: `lintje-mark-select` `{id, label, href}` when a mark with a `href` is clicked,\n`{id: null, href: clearHref}` when the selection is undone; uncancelled, the page goes to\nthat `href`.",
648
648
  "extends": [
649
649
  "FrameSettings",
650
650
  "TileData",
@@ -896,9 +896,9 @@
896
896
  },
897
897
  {
898
898
  "name": "onSelect",
899
- "type": "(mark: ChartSelection) => void",
899
+ "type": "(mark: ChartSelection, newTab?: boolean) => void",
900
900
  "optional": true,
901
- "description": "A mark that carries a `href` was activated. Without this the marks stay inert."
901
+ "description": "A mark that carries a `href` was activated; `newTab` for a modifier or middle click. Without\nthis the marks stay inert."
902
902
  },
903
903
  {
904
904
  "name": "onClear",
@@ -1229,7 +1229,8 @@
1229
1229
  {
1230
1230
  "name": "legendTable",
1231
1231
  "type": "boolean",
1232
- "optional": true
1232
+ "optional": true,
1233
+ "description": "The legend as a table with counts and shares; `false` puts the shared legend above the pie."
1233
1234
  },
1234
1235
  {
1235
1236
  "name": "labelHeader",
@@ -2100,7 +2101,7 @@
2100
2101
  "DataTableData": {
2101
2102
  "kind": "interface",
2102
2103
  "module": "src/types.ts",
2103
- "description": "Events: `lintje-row-click` with `{id, label, href?}` in a clickable table;\n`lintje-row-open` with `{id, label, href?}` from the name of an `openable` one;\n`lintje-checked-change` with the checked keys in a selectable one;\n`lintje-sort-change` with `{key, direction}` or `null`;\n`lintje-cell-edit` `{id, column, value}` from an `editor` column;\n`lintje-row-action` `{id, action}` from `rowActions`;\n`lintje-bulk-action` `{ids, action}` from `bulkActions`;\n`lintje-filter-change` `{column, value}` (`string[] | string | null`) from a column `filter`;\n`lintje-columns-change` `{order, hidden}` from the `columnChooser`.",
2104
+ "description": "Events: `lintje-row-click` with `{id, label, href?}` in a clickable table;\n`lintje-row-open` with `{id, label, href?}` from the name of an `openable` one; uncancelled,\neither goes to the row's `href`;\n`lintje-checked-change` with the checked keys in a selectable one;\n`lintje-sort-change` with `{key, direction}` or `null`;\n`lintje-cell-edit` `{id, column, value}` from an `editor` column;\n`lintje-row-action` `{id, action}` from `rowActions`;\n`lintje-bulk-action` `{ids, action}` from `bulkActions`;\n`lintje-filter-change` `{column, value}` (`string[] | string | null`) from a column `filter`;\n`lintje-columns-change` `{order, hidden}` from the `columnChooser`.",
2104
2105
  "extends": [
2105
2106
  "FrameSettings",
2106
2107
  "TileData",
@@ -2362,7 +2363,7 @@
2362
2363
  "name": "tone",
2363
2364
  "type": "DescriptionTone",
2364
2365
  "optional": true,
2365
- "description": "`changed`: differs from the default, and says \"Aangepast\". A shared tone carries its\nglyph when it has one, and the words are the host's (in the value or its slot)."
2366
+ "description": "`changed`: differs from the default, and says \"Aangepast\". A shared tone carries its glyph\nwhen it has one, with a hidden word for what the glyph says; the rest of the words are the\nhost's (in the value or its slot)."
2366
2367
  },
2367
2368
  {
2368
2369
  "name": "slot",
@@ -3630,7 +3631,7 @@
3630
3631
  },
3631
3632
  {
3632
3633
  "name": "select",
3633
- "type": "(value: MapValue) => void",
3634
+ "type": "(value: MapValue, newTab?: boolean) => void",
3634
3635
  "optional": false
3635
3636
  },
3636
3637
  {
@@ -3673,6 +3674,12 @@
3673
3674
  "optional": true,
3674
3675
  "description": "The shape the line carries at its end, drawn on its line marker (rule 13)."
3675
3676
  },
3677
+ {
3678
+ "name": "symbolShape",
3679
+ "type": "SeriesShape",
3680
+ "optional": true,
3681
+ "description": "A `point` marker's shape when it is not the shape of a colour's name (a map's styled series)."
3682
+ },
3676
3683
  {
3677
3684
  "name": "hidden",
3678
3685
  "type": "boolean",
@@ -4113,7 +4120,7 @@
4113
4120
  "MapData": {
4114
4121
  "kind": "interface",
4115
4122
  "module": "src/types.ts",
4116
- "description": "Events: `lintje-mark-select` `{id, label, href?}` on a click on an area or point,\n`{id: null, href: clearHref}` when undone; `lintje-layer-change` with the chosen layer;\nwith `controls.lasso` or `controls.circle`, `lintje-area-select` `{area, ids}` for a drawn area and\n`{area: null, ids: []}` when it is undone.",
4123
+ "description": "Events: `lintje-mark-select` `{id, label, href?}` on a click on an area or point,\n`{id: null, href: clearHref}` when undone; `lintje-layer-change` with the chosen layer;\nwith `controls.lasso` or `controls.circle`, `lintje-area-select` `{area, ids}` for a drawn area and\n`{area: null, ids: []}` when it is undone. An uncancelled `lintje-mark-select` goes to its\n`href`.",
4117
4124
  "extends": [
4118
4125
  "FrameSettings",
4119
4126
  "TileData",
@@ -4175,6 +4182,17 @@
4175
4182
  "name": "seriesLabels",
4176
4183
  "type": "Partial<Record<MapSeriesKey, string>>",
4177
4184
  "optional": true
4185
+ },
4186
+ {
4187
+ "name": "seriesStyles",
4188
+ "type": "Partial<Record<MapSeriesKey, MapSeriesStyle>>",
4189
+ "optional": true
4190
+ },
4191
+ {
4192
+ "name": "size",
4193
+ "type": "MapPointSize",
4194
+ "optional": true,
4195
+ "description": "How this layer's points are sized; `pointRadius` reads it."
4178
4196
  }
4179
4197
  ]
4180
4198
  },
@@ -4250,9 +4268,9 @@
4250
4268
  },
4251
4269
  {
4252
4270
  "name": "onSelect",
4253
- "type": "(mark: MapValue) => void",
4271
+ "type": "(mark: MapValue, newTab?: boolean) => void",
4254
4272
  "optional": true,
4255
- "description": "An area or point was clicked; the whole mark travels, as the panel needs its figure."
4273
+ "description": "An area or point was clicked; the whole mark travels, as the panel needs its figure. `newTab`\nfor a modifier or middle click on a mark with an `href`, which leaves the selection be."
4256
4274
  },
4257
4275
  {
4258
4276
  "name": "onClear",
@@ -4312,6 +4330,18 @@
4312
4330
  "type": "Partial<Record<MapSeriesKey, string>>",
4313
4331
  "optional": true,
4314
4332
  "description": "What each series in this layer means, over the map's own `seriesLabels`. A colour may serve\nseveral layers; each layer's line in the legend names and switches its own."
4333
+ },
4334
+ {
4335
+ "name": "seriesStyles",
4336
+ "type": "Partial<Record<MapSeriesKey, MapSeriesStyle>>",
4337
+ "optional": true,
4338
+ "description": "How this layer's series draw, over the map's own `seriesStyles`."
4339
+ },
4340
+ {
4341
+ "name": "size",
4342
+ "type": "MapPointSize",
4343
+ "optional": true,
4344
+ "description": "How this layer's points are sized; without it the map's own `size`."
4315
4345
  }
4316
4346
  ]
4317
4347
  },
@@ -4321,11 +4351,67 @@
4321
4351
  "description": "What one layer of a stacked map draws: a map's variant, without the scope picker.",
4322
4352
  "text": "'polygons' | 'points' | 'flows' | 'choropleth'"
4323
4353
  },
4354
+ "MapPointSize": {
4355
+ "kind": "interface",
4356
+ "module": "src/components/shared/charts/shared/types.ts",
4357
+ "description": "How a layer's points are sized. Without it a point's radius grows from 3 to 18 px with the\nsquare root of its figure's share of the layer's largest, and keeps that size at every zoom.",
4358
+ "extends": [],
4359
+ "fields": [
4360
+ {
4361
+ "name": "min",
4362
+ "type": "number",
4363
+ "optional": true,
4364
+ "description": "The smallest radius in px; default 3."
4365
+ },
4366
+ {
4367
+ "name": "max",
4368
+ "type": "number",
4369
+ "optional": true,
4370
+ "description": "The largest radius in px; default 18."
4371
+ },
4372
+ {
4373
+ "name": "by",
4374
+ "type": "'value' | 'none'",
4375
+ "optional": true,
4376
+ "description": "`value` (default): the radius follows the figure. `none`: every point draws at `min` — for a\nlayer whose figure is a count of one, or no size at all, so a national view is not a field\nof points all at the largest size."
4377
+ },
4378
+ {
4379
+ "name": "zoom",
4380
+ "type": "boolean",
4381
+ "optional": true,
4382
+ "description": "The radius follows the zoom — twice as large one level in, half a level out, between 2 and\n28 px — so a point reads as fixed to the ground. Default off: a point keeps its pixel size."
4383
+ }
4384
+ ]
4385
+ },
4386
+ "MapSeriesColor": {
4387
+ "kind": "alias",
4388
+ "module": "src/components/shared/charts/shared/types.ts",
4389
+ "description": "A series' colour: a data colour, or `neutral` — the comparison grey, for a map whose series differ by shape alone.",
4390
+ "text": "DataColor | 'neutral'"
4391
+ },
4324
4392
  "MapSeriesKey": {
4325
4393
  "kind": "alias",
4326
4394
  "module": "src/components/shared/charts/shared/types.ts",
4327
- "description": "A map point's data colour, by name: one of the data colours, each with its own shape.",
4328
- "text": "DataColor"
4395
+ "description": "What a point's `series` names: a data colour by name, which brings that colour's shape — or\nany key of the map's `seriesStyles`, which says what colour and shape it draws with. The\nunion keeps the colour names as suggestions beside the free key.",
4396
+ "text": "DataColor | (string & {})"
4397
+ },
4398
+ "MapSeriesStyle": {
4399
+ "kind": "interface",
4400
+ "module": "src/components/shared/charts/shared/types.ts",
4401
+ "description": "How a series draws, named by its key in `seriesStyles`. Without an entry a series is a data\ncolour by name with that colour's own shape (rule 13); with one, each part left out keeps\nthat default — and a key that is no colour name draws the default colour and a circle.",
4402
+ "extends": [],
4403
+ "fields": [
4404
+ {
4405
+ "name": "color",
4406
+ "type": "MapSeriesColor",
4407
+ "optional": true
4408
+ },
4409
+ {
4410
+ "name": "shape",
4411
+ "type": "SeriesShape",
4412
+ "optional": true
4413
+ }
4414
+ ]
4329
4415
  },
4330
4416
  "MapSpec": {
4331
4417
  "kind": "interface",
@@ -4396,7 +4482,13 @@
4396
4482
  "name": "seriesLabels",
4397
4483
  "type": "Partial<Record<MapSeriesKey, string>>",
4398
4484
  "optional": true,
4399
- "description": "What each series means, keyed by colour name; each used series gets a legend line."
4485
+ "description": "What each series means, keyed by its series key; each used series gets a legend line."
4486
+ },
4487
+ {
4488
+ "name": "seriesStyles",
4489
+ "type": "Partial<Record<MapSeriesKey, MapSeriesStyle>>",
4490
+ "optional": true,
4491
+ "description": "How a series draws, keyed as `seriesLabels` is — for series that differ by shape alone, in\none neutral colour, when the colour would carry a meaning that is not there. Without an\nentry a series keeps the colour of its name and that colour's shape."
4400
4492
  },
4401
4493
  {
4402
4494
  "name": "selectLabel",
@@ -4427,6 +4519,12 @@
4427
4519
  "type": "MapArea | null",
4428
4520
  "optional": true,
4429
4521
  "description": "The area the host keeps, from its URL: adopted when it changes, as `selectedId` is."
4522
+ },
4523
+ {
4524
+ "name": "size",
4525
+ "type": "MapPointSize",
4526
+ "optional": true,
4527
+ "description": "How the points are sized, for every layer that does not say so itself."
4430
4528
  }
4431
4529
  ]
4432
4530
  },
@@ -4478,7 +4576,7 @@
4478
4576
  "name": "series",
4479
4577
  "type": "MapSeriesKey",
4480
4578
  "optional": true,
4481
- "description": "A data colour by name, and with it that colour's shape (rule 13). No series, no legend."
4579
+ "description": "The series this mark belongs to: a data colour by name, and with it that colour's shape\n(rule 13), or a key styled in `seriesStyles`. No series, no legend."
4482
4580
  },
4483
4581
  {
4484
4582
  "name": "polygon",
@@ -4544,8 +4642,9 @@
4544
4642
  },
4545
4643
  {
4546
4644
  "name": "click",
4547
- "type": "(() => void) | typeof nothing",
4548
- "optional": false
4645
+ "type": "((event: MouseEvent) => void) | typeof nothing",
4646
+ "optional": false,
4647
+ "description": "Bound to both `click` and `auxclick`: the middle button opens the mark's `href` in a new tab."
4549
4648
  },
4550
4649
  {
4551
4650
  "name": "keydown",
@@ -4599,7 +4698,7 @@
4599
4698
  },
4600
4699
  {
4601
4700
  "name": "select",
4602
- "type": "(value: MapValue) => void",
4701
+ "type": "(value: MapValue, newTab?: boolean) => void",
4603
4702
  "optional": false
4604
4703
  },
4605
4704
  {
@@ -5313,6 +5412,24 @@
5313
5412
  }
5314
5413
  ]
5315
5414
  },
5415
+ "ResolvedSeriesStyle": {
5416
+ "kind": "interface",
5417
+ "module": "src/components/shared/charts/map-chart/series-style.ts",
5418
+ "extends": [],
5419
+ "fields": [
5420
+ {
5421
+ "name": "color",
5422
+ "type": "string | undefined",
5423
+ "optional": false,
5424
+ "description": "A CSS colour, or nothing for the default."
5425
+ },
5426
+ {
5427
+ "name": "shape",
5428
+ "type": "SeriesShape",
5429
+ "optional": false
5430
+ }
5431
+ ]
5432
+ },
5316
5433
  "RowClickDetail": {
5317
5434
  "kind": "interface",
5318
5435
  "module": "src/components/tables/list/list.ts",
@@ -5935,6 +6052,12 @@
5935
6052
  "type": "string",
5936
6053
  "optional": true,
5937
6054
  "description": "A sentence or two about the step, shown only when the steps stand in a column."
6055
+ },
6056
+ {
6057
+ "name": "value",
6058
+ "type": "string",
6059
+ "optional": true,
6060
+ "description": "The name of the step's slot: a child of `<lintje-stepper>` with `slot=\"<value>\"` is the\nstep's own content, any Lintje element or plain HTML. It inherits the text colour; the host\ndecides what it shows."
5938
6061
  }
5939
6062
  ]
5940
6063
  },
@@ -1,31 +1 @@
1
- //#region src/bundle/dev.ts
2
- function e(e = document) {
3
- let t = /* @__PURE__ */ new Set();
4
- for (let n of e.querySelectorAll("*")) {
5
- let e = n.localName;
6
- e.startsWith("lintje-") && !customElements.get(e) && t.add(e);
7
- }
8
- return [...t].sort();
9
- }
10
- var t = /* @__PURE__ */ new Set();
11
- function n(n = document) {
12
- let r = e(n).filter((e) => !t.has(e));
13
- for (let e of r) t.add(e), console.warn(`<${e}> is on the page but not defined. Import its file (tag/${e.replace(/^lintje-/, "")}.js) or its category.`);
14
- return r;
15
- }
16
- var r = 1e3;
17
- if (typeof document < "u" && typeof MutationObserver < "u") {
18
- let e, t = () => {
19
- e === void 0 && (e = setTimeout(() => {
20
- e = void 0, n();
21
- }, r));
22
- }, i = () => {
23
- t(), new MutationObserver(t).observe(document.documentElement, {
24
- childList: !0,
25
- subtree: !0
26
- });
27
- };
28
- document.readyState === "complete" ? i() : window.addEventListener("load", i, { once: !0 });
29
- }
30
- //#endregion
31
- export { n as reportUndefinedTags, e as undefinedTags };
1
+ function e(e=document){let t=/* @__PURE__ */ new Set;for(let n of e.querySelectorAll(`*`)){let e=n.localName;e.startsWith(`lintje-`)&&!customElements.get(e)&&t.add(e)}return[...t].sort()}var t=/* @__PURE__ */ new Set;function n(n=document){let r=e(n).filter(e=>!t.has(e));for(let e of r)t.add(e),console.warn(`<${e}> is on the page but not defined. Import its file (tag/${e.replace(/^lintje-/,``)}.js) or its category.`);return r}var r=1e3;if(typeof document<`u`&&typeof MutationObserver<`u`){let e,t=()=>{e===void 0&&(e=setTimeout(()=>{e=void 0,n()},r))},i=()=>{t(),new MutationObserver(t).observe(document.documentElement,{childList:!0,subtree:!0})};document.readyState===`complete`?i():window.addEventListener(`load`,i,{once:!0})}export{n as reportUndefinedTags,e as undefinedTags};
@@ -1,11 +1 @@
1
- import "./chunks/base-CVKIPSLx.js";
2
- import "./tag/toast.js";
3
- import "./tag/announcement.js";
4
- import "./tag/empty-state.js";
5
- import "./tag/conflict-alert.js";
6
- import "./tag/error-page.js";
7
- import "./tag/job-list.js";
8
- import "./tag/streaming-text.js";
9
- import "./tag/ai-label.js";
10
- import "./tag/level-meter.js";
11
- import "./tag/recording-status.js";
1
+ import"./chunks/base-DuuwEY22.js";import"./tag/toast.js";import"./tag/announcement.js";import"./tag/empty-state.js";import"./tag/conflict-alert.js";import"./tag/error-page.js";import"./tag/job-list.js";import"./tag/streaming-text.js";import"./tag/ai-label.js";import"./tag/level-meter.js";import"./tag/recording-status.js";
@@ -1,3 +1 @@
1
- import "./tag/filter-zone.js";
2
- import "./tag/filter-sheet.js";
3
- import "./tag/filter-bar.js";
1
+ import"./tag/filter-zone.js";import"./tag/filter-sheet.js";import"./tag/filter-bar.js";
@@ -1,7 +1 @@
1
- import "./inputs.js";
2
- import "./tag/error-summary.js";
3
- import "./tag/form-actions.js";
4
- import "./tag/form.js";
5
- import "./tag/form-section.js";
6
- import "./tag/stepper.js";
7
- import "./tag/repeater.js";
1
+ import"./inputs.js";import"./tag/error-summary.js";import"./tag/form-actions.js";import"./tag/form.js";import"./tag/form-section.js";import"./tag/stepper.js";import"./tag/repeater.js";
@@ -1,9 +1 @@
1
- import "./tag/notifications.js";
2
- import "./tag/user-menu.js";
3
- import "./tag/shell.js";
4
- import "./tag/page-header.js";
5
- import "./tag/breadcrumbs.js";
6
- import "./tag/sub-nav.js";
7
- import "./tag/hero.js";
8
- import "./tag/footer.js";
9
- import "./tag/app-search.js";
1
+ import"./tag/notifications.js";import"./tag/user-menu.js";import"./tag/shell.js";import"./tag/page-header.js";import"./tag/breadcrumbs.js";import"./tag/sub-nav.js";import"./tag/hero.js";import"./tag/footer.js";import"./tag/app-search.js";
@@ -84,8 +84,9 @@ applicatie.
84
84
  ## Doorklikken en selectie
85
85
 
86
86
  `lintje-row-click` en `lintje-mark-select` komen van de tabel en van de grafiek- en
87
- kaarttegels. Volg de `href` die je op die rij of markering hebt gezet, of zet `data.selectedId` zelf.
88
- Een selectie ongedaan maken is hetzelfde event met de id null en de `href` die je als `clearHref` gaf.
87
+ kaarttegels. Heeft de rij of markering een `href`, dan gaat het element erheen, tenzij je het event
88
+ annuleert; dan zet je `data.selectedId` zelf. Een selectie ongedaan maken is hetzelfde event met de
89
+ id null, en gaat zo naar de `href` die je als `clearHref` gaf.
89
90
  `lintje-sort-change` zet `data.sort`, `lintje-checked-change` `data.checkedIds`,
90
91
  `lintje-layer-change` de `data.layer` van de kaart.
91
92
 
@@ -1,7 +1,8 @@
1
1
  # Events: wat een element vraagt, en wat jij antwoordt
2
2
 
3
- Een element haalt nooit iets op, schrijft nooit de URL en navigeert nooit. Het stuurt een event en wacht
4
- tot jij een property zet. Elk event is een `CustomEvent`, bubbling en composed, dus één listener
3
+ Een element haalt nooit iets op en schrijft nooit de URL; het gaat alleen naar een adres dat jij gaf,
4
+ en nooit als je zijn event annuleert ([links](#links)). Het stuurt een event en wacht tot jij een
5
+ property zet. Elk event is een `CustomEvent`, bubbling en composed, dus één listener
5
6
  op `document` hoort het vanaf elke diepte: de payload is `event.detail`, `event.target` het element
6
7
  dat het stuurde. Welke tag wat stuurt, staat in de styleguide, onder elk element.
7
8
 
@@ -23,6 +24,15 @@ download. Waar geen klik te volgen is — een resultaat dat je met Enter kiest i
23
24
  klik naast de titel van een kaart, een rij van de takenlijst — gaat het element zelf naar het adres, tenzij je het event annuleert. Een linkrij van `lintje-list` (`lintje-row-click`) en een melding met een `href`
24
25
  (`lintje-notification-open`) werken op dezelfde manier.
25
26
 
27
+ Zo werken ook een klikbare rij van `lintje-data-table` (`lintje-row-click`, `lintje-row-open`), een
28
+ teken in `lintje-chart` en een markering op `lintje-map` (`lintje-mark-select`) met een `href`:
29
+ eerst het event, en annuleert niemand het, dan gaat het element naar de `href`, via
30
+ `lintje-navigate`, zodat een router het daar opvangt. Een selectie ongedaan maken gaat zo naar de
31
+ `clearHref`. Zonder `href` is er alleen het event. Een klik met een modifier of met de middelste
32
+ knop op zo'n rij of teken stuurt hun event niet, maar opent de `href` in een nieuw tabblad, zoals
33
+ een link: dan heeft `lintje-navigate` `{ href, newTab: true }`. Een router die `lintje-navigate`
34
+ annuleert, ziet aan `newTab` dat de lezer een nieuw tabblad vroeg, en opent het zelf of laat het.
35
+
26
36
  Een instelling van de lezer in de shell — modus, thema, waar het menu staat — is geen link:
27
37
  `lintje-shell` stuurt `lintje-view-change` met de instelling die veranderde en laat het aan jou over
28
38
  ([dashboards](dashboard.md)).
@@ -137,3 +137,7 @@ setHostConfig({ scrollRoot: () => document.querySelector('#content') })
137
137
 
138
138
  Houd de elementen buiten elke voorouder met een `transform`, `filter` of `contain`: de scrim van een modal
139
139
  is `position: fixed` en zou relatief worden aan die voorouder.
140
+
141
+ De bovenindeling van `lintje-shell` zet haar navigatiebalk vast aan het venster, dus die vraagt een pagina die
142
+ zelf scrolt. Scrollt je applicatie een eigen container, kies dan de zij-indeling (`layout="side"`): die werkt
143
+ met een eigen `scrollRoot`.
@@ -83,8 +83,10 @@ van je template-engine doet dat.
83
83
 
84
84
  **De invoer doet mee in een native formulier.** Een `lintje-button` met `type="submit"` verstuurt het,
85
85
  Enter in een tekst- of getalveld ook (Ctrl+Enter in een textarea), en `type="reset"`, een
86
- `disabled` veld en een `<fieldset disabled>` gedragen zich als bij native bedieningselementen. Een `required`
87
- tekstveld, getalveld of textarea houdt het versturen tegen met de eigen melding van de browser. Wat elk
86
+ `disabled` veld en een `<fieldset disabled>` gedragen zich als bij native bedieningselementen. Elke
87
+ invoer met `required` houdt het versturen tegen met de eigen melding van de browser zolang hij leeg is:
88
+ hij post dan niets, of een van zijn waarden is leeg. De verzendknop post zijn eigen `name` en `value`
89
+ niet: wil de server weten met welke knop er verstuurd is, zet dat dan in een veld. Wat elk
88
90
  bedieningselement onder zijn `name` post:
89
91
 
90
92
  | bedieningselement | post |
@@ -98,7 +100,8 @@ bedieningselement onder zijn `name` post:
98
100
  | bereik met twee grepen | `name=5&name=20`, de twee stapindexen; met één greep `name=15`, de stap |
99
101
  | bestandsupload | `name=<id>` per voltooid bestand: de upload zelf loopt via zijn events |
100
102
 
101
- Toon een geweigerde waarde door het veld te renderen met zijn `error`-attribuut.
103
+ Toon een geweigerde waarde door het veld te renderen met zijn `error`-attribuut. Een `error` houdt het
104
+ versturen niet tegen: het is het antwoord van de server op een eerdere verzending.
102
105
 
103
106
  ## Een pagina met script
104
107
 
@@ -1,21 +1 @@
1
- import "./tag/radio-group.js";
2
- import "./tag/segmented.js";
3
- import "./tag/textarea.js";
4
- import "./tag/find.js";
5
- import "./tag/select.js";
6
- import "./tag/text-input.js";
7
- import "./tag/field.js";
8
- import "./tag/number-input.js";
9
- import "./tag/combobox.js";
10
- import "./tag/checkbox.js";
11
- import "./tag/multiselect.js";
12
- import "./tag/tag-input.js";
13
- import "./tag/checkbox-group.js";
14
- import "./tag/toggle.js";
15
- import "./tag/range.js";
16
- import "./tag/date-input.js";
17
- import "./tag/time-input.js";
18
- import "./tag/date-range.js";
19
- import "./tag/slot-picker.js";
20
- import "./tag/file-upload.js";
21
- import "./tag/text-editor.js";
1
+ import"./tag/radio-group.js";import"./tag/segmented.js";import"./tag/textarea.js";import"./tag/find.js";import"./tag/select.js";import"./tag/text-input.js";import"./tag/field.js";import"./tag/number-input.js";import"./tag/combobox.js";import"./tag/checkbox.js";import"./tag/multiselect.js";import"./tag/tag-input.js";import"./tag/checkbox-group.js";import"./tag/toggle.js";import"./tag/range.js";import"./tag/date-input.js";import"./tag/time-input.js";import"./tag/date-range.js";import"./tag/slot-picker.js";import"./tag/file-upload.js";import"./tag/text-editor.js";
@@ -1,4 +1 @@
1
- import "./chunks/base-CVKIPSLx.js";
2
- import "./tag/tabs.js";
3
- import "./tag/expander.js";
4
- import "./tag/split-pane.js";
1
+ import"./chunks/base-DuuwEY22.js";import"./tag/tabs.js";import"./tag/expander.js";import"./tag/split-pane.js";