@teipublisher/pb-components 2.26.1-next.3 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (154) hide show
  1. package/.github/workflows/main.yml +3 -3
  2. package/.github/workflows/node.js.yml +3 -3
  3. package/.github/workflows/release.js.yml +4 -4
  4. package/.releaserc.json +2 -2
  5. package/CHANGELOG.md +262 -11
  6. package/Dockerfile +78 -70
  7. package/css/components.css +5 -5
  8. package/css/leaflet/images/layers.png +0 -0
  9. package/dist/demo/components.css +46 -1
  10. package/dist/demo/pb-browse-docs2.html +1 -1
  11. package/dist/demo/pb-dialog.html +3 -5
  12. package/dist/demo/pb-drawer2.html +1 -1
  13. package/dist/demo/pb-facsimile.html +2 -2
  14. package/dist/demo/pb-grid.html +19 -6
  15. package/dist/demo/pb-leaflet-map.html +1 -1
  16. package/dist/demo/pb-login.html +0 -2
  17. package/dist/demo/pb-message.html +1 -2
  18. package/dist/demo/pb-progress.html +2 -2
  19. package/dist/demo/pb-repeat.html +1 -3
  20. package/dist/demo/pb-search.html +7 -4
  21. package/dist/demo/pb-search3.html +1 -1
  22. package/dist/demo/pb-search4.html +2 -2
  23. package/dist/demo/pb-view3.html +1 -1
  24. package/dist/{iron-form-3b8dcaa7.js → iron-form-dfb3e3b1.js} +95 -95
  25. package/dist/paper-checkbox-645e1077.js +200 -0
  26. package/dist/{paper-icon-button-b1d31571.js → paper-icon-button-984162bd.js} +1 -1
  27. package/dist/{paper-checkbox-515a5284.js → paper-inky-focus-behavior-fa16796b.js} +58 -247
  28. package/dist/{paper-listbox-a3b7175c.js → paper-listbox-5f5d1cec.js} +152 -162
  29. package/dist/pb-code-editor.js +25 -20
  30. package/dist/pb-component-docs.js +68 -64
  31. package/dist/pb-components-bundle.js +1983 -2293
  32. package/dist/pb-edit-app.js +167 -107
  33. package/dist/pb-elements.json +176 -120
  34. package/dist/{pb-i18n-0611135a.js → pb-i18n-4cc00bfe.js} +1 -1
  35. package/dist/pb-leaflet-map.js +23 -23
  36. package/dist/pb-mei.js +56 -41
  37. package/dist/{pb-mixin-b1caa22e.js → pb-mixin-886ece32.js} +1 -1
  38. package/dist/pb-odd-editor.js +1023 -782
  39. package/dist/pb-tify.js +2 -2
  40. package/dist/vaadin-element-mixin-beb74ffd.js +545 -0
  41. package/gh-pages.js +5 -3
  42. package/i18n/common/en.json +6 -0
  43. package/i18n/common/pl.json +2 -2
  44. package/lib/openseadragon.min.js +6 -6
  45. package/package.json +3 -3
  46. package/pb-elements.json +176 -120
  47. package/src/assets/components.css +5 -5
  48. package/src/authority/airtable.js +20 -21
  49. package/src/authority/anton.js +129 -129
  50. package/src/authority/custom.js +23 -21
  51. package/src/authority/geonames.js +38 -32
  52. package/src/authority/gnd.js +50 -42
  53. package/src/authority/kbga.js +137 -134
  54. package/src/authority/metagrid.js +44 -46
  55. package/src/authority/reconciliation.js +66 -67
  56. package/src/authority/registry.js +4 -4
  57. package/src/docs/pb-component-docs.js +2 -2
  58. package/src/docs/pb-component-view.js +5 -5
  59. package/src/docs/pb-components-list.js +2 -2
  60. package/src/docs/pb-demo-snippet.js +2 -2
  61. package/src/dts-client.js +299 -297
  62. package/src/dts-select-endpoint.js +90 -82
  63. package/src/parse-date-service.js +184 -135
  64. package/src/pb-ajax.js +158 -171
  65. package/src/pb-authority-lookup.js +191 -156
  66. package/src/pb-autocomplete.js +292 -280
  67. package/src/pb-blacklab-highlight.js +264 -259
  68. package/src/pb-blacklab-results.js +236 -221
  69. package/src/pb-browse-docs.js +540 -475
  70. package/src/pb-browse.js +68 -65
  71. package/src/pb-clipboard.js +79 -76
  72. package/src/pb-code-editor.js +110 -102
  73. package/src/pb-code-highlight.js +209 -204
  74. package/src/pb-codepen.js +79 -72
  75. package/src/pb-collapse.js +211 -151
  76. package/src/pb-combo-box.js +190 -190
  77. package/src/pb-components-bundle.js +1 -1
  78. package/src/pb-components.js +1 -0
  79. package/src/pb-custom-form.js +173 -153
  80. package/src/pb-dialog.js +98 -62
  81. package/src/pb-document.js +89 -90
  82. package/src/pb-download.js +212 -196
  83. package/src/pb-drawer.js +145 -148
  84. package/src/pb-edit-app.js +301 -229
  85. package/src/pb-edit-xml.js +100 -97
  86. package/src/pb-events.js +114 -107
  87. package/src/pb-facs-link.js +104 -102
  88. package/src/pb-facsimile.js +474 -410
  89. package/src/pb-formula.js +151 -153
  90. package/src/pb-geolocation.js +129 -131
  91. package/src/pb-grid-action.js +53 -56
  92. package/src/pb-grid.js +231 -228
  93. package/src/pb-highlight.js +140 -140
  94. package/src/pb-hotkeys.js +40 -42
  95. package/src/pb-i18n.js +101 -104
  96. package/src/pb-image-strip.js +84 -78
  97. package/src/pb-lang.js +142 -57
  98. package/src/pb-leaflet-map.js +488 -485
  99. package/src/pb-link.js +126 -124
  100. package/src/pb-load.js +431 -429
  101. package/src/pb-login.js +299 -244
  102. package/src/pb-manage-odds.js +352 -336
  103. package/src/pb-map-icon.js +89 -89
  104. package/src/pb-map-layer.js +85 -85
  105. package/src/pb-markdown.js +90 -99
  106. package/src/pb-media-query.js +74 -72
  107. package/src/pb-mei.js +306 -295
  108. package/src/pb-message.js +139 -97
  109. package/src/pb-mixin.js +269 -264
  110. package/src/pb-navigation.js +80 -95
  111. package/src/pb-observable.js +38 -38
  112. package/src/pb-odd-editor.js +1054 -958
  113. package/src/pb-odd-elementspec-editor.js +349 -298
  114. package/src/pb-odd-model-editor.js +1075 -909
  115. package/src/pb-odd-parameter-editor.js +200 -178
  116. package/src/pb-odd-rendition-editor.js +136 -124
  117. package/src/pb-page.js +431 -422
  118. package/src/pb-paginate.js +228 -179
  119. package/src/pb-panel.js +198 -182
  120. package/src/pb-popover-themes.js +15 -8
  121. package/src/pb-popover.js +296 -287
  122. package/src/pb-print-preview.js +127 -127
  123. package/src/pb-progress.js +51 -51
  124. package/src/pb-repeat.js +105 -104
  125. package/src/pb-restricted.js +84 -77
  126. package/src/pb-search.js +256 -228
  127. package/src/pb-select-feature.js +127 -120
  128. package/src/pb-select-odd.js +132 -124
  129. package/src/pb-select-template.js +89 -78
  130. package/src/pb-select.js +251 -227
  131. package/src/pb-split-list.js +179 -174
  132. package/src/pb-svg.js +80 -79
  133. package/src/pb-table-column.js +54 -54
  134. package/src/pb-table-grid.js +221 -203
  135. package/src/pb-tabs.js +61 -63
  136. package/src/pb-tify.js +154 -154
  137. package/src/pb-timeline.js +382 -249
  138. package/src/pb-toggle-feature.js +195 -187
  139. package/src/pb-upload.js +184 -174
  140. package/src/pb-version.js +30 -30
  141. package/src/pb-view-annotate.js +135 -98
  142. package/src/pb-view.js +1282 -1270
  143. package/src/pb-zoom.js +127 -45
  144. package/src/polymer-hack.js +1 -1
  145. package/src/search-result-service.js +256 -223
  146. package/src/seed-element.js +13 -20
  147. package/src/settings.js +4 -4
  148. package/src/theming.js +98 -91
  149. package/src/urls.js +289 -289
  150. package/src/utils.js +53 -51
  151. package/css/pb-styles.css +0 -51
  152. package/dist/vaadin-element-mixin-fe4a4883.js +0 -527
  153. package/src/assets/pb-styles.css +0 -51
  154. package/src/pb-light-dom.js +0 -41
@@ -796,7 +796,7 @@
796
796
  },
797
797
  {
798
798
  "name": "pb-authority-lookup",
799
- "description": "When received, starts a lookup using the passed in query string and \nauthority type"
799
+ "description": "When received, starts a lookup using the passed in query string and\nauthority type"
800
800
  }
801
801
  ]
802
802
  },
@@ -1007,7 +1007,7 @@
1007
1007
  {
1008
1008
  "name": "pb-blacklab-highlight",
1009
1009
  "path": "./src/pb-blacklab-highlight.js",
1010
- "description": "This component queries the blacklab API of TEI-Publisher for a list of text matches\nin a given document. The query is given as a CQL querystring (see pattern property).\n\n**Note**: There's no demo for this component yet as it would need a blacklab instance. \n\nThe component displays 2 navigation buttons to jump to previous / next match and\na display of the current index and total number of matches.\n\nWhen navigating and the requested match is not on the current page a pb-refresh is dispatched\nto load the correct page. Once the page has dispatch pb-update this component will refresh and trigger\nloading of matches from the API.\n\nHighlighting is accomplished by marking the matched text with the following CSS classes:\n- kwic-start - for the start of the match\n- kwic-end - for the end of the match (might be on the same node as 'kwic-start'\n- kwic-current - to set a different highlight color for the current match\n\nWhen navigating the browser URL will be updated to allow bookmarks for a certain match.\n\nNote: this component does no caching of query results yet. In case of heavier use the data can be taken\nfrom localStorage ('pb-kwic-results') as usually pb-kwic-results has been visited by the user before. For\nstability reasons this was not done in this version.\n\n\nWhen data are present highlights are processed.",
1010
+ "description": "This component queries the blacklab API of TEI-Publisher for a list of text matches\nin a given document. The query is given as a CQL querystring (see pattern property).\n\n**Note**: There's no demo for this component yet as it would need a blacklab instance.\n\nThe component displays 2 navigation buttons to jump to previous / next match and\na display of the current index and total number of matches.\n\nWhen navigating and the requested match is not on the current page a pb-refresh is dispatched\nto load the correct page. Once the page has dispatch pb-update this component will refresh and trigger\nloading of matches from the API.\n\nHighlighting is accomplished by marking the matched text with the following CSS classes:\n- kwic-start - for the start of the match\n- kwic-end - for the end of the match (might be on the same node as 'kwic-start'\n- kwic-current - to set a different highlight color for the current match\n\nWhen navigating the browser URL will be updated to allow bookmarks for a certain match.\n\nNote: this component does no caching of query results yet. In case of heavier use the data can be taken\nfrom localStorage ('pb-kwic-results') as usually pb-kwic-results has been visited by the user before. For\nstability reasons this was not done in this version.\n\n\nWhen data are present highlights are processed.",
1011
1011
  "attributes": [
1012
1012
  {
1013
1013
  "name": "current",
@@ -1475,7 +1475,7 @@
1475
1475
  },
1476
1476
  {
1477
1477
  "name": "use-language",
1478
- "description": "If set, a parameter \"language\" will be added to the parameter list. \nAlso, a refresh will be triggered if a `pb-i18n-update` event is received,\ne.g. due to the user selecting a different interface language.\n\nAlso requires `requireLanguage` to be set on the surrounding `pb-page`.\nSee there for more information.",
1478
+ "description": "If set, a parameter \"language\" will be added to the parameter list.\nAlso, a refresh will be triggered if a `pb-i18n-update` event is received,\ne.g. due to the user selecting a different interface language.\n\nAlso requires `requireLanguage` to be set on the surrounding `pb-page`.\nSee there for more information.",
1479
1479
  "type": "boolean"
1480
1480
  },
1481
1481
  {
@@ -1678,7 +1678,7 @@
1678
1678
  {
1679
1679
  "name": "useLanguage",
1680
1680
  "attribute": "use-language",
1681
- "description": "If set, a parameter \"language\" will be added to the parameter list. \nAlso, a refresh will be triggered if a `pb-i18n-update` event is received,\ne.g. due to the user selecting a different interface language.\n\nAlso requires `requireLanguage` to be set on the surrounding `pb-page`.\nSee there for more information.",
1681
+ "description": "If set, a parameter \"language\" will be added to the parameter list.\nAlso, a refresh will be triggered if a `pb-i18n-update` event is received,\ne.g. due to the user selecting a different interface language.\n\nAlso requires `requireLanguage` to be set on the surrounding `pb-page`.\nSee there for more information.",
1682
1682
  "type": "boolean"
1683
1683
  },
1684
1684
  {
@@ -1873,7 +1873,7 @@
1873
1873
  {
1874
1874
  "name": "pb-browse",
1875
1875
  "path": "./src/pb-browse.js",
1876
- "description": "Extends PbLoad to support browsing collections.\n\nThis is a reduced version of `pb-browse-docs`, which differs\nfrom a plain `pb-load` only in that it scans the returned\ncollection listing for links to subcollections and keeps\ntrack of the current collection. \n\nAll UI elements present in `pb-browse-docs` have been removed.",
1876
+ "description": "Extends PbLoad to support browsing collections.\n\nThis is a reduced version of `pb-browse-docs`, which differs\nfrom a plain `pb-load` only in that it scans the returned\ncollection listing for links to subcollections and keeps\ntrack of the current collection.\n\nAll UI elements present in `pb-browse-docs` have been removed.",
1877
1877
  "attributes": [
1878
1878
  {
1879
1879
  "name": "collection",
@@ -1918,7 +1918,7 @@
1918
1918
  },
1919
1919
  {
1920
1920
  "name": "use-language",
1921
- "description": "If set, a parameter \"language\" will be added to the parameter list. \nAlso, a refresh will be triggered if a `pb-i18n-update` event is received,\ne.g. due to the user selecting a different interface language.\n\nAlso requires `requireLanguage` to be set on the surrounding `pb-page`.\nSee there for more information.",
1921
+ "description": "If set, a parameter \"language\" will be added to the parameter list.\nAlso, a refresh will be triggered if a `pb-i18n-update` event is received,\ne.g. due to the user selecting a different interface language.\n\nAlso requires `requireLanguage` to be set on the surrounding `pb-page`.\nSee there for more information.",
1922
1922
  "type": "boolean"
1923
1923
  },
1924
1924
  {
@@ -2052,7 +2052,7 @@
2052
2052
  {
2053
2053
  "name": "useLanguage",
2054
2054
  "attribute": "use-language",
2055
- "description": "If set, a parameter \"language\" will be added to the parameter list. \nAlso, a refresh will be triggered if a `pb-i18n-update` event is received,\ne.g. due to the user selecting a different interface language.\n\nAlso requires `requireLanguage` to be set on the surrounding `pb-page`.\nSee there for more information.",
2055
+ "description": "If set, a parameter \"language\" will be added to the parameter list.\nAlso, a refresh will be triggered if a `pb-i18n-update` event is received,\ne.g. due to the user selecting a different interface language.\n\nAlso requires `requireLanguage` to be set on the surrounding `pb-page`.\nSee there for more information.",
2056
2056
  "type": "boolean"
2057
2057
  },
2058
2058
  {
@@ -2183,7 +2183,7 @@
2183
2183
  {
2184
2184
  "name": "pb-clipboard",
2185
2185
  "path": "./src/pb-clipboard.js",
2186
- "description": "A component with a button which copies the contained content to the clipboard.\r\nUse for the typical 'quote this content as' hints on a webpage.",
2186
+ "description": "A component with a button which copies the contained content to the clipboard.\nUse for the typical 'quote this content as' hints on a webpage.",
2187
2187
  "attributes": [
2188
2188
  {
2189
2189
  "name": "label",
@@ -2432,16 +2432,16 @@
2432
2432
  }
2433
2433
  ],
2434
2434
  "deprecated": true,
2435
- "deprecatedMessage": "directly use `jinn-codemirror`/`jinn-xml-editor`/`jinn-epidoc-editor` instead, which are \nincluded in the `pb-code-editor` bundle."
2435
+ "deprecatedMessage": "directly use `jinn-codemirror`/`jinn-xml-editor`/`jinn-epidoc-editor` instead, which are\nincluded in the `pb-code-editor` bundle."
2436
2436
  },
2437
2437
  {
2438
2438
  "name": "pb-code-highlight",
2439
2439
  "path": "./src/pb-code-highlight.js",
2440
- "description": "Highlight a code snippet. The snippet may either be passed in a template child\r\nelement, which could contain HTML or text. If no template child is present, the\r\ncomponent will take any text content contained in it and highlight it. One can also\r\npass the code to be highlighted in the `code` property.",
2440
+ "description": "Highlight a code snippet. The snippet may either be passed in a template child\nelement, which could contain HTML or text. If no template child is present, the\ncomponent will take any text content contained in it and highlight it. One can also\npass the code to be highlighted in the `code` property.",
2441
2441
  "attributes": [
2442
2442
  {
2443
2443
  "name": "code",
2444
- "description": "The code to be highlighted as a string. If not set,\r\nthis will be populated from either a template child element\r\nor the element's text content.\r\nThe value of the property can be changed programmatically from JavaScript.",
2444
+ "description": "The code to be highlighted as a string. If not set,\nthis will be populated from either a template child element\nor the element's text content.\nThe value of the property can be changed programmatically from JavaScript.",
2445
2445
  "type": "string"
2446
2446
  },
2447
2447
  {
@@ -2452,7 +2452,7 @@
2452
2452
  },
2453
2453
  {
2454
2454
  "name": "theme",
2455
- "description": "Highlighting theme to use: 'coy', 'dark', 'funky', 'okaida', 'solarizedlight',\r\n'tomorrow', 'twilight' or 'default'.",
2455
+ "description": "Highlighting theme to use: 'coy', 'dark', 'funky', 'okaida', 'solarizedlight',\n'tomorrow', 'twilight' or 'default'.",
2456
2456
  "type": "string",
2457
2457
  "default": "\"default\""
2458
2458
  },
@@ -2466,7 +2466,7 @@
2466
2466
  {
2467
2467
  "name": "code",
2468
2468
  "attribute": "code",
2469
- "description": "The code to be highlighted as a string. If not set,\r\nthis will be populated from either a template child element\r\nor the element's text content.\r\nThe value of the property can be changed programmatically from JavaScript.",
2469
+ "description": "The code to be highlighted as a string. If not set,\nthis will be populated from either a template child element\nor the element's text content.\nThe value of the property can be changed programmatically from JavaScript.",
2470
2470
  "type": "string"
2471
2471
  },
2472
2472
  {
@@ -2479,7 +2479,7 @@
2479
2479
  {
2480
2480
  "name": "theme",
2481
2481
  "attribute": "theme",
2482
- "description": "Highlighting theme to use: 'coy', 'dark', 'funky', 'okaida', 'solarizedlight',\r\n'tomorrow', 'twilight' or 'default'.",
2482
+ "description": "Highlighting theme to use: 'coy', 'dark', 'funky', 'okaida', 'solarizedlight',\n'tomorrow', 'twilight' or 'default'.",
2483
2483
  "type": "string",
2484
2484
  "default": "\"default\""
2485
2485
  },
@@ -2587,15 +2587,9 @@
2587
2587
  "path": "./src/pb-collapse.js",
2588
2588
  "description": "A collapsible block: in collapsed state it only shows a header and expands if clicked.\nThe header should go into slot `collapse-trigger`, the content into `collapse-content`.\nExample:\n\n```html\n<pb-collapse>\n <div slot=\"collapse-trigger\">\n Metadata\n </div>\n <pb-view slot=\"collapse-content\" src=\"document1\" subscribe=\"transcription\" xpath=\"//teiHeader\"></pb-view>\n</pb-collapse>\n```\n\nBy adding a CSS 'icon-right' to a `pb-collapse` the icon can be placed on the right side\n```\n<pb-collapse class='icon-right'>\n```",
2589
2589
  "attributes": [
2590
- {
2591
- "name": "horizontal",
2592
- "type": "boolean",
2593
- "default": "false",
2594
- "deprecatedMessage": "Corresponds to the iron-collapse's horizontal property."
2595
- },
2596
2590
  {
2597
2591
  "name": "no-animation",
2598
- "description": "Corresponds to the iron-collapse's noAnimation property.",
2592
+ "description": "Whether to disable animations.",
2599
2593
  "type": "boolean",
2600
2594
  "default": "false"
2601
2595
  },
@@ -2605,24 +2599,6 @@
2605
2599
  "type": "boolean",
2606
2600
  "default": "false"
2607
2601
  },
2608
- {
2609
- "name": "expand-icon",
2610
- "description": "The iron-icon when collapsed. Value must be one of the icons defined by iron-icons",
2611
- "type": "string",
2612
- "default": "\"icons:expand-more\""
2613
- },
2614
- {
2615
- "name": "collapse-icon",
2616
- "description": "The icon when expanded.",
2617
- "type": "string",
2618
- "default": "\"icons:expand-less\""
2619
- },
2620
- {
2621
- "name": "no-icons",
2622
- "description": "Whether to hide the expand/collapse icon.",
2623
- "type": "boolean",
2624
- "default": "false"
2625
- },
2626
2602
  {
2627
2603
  "name": "toggles",
2628
2604
  "description": "By default, an open collapse is closed if another pb-collapse is expanded on the same event channel.\nSet to true to keep multiple pb-collapse open at the same time.",
@@ -2664,15 +2640,13 @@
2664
2640
  "properties": [
2665
2641
  {
2666
2642
  "name": "horizontal",
2667
- "attribute": "horizontal",
2668
2643
  "type": "boolean",
2669
- "default": "false",
2670
- "deprecatedMessage": "Corresponds to the iron-collapse's horizontal property."
2644
+ "default": "false"
2671
2645
  },
2672
2646
  {
2673
2647
  "name": "noAnimation",
2674
2648
  "attribute": "no-animation",
2675
- "description": "Corresponds to the iron-collapse's noAnimation property.",
2649
+ "description": "Whether to disable animations.",
2676
2650
  "type": "boolean",
2677
2651
  "default": "false"
2678
2652
  },
@@ -2685,22 +2659,16 @@
2685
2659
  },
2686
2660
  {
2687
2661
  "name": "expandIcon",
2688
- "attribute": "expand-icon",
2689
- "description": "The iron-icon when collapsed. Value must be one of the icons defined by iron-icons",
2690
2662
  "type": "string",
2691
2663
  "default": "\"icons:expand-more\""
2692
2664
  },
2693
2665
  {
2694
2666
  "name": "collapseIcon",
2695
- "attribute": "collapse-icon",
2696
- "description": "The icon when expanded.",
2697
2667
  "type": "string",
2698
2668
  "default": "\"icons:expand-less\""
2699
2669
  },
2700
2670
  {
2701
2671
  "name": "noIcons",
2702
- "attribute": "no-icons",
2703
- "description": "Whether to hide the expand/collapse icon.",
2704
2672
  "type": "boolean",
2705
2673
  "default": "false"
2706
2674
  },
@@ -2768,15 +2736,24 @@
2768
2736
  "cssProperties": [
2769
2737
  {
2770
2738
  "name": "--pb-collapse-icon-padding",
2771
- "description": "padding in px for the \"caret-down\" icon left to the collapsible item",
2772
- "default": "\"0 4px 0 0\""
2739
+ "description": "padding left or right of the \"caret\" icon left to the collapsible item",
2740
+ "default": "\".5rem\""
2741
+ },
2742
+ {
2743
+ "name": "--pb-collapse-icon-size",
2744
+ "description": "size of the \"caret\" icon left to the collapsible item",
2745
+ "default": "\".75rem\""
2746
+ },
2747
+ {
2748
+ "name": "--pb-collapse-icon-image",
2749
+ "description": "image of the \"caret\" icon left to the collapsible item"
2773
2750
  }
2774
2751
  ]
2775
2752
  },
2776
2753
  {
2777
2754
  "name": "pb-combo-box",
2778
2755
  "path": "./src/pb-combo-box.js",
2779
- "description": "Provides a combo box, i.e. a combination of an input with a dropdown.\nItems to select from may be obtained from a remote data source.\n\nThe form control to be used (either a select or input) should be passed \nin the content of the element. If no control is provided, a simple `<input>`\nwill be created.",
2756
+ "description": "Provides a combo box, i.e. a combination of an input with a dropdown.\nItems to select from may be obtained from a remote data source.\n\nThe form control to be used (either a select or input) should be passed\nin the content of the element. If no control is provided, a simple `<input>`\nwill be created.",
2780
2757
  "attributes": [
2781
2758
  {
2782
2759
  "name": "source",
@@ -2987,7 +2964,7 @@
2987
2964
  },
2988
2965
  {
2989
2966
  "name": "use-language",
2990
- "description": "If set, a parameter \"language\" will be added to the parameter list. \nAlso, a refresh will be triggered if a `pb-i18n-update` event is received,\ne.g. due to the user selecting a different interface language.\n\nAlso requires `requireLanguage` to be set on the surrounding `pb-page`.\nSee there for more information.",
2967
+ "description": "If set, a parameter \"language\" will be added to the parameter list.\nAlso, a refresh will be triggered if a `pb-i18n-update` event is received,\ne.g. due to the user selecting a different interface language.\n\nAlso requires `requireLanguage` to be set on the surrounding `pb-page`.\nSee there for more information.",
2991
2968
  "type": "boolean"
2992
2969
  },
2993
2970
  {
@@ -3114,7 +3091,7 @@
3114
3091
  {
3115
3092
  "name": "useLanguage",
3116
3093
  "attribute": "use-language",
3117
- "description": "If set, a parameter \"language\" will be added to the parameter list. \nAlso, a refresh will be triggered if a `pb-i18n-update` event is received,\ne.g. due to the user selecting a different interface language.\n\nAlso requires `requireLanguage` to be set on the surrounding `pb-page`.\nSee there for more information.",
3094
+ "description": "If set, a parameter \"language\" will be added to the parameter list.\nAlso, a refresh will be triggered if a `pb-i18n-update` event is received,\ne.g. due to the user selecting a different interface language.\n\nAlso requires `requireLanguage` to be set on the surrounding `pb-page`.\nSee there for more information.",
3118
3095
  "type": "boolean"
3119
3096
  },
3120
3097
  {
@@ -3257,7 +3234,7 @@
3257
3234
  {
3258
3235
  "name": "pb-dialog",
3259
3236
  "path": "./src/pb-dialog.js",
3260
- "description": "A simple dialog component using the HTML5 <dialog> element (no shadow DOM).",
3237
+ "description": "A simple dialog component using the HTML5 <dialog> element.\n\nAny button with the attribute `rel=\"prev\"` will close the dialog when clicked.",
3261
3238
  "attributes": [
3262
3239
  {
3263
3240
  "name": "open",
@@ -3547,7 +3524,7 @@
3547
3524
  "attributes": [
3548
3525
  {
3549
3526
  "name": "src",
3550
- "description": "optional id reference to a pb-document. If `url` is not specified, \na correct download URL is constructed using the given document path and parameters.\nOtherwise `url` will be used as main URL.",
3527
+ "description": "optional id reference to a pb-document. If `url` is not specified,\na correct download URL is constructed using the given document path and parameters.\nOtherwise `url` will be used as main URL.",
3551
3528
  "type": "string"
3552
3529
  },
3553
3530
  {
@@ -3623,7 +3600,7 @@
3623
3600
  {
3624
3601
  "name": "src",
3625
3602
  "attribute": "src",
3626
- "description": "optional id reference to a pb-document. If `url` is not specified, \na correct download URL is constructed using the given document path and parameters.\nOtherwise `url` will be used as main URL.",
3603
+ "description": "optional id reference to a pb-document. If `url` is not specified,\na correct download URL is constructed using the given document path and parameters.\nOtherwise `url` will be used as main URL.",
3627
3604
  "type": "string"
3628
3605
  },
3629
3606
  {
@@ -4156,7 +4133,7 @@
4156
4133
  },
4157
4134
  {
4158
4135
  "name": "trigger",
4159
- "description": "Type of event which should trigger the facsimile to display. \nEither 'click' or 'mouseover' (default).",
4136
+ "description": "Type of event which should trigger the facsimile to display.\nEither 'click' or 'mouseover' (default).",
4160
4137
  "type": "string",
4161
4138
  "default": "\"mouseover\""
4162
4139
  },
@@ -4225,7 +4202,7 @@
4225
4202
  {
4226
4203
  "name": "trigger",
4227
4204
  "attribute": "trigger",
4228
- "description": "Type of event which should trigger the facsimile to display. \nEither 'click' or 'mouseover' (default).",
4205
+ "description": "Type of event which should trigger the facsimile to display.\nEither 'click' or 'mouseover' (default).",
4229
4206
  "type": "string",
4230
4207
  "default": "\"mouseover\""
4231
4208
  },
@@ -4712,7 +4689,7 @@
4712
4689
  {
4713
4690
  "name": "pb-geolocation",
4714
4691
  "path": "./src/pb-geolocation.js",
4715
- "description": "Represents a geo location. Extends `pb-highlight`, but sends an additional `pb-geolocation` event\non mouseover.\n\nFor `pb-leaflet-map` to show markers for `pb-geolocation` elements, make sure that map subscribes to the channel\ninto which `pb-geolocation`s emit and that map is loaded before the emitting component, e.g. `pb-view`, by specifying \n`wait-for` property.",
4692
+ "description": "Represents a geo location. Extends `pb-highlight`, but sends an additional `pb-geolocation` event\non mouseover.\n\nFor `pb-leaflet-map` to show markers for `pb-geolocation` elements, make sure that map subscribes to the channel\ninto which `pb-geolocation`s emit and that map is loaded before the emitting component, e.g. `pb-view`, by specifying\n`wait-for` property.",
4716
4693
  "attributes": [
4717
4694
  {
4718
4695
  "name": "longitude",
@@ -5524,6 +5501,12 @@
5524
5501
  "type": "string",
5525
5502
  "default": "\"language\""
5526
5503
  },
5504
+ {
5505
+ "name": "display",
5506
+ "description": "How should the selected value be displayed?\n\n- `text` - Display the text content of the selected option\n- other - Attribute name to use",
5507
+ "type": "string",
5508
+ "default": "\"value\""
5509
+ },
5527
5510
  {
5528
5511
  "name": "subscribe",
5529
5512
  "description": "The name of the channel to subscribe to. Only events on a channel corresponding\nto this property are listened to.",
@@ -5569,6 +5552,13 @@
5569
5552
  "type": "string",
5570
5553
  "default": "\"language\""
5571
5554
  },
5555
+ {
5556
+ "name": "display",
5557
+ "attribute": "display",
5558
+ "description": "How should the selected value be displayed?\n\n- `text` - Display the text content of the selected option\n- other - Attribute name to use",
5559
+ "type": "string",
5560
+ "default": "\"value\""
5561
+ },
5572
5562
  {
5573
5563
  "name": "subscribe",
5574
5564
  "attribute": "subscribe",
@@ -5618,9 +5608,19 @@
5618
5608
  }
5619
5609
  ],
5620
5610
  "slots": [
5611
+ {
5612
+ "name": "select",
5613
+ "description": "Optional select element to use for language selection. If not provided, a default one will be created."
5614
+ },
5621
5615
  {
5622
5616
  "name": "",
5623
- "description": "unnamed default slot for dropdown menu options given as <option> elements"
5617
+ "description": "unnamed default slot for dropdown menu options"
5618
+ }
5619
+ ],
5620
+ "cssProperties": [
5621
+ {
5622
+ "name": "--pb-lang-input-color",
5623
+ "description": "Color of the text in the language field"
5624
5624
  }
5625
5625
  ]
5626
5626
  },
@@ -5695,7 +5695,7 @@
5695
5695
  },
5696
5696
  {
5697
5697
  "name": "geo-coding",
5698
- "description": "Enables geocoding: an additional control will allow users to search for a place.\nReverse geocoding is also possible: clicking on the map while pressing ctrl or cmd \nwill request information about the current location.\n\nIn both cases, a `pb-geocode` event will be emitted containing additional information\nabout the place in the event details (see demo).\n\nFor lookups the free OSM/Nominatim service is used.",
5698
+ "description": "Enables geocoding: an additional control will allow users to search for a place.\nReverse geocoding is also possible: clicking on the map while pressing ctrl or cmd\nwill request information about the current location.\n\nIn both cases, a `pb-geocode` event will be emitted containing additional information\nabout the place in the event details (see demo).\n\nFor lookups the free OSM/Nominatim service is used.",
5699
5699
  "type": "boolean",
5700
5700
  "default": "false"
5701
5701
  },
@@ -5815,7 +5815,7 @@
5815
5815
  {
5816
5816
  "name": "geoCoding",
5817
5817
  "attribute": "geo-coding",
5818
- "description": "Enables geocoding: an additional control will allow users to search for a place.\nReverse geocoding is also possible: clicking on the map while pressing ctrl or cmd \nwill request information about the current location.\n\nIn both cases, a `pb-geocode` event will be emitted containing additional information\nabout the place in the event details (see demo).\n\nFor lookups the free OSM/Nominatim service is used.",
5818
+ "description": "Enables geocoding: an additional control will allow users to search for a place.\nReverse geocoding is also possible: clicking on the map while pressing ctrl or cmd\nwill request information about the current location.\n\nIn both cases, a `pb-geocode` event will be emitted containing additional information\nabout the place in the event details (see demo).\n\nFor lookups the free OSM/Nominatim service is used.",
5819
5819
  "type": "boolean",
5820
5820
  "default": "false"
5821
5821
  },
@@ -5889,7 +5889,7 @@
5889
5889
  {
5890
5890
  "name": "pb-link",
5891
5891
  "path": "./src/pb-link.js",
5892
- "description": "Create an internal link: clicking it will emit a `pb-refresh`event, \ncausing connected views to update and load the corresponding document fragment defined by the\nproperties.",
5892
+ "description": "Create an internal link: clicking it will emit a `pb-refresh`event,\ncausing connected views to update and load the corresponding document fragment defined by the\nproperties.",
5893
5893
  "attributes": [
5894
5894
  {
5895
5895
  "name": "xml-id",
@@ -6106,7 +6106,7 @@
6106
6106
  },
6107
6107
  {
6108
6108
  "name": "use-language",
6109
- "description": "If set, a parameter \"language\" will be added to the parameter list. \nAlso, a refresh will be triggered if a `pb-i18n-update` event is received,\ne.g. due to the user selecting a different interface language.\n\nAlso requires `requireLanguage` to be set on the surrounding `pb-page`.\nSee there for more information.",
6109
+ "description": "If set, a parameter \"language\" will be added to the parameter list.\nAlso, a refresh will be triggered if a `pb-i18n-update` event is received,\ne.g. due to the user selecting a different interface language.\n\nAlso requires `requireLanguage` to be set on the surrounding `pb-page`.\nSee there for more information.",
6110
6110
  "type": "boolean"
6111
6111
  },
6112
6112
  {
@@ -6227,7 +6227,7 @@
6227
6227
  {
6228
6228
  "name": "useLanguage",
6229
6229
  "attribute": "use-language",
6230
- "description": "If set, a parameter \"language\" will be added to the parameter list. \nAlso, a refresh will be triggered if a `pb-i18n-update` event is received,\ne.g. due to the user selecting a different interface language.\n\nAlso requires `requireLanguage` to be set on the surrounding `pb-page`.\nSee there for more information.",
6230
+ "description": "If set, a parameter \"language\" will be added to the parameter list.\nAlso, a refresh will be triggered if a `pb-i18n-update` event is received,\ne.g. due to the user selecting a different interface language.\n\nAlso requires `requireLanguage` to be set on the surrounding `pb-page`.\nSee there for more information.",
6231
6231
  "type": "boolean"
6232
6232
  },
6233
6233
  {
@@ -6698,7 +6698,7 @@
6698
6698
  {
6699
6699
  "name": "pb-map-icon",
6700
6700
  "path": "./src/pb-map-icon.js",
6701
- "description": "Configure a map icon type to be used for markers. \nShould be nested inside `pb-leaflet-map`.",
6701
+ "description": "Configure a map icon type to be used for markers.\nShould be nested inside `pb-leaflet-map`.",
6702
6702
  "attributes": [
6703
6703
  {
6704
6704
  "name": "icon-size",
@@ -7091,7 +7091,7 @@
7091
7091
  {
7092
7092
  "name": "pb-mei",
7093
7093
  "path": "./src/pb-mei.js",
7094
- "description": "A viewer and player for MEI musical notation based on [Verovio](https://www.verovio.org/).\nSupports optional MIDI playback using [web-midi-player](https://midi.yvesgurcan.com/).\nBoth libraries are loaded dynamically when the component is used the first time.\n\nViewing options to be selected by the user can be defined via nested `pb-option` elements:\n\n```html\n<pb-mei id=\"viewer\" player url=\"http://www.marenzio.org/mei/M-06-5/M_06_5_01_S_io_parto_i_moro_e_pur_partir_conviene.mei\" \n footer=\"none\">\n <pb-option name=\"appXPath\" on=\"./rdg[contains(@label, 'original')]\" off=\"\">Original Clefs</pb-option>\n</pb-mei>\n```\n\nThe MEI document to display can either be given directly in the `data` property or loaded from an URL\nspecified in `url`.",
7094
+ "description": "A viewer and player for MEI musical notation based on [Verovio](https://www.verovio.org/).\nSupports optional MIDI playback using [web-midi-player](https://midi.yvesgurcan.com/).\nBoth libraries are loaded dynamically when the component is used the first time.\n\nViewing options to be selected by the user can be defined via nested `pb-option` elements:\n\n```html\n<pb-mei id=\"viewer\" player url=\"http://www.marenzio.org/mei/M-06-5/M_06_5_01_S_io_parto_i_moro_e_pur_partir_conviene.mei\"\n footer=\"none\">\n <pb-option name=\"appXPath\" on=\"./rdg[contains(@label, 'original')]\" off=\"\">Original Clefs</pb-option>\n</pb-mei>\n```\n\nThe MEI document to display can either be given directly in the `data` property or loaded from an URL\nspecified in `url`.",
7095
7095
  "attributes": [
7096
7096
  {
7097
7097
  "name": "data",
@@ -7100,7 +7100,7 @@
7100
7100
  },
7101
7101
  {
7102
7102
  "name": "url",
7103
- "description": "URL of the MEI file to load. Will be used if no `data` property is present. \nA relative URL would be resolved relative to the TEI Publisher endpoint.",
7103
+ "description": "URL of the MEI file to load. Will be used if no `data` property is present.\nA relative URL would be resolved relative to the TEI Publisher endpoint.",
7104
7104
  "type": "string"
7105
7105
  },
7106
7106
  {
@@ -7188,7 +7188,7 @@
7188
7188
  {
7189
7189
  "name": "url",
7190
7190
  "attribute": "url",
7191
- "description": "URL of the MEI file to load. Will be used if no `data` property is present. \nA relative URL would be resolved relative to the TEI Publisher endpoint.",
7191
+ "description": "URL of the MEI file to load. Will be used if no `data` property is present.\nA relative URL would be resolved relative to the TEI Publisher endpoint.",
7192
7192
  "type": "string"
7193
7193
  },
7194
7194
  {
@@ -7319,6 +7319,11 @@
7319
7319
  "description": "type of message. Can be either 'message' or 'confirm'. In case of confirm the buttons 'yes' and 'no'\nwill be shown and the dialog becomes modal.",
7320
7320
  "type": "string",
7321
7321
  "default": "\"message\""
7322
+ },
7323
+ {
7324
+ "name": "open",
7325
+ "type": "boolean",
7326
+ "default": "false"
7322
7327
  }
7323
7328
  ],
7324
7329
  "properties": [
@@ -7342,6 +7347,12 @@
7342
7347
  "description": "type of message. Can be either 'message' or 'confirm'. In case of confirm the buttons 'yes' and 'no'\nwill be shown and the dialog becomes modal.",
7343
7348
  "type": "string",
7344
7349
  "default": "\"message\""
7350
+ },
7351
+ {
7352
+ "name": "open",
7353
+ "attribute": "open",
7354
+ "type": "boolean",
7355
+ "default": "false"
7345
7356
  }
7346
7357
  ]
7347
7358
  },
@@ -8469,7 +8480,7 @@
8469
8480
  },
8470
8481
  {
8471
8482
  "name": "locales",
8472
- "description": "Optional URL pointing to a directory from which additional i18n \nlanguage files will be loaded. The URL should contain placeholders\nfor the language (`lng`) and the namespace (`ns`), e.g.\n\n`resources/i18n/{{ns}}_{{lng}}.json`\n\nor\n\n`resources/i18n/{{ns}}/{{lng}}.json`\n\nThe latter assumes custom language files in a subdirectory, the first\nexpects the namespace to be specified at the start of the file name.\n\nThe default namespace for custom language files is assumed to be `app`,\nbut you can define additional namespaces via `localeFallbackNS`.",
8483
+ "description": "Optional URL pointing to a directory from which additional i18n\nlanguage files will be loaded. The URL should contain placeholders\nfor the language (`lng`) and the namespace (`ns`), e.g.\n\n`resources/i18n/{{ns}}_{{lng}}.json`\n\nor\n\n`resources/i18n/{{ns}}/{{lng}}.json`\n\nThe latter assumes custom language files in a subdirectory, the first\nexpects the namespace to be specified at the start of the file name.\n\nThe default namespace for custom language files is assumed to be `app`,\nbut you can define additional namespaces via `localeFallbackNS`.",
8473
8484
  "type": "string"
8474
8485
  },
8475
8486
  {
@@ -8496,7 +8507,7 @@
8496
8507
  },
8497
8508
  {
8498
8509
  "name": "url-template",
8499
- "description": "Can be used to define parameters which should be serialized in the\nURL path rather than as query parameters. Expects a url pattern\nrelative to the application root\n(supported patterns are documented in the \n[path-to-regexp](https://www.npmjs.com/package/path-to-regexp) library documentation).\n\nFor example, a pattern `:lang/texts/:path/:id?` would support URLs like \n`en/texts/text1/chapter1`. Whenever components change state – e.g. due to a navigation\nevent – the standard parameters `path`, `lang` and `id` would be serialized into the\nURL path pattern rather than query parameters.",
8510
+ "description": "Can be used to define parameters which should be serialized in the\nURL path rather than as query parameters. Expects a url pattern\nrelative to the application root\n(supported patterns are documented in the\n[path-to-regexp](https://www.npmjs.com/package/path-to-regexp) library documentation).\n\nFor example, a pattern `:lang/texts/:path/:id?` would support URLs like\n`en/texts/text1/chapter1`. Whenever components change state – e.g. due to a navigation\nevent – the standard parameters `path`, `lang` and `id` would be serialized into the\nURL path pattern rather than query parameters.",
8500
8511
  "type": "string"
8501
8512
  },
8502
8513
  {
@@ -8523,7 +8534,7 @@
8523
8534
  },
8524
8535
  {
8525
8536
  "name": "require-language",
8526
- "description": "If set, the element will wait for a language being set by i18n before\nit sends a `pb-page-ready` event. Elements like `pb-view` will wait\nfor this event before displaying content.\n\nAlso, `pb-view` will pass the configured language to the server endpoint\nwhere it will be available to ODD processing models in variable \n`$parameters?language` and can thus be used to change output depending on\nthe user interface language.\n\nIf you would like `pb-view` to refresh automatically whenever the language\nsetting changes, specify property `useLanguage` on the corresponding `pb-view`.",
8537
+ "description": "If set, the element will wait for a language being set by i18n before\nit sends a `pb-page-ready` event. Elements like `pb-view` will wait\nfor this event before displaying content.\n\nAlso, `pb-view` will pass the configured language to the server endpoint\nwhere it will be available to ODD processing models in variable\n`$parameters?language` and can thus be used to change output depending on\nthe user interface language.\n\nIf you would like `pb-view` to refresh automatically whenever the language\nsetting changes, specify property `useLanguage` on the corresponding `pb-view`.",
8527
8538
  "type": "boolean",
8528
8539
  "default": "false"
8529
8540
  },
@@ -8590,7 +8601,7 @@
8590
8601
  {
8591
8602
  "name": "locales",
8592
8603
  "attribute": "locales",
8593
- "description": "Optional URL pointing to a directory from which additional i18n \nlanguage files will be loaded. The URL should contain placeholders\nfor the language (`lng`) and the namespace (`ns`), e.g.\n\n`resources/i18n/{{ns}}_{{lng}}.json`\n\nor\n\n`resources/i18n/{{ns}}/{{lng}}.json`\n\nThe latter assumes custom language files in a subdirectory, the first\nexpects the namespace to be specified at the start of the file name.\n\nThe default namespace for custom language files is assumed to be `app`,\nbut you can define additional namespaces via `localeFallbackNS`.",
8604
+ "description": "Optional URL pointing to a directory from which additional i18n\nlanguage files will be loaded. The URL should contain placeholders\nfor the language (`lng`) and the namespace (`ns`), e.g.\n\n`resources/i18n/{{ns}}_{{lng}}.json`\n\nor\n\n`resources/i18n/{{ns}}/{{lng}}.json`\n\nThe latter assumes custom language files in a subdirectory, the first\nexpects the namespace to be specified at the start of the file name.\n\nThe default namespace for custom language files is assumed to be `app`,\nbut you can define additional namespaces via `localeFallbackNS`.",
8594
8605
  "type": "string"
8595
8606
  },
8596
8607
  {
@@ -8626,7 +8637,7 @@
8626
8637
  {
8627
8638
  "name": "urlTemplate",
8628
8639
  "attribute": "url-template",
8629
- "description": "Can be used to define parameters which should be serialized in the\nURL path rather than as query parameters. Expects a url pattern\nrelative to the application root\n(supported patterns are documented in the \n[path-to-regexp](https://www.npmjs.com/package/path-to-regexp) library documentation).\n\nFor example, a pattern `:lang/texts/:path/:id?` would support URLs like \n`en/texts/text1/chapter1`. Whenever components change state – e.g. due to a navigation\nevent – the standard parameters `path`, `lang` and `id` would be serialized into the\nURL path pattern rather than query parameters.",
8640
+ "description": "Can be used to define parameters which should be serialized in the\nURL path rather than as query parameters. Expects a url pattern\nrelative to the application root\n(supported patterns are documented in the\n[path-to-regexp](https://www.npmjs.com/package/path-to-regexp) library documentation).\n\nFor example, a pattern `:lang/texts/:path/:id?` would support URLs like\n`en/texts/text1/chapter1`. Whenever components change state – e.g. due to a navigation\nevent – the standard parameters `path`, `lang` and `id` would be serialized into the\nURL path pattern rather than query parameters.",
8630
8641
  "type": "string"
8631
8642
  },
8632
8643
  {
@@ -8658,7 +8669,7 @@
8658
8669
  {
8659
8670
  "name": "requireLanguage",
8660
8671
  "attribute": "require-language",
8661
- "description": "If set, the element will wait for a language being set by i18n before\nit sends a `pb-page-ready` event. Elements like `pb-view` will wait\nfor this event before displaying content.\n\nAlso, `pb-view` will pass the configured language to the server endpoint\nwhere it will be available to ODD processing models in variable \n`$parameters?language` and can thus be used to change output depending on\nthe user interface language.\n\nIf you would like `pb-view` to refresh automatically whenever the language\nsetting changes, specify property `useLanguage` on the corresponding `pb-view`.",
8672
+ "description": "If set, the element will wait for a language being set by i18n before\nit sends a `pb-page-ready` event. Elements like `pb-view` will wait\nfor this event before displaying content.\n\nAlso, `pb-view` will pass the configured language to the server endpoint\nwhere it will be available to ODD processing models in variable\n`$parameters?language` and can thus be used to change output depending on\nthe user interface language.\n\nIf you would like `pb-view` to refresh automatically whenever the language\nsetting changes, specify property `useLanguage` on the corresponding `pb-view`.",
8662
8673
  "type": "boolean",
8663
8674
  "default": "false"
8664
8675
  },
@@ -8751,6 +8762,11 @@
8751
8762
  "path": "./src/pb-paginate.js",
8752
8763
  "description": "Display a pagination control from which the user can select a page to view\nfrom a multi-page collection of resources. To determine the number of pages,\n`pb-paginate` listens for the `pb-results-received` event emitted by `pb-load`.\nIf the user clicks on one of the page indicators, a `pb-load` event is emitted,\nwhich should cause the connected `pb-load` element to refresh.",
8753
8764
  "attributes": [
8765
+ {
8766
+ "name": "show-previous-next",
8767
+ "description": "show or hide (i.e. generate) previous and next buttons,\ndefault value is false, controls are not generated",
8768
+ "type": "boolean"
8769
+ },
8754
8770
  {
8755
8771
  "name": "total",
8756
8772
  "description": "total number of pages",
@@ -8777,13 +8793,13 @@
8777
8793
  },
8778
8794
  {
8779
8795
  "name": "page-count",
8780
- "description": "the amount of pages",
8796
+ "description": "the amount of pages needed for all items,\ncalculated from total / perPage",
8781
8797
  "type": "number",
8782
8798
  "default": "10"
8783
8799
  },
8784
8800
  {
8785
8801
  "name": "range",
8786
- "description": "todo",
8802
+ "description": "the amount of page numbers shown within the component",
8787
8803
  "type": "number",
8788
8804
  "default": "5"
8789
8805
  },
@@ -8832,6 +8848,12 @@
8832
8848
  }
8833
8849
  ],
8834
8850
  "properties": [
8851
+ {
8852
+ "name": "showPreviousNext",
8853
+ "attribute": "show-previous-next",
8854
+ "description": "show or hide (i.e. generate) previous and next buttons,\ndefault value is false, controls are not generated",
8855
+ "type": "boolean"
8856
+ },
8835
8857
  {
8836
8858
  "name": "total",
8837
8859
  "attribute": "total",
@@ -8863,14 +8885,14 @@
8863
8885
  {
8864
8886
  "name": "pageCount",
8865
8887
  "attribute": "page-count",
8866
- "description": "the amount of pages",
8888
+ "description": "the amount of pages needed for all items,\ncalculated from total / perPage",
8867
8889
  "type": "number",
8868
8890
  "default": "10"
8869
8891
  },
8870
8892
  {
8871
8893
  "name": "range",
8872
8894
  "attribute": "range",
8873
- "description": "todo",
8895
+ "description": "the amount of page numbers shown within the component",
8874
8896
  "type": "number",
8875
8897
  "default": "5"
8876
8898
  },
@@ -9111,7 +9133,7 @@
9111
9133
  {
9112
9134
  "name": "pb-popover",
9113
9135
  "path": "./src/pb-popover.js",
9114
- "description": "Show a popover. It may either \n\n1. be attached to another element on the page which serves as a trigger. For this the\n`for` property must be specified and should contain the ID of the trigger element. \nThe whole content of the `pb-popover` element will be shown in the popup.\n\n2. if no `for` property is specified, the `pb-popover` acts itself as the trigger. The trigger\ntext is either taken from a slot named `default` - or the default slot (i.e. the content of the element).\nThe content to show in the popup should be supplied in a slot named `alternate`. It is recommended to use an\nHTML `template` to specify the alternate, so it is ignored by the browser:\n\n```html\n<pb-popover theme=\"material\">\n <span slot=\"default\">ipsum dolor sit amet</span>\n <template slot=\"alternate\">\n <p>At vero eos et <strong>accusam</strong> et justo duo dolores<br>\n et ea rebum.</p>\n </template>\n</pb-popover>\n```\n\nIf you would like popovers to contain nested popovers, choose approach 1 above and use `for`.\n\nIf property `persistent` is true, the popover will be shown\non click. Otherwise display a tooltip on mouseover.\n\n`pb-popover` uses the tippy.js library for the popup.\n\n## Styling\n\nWhen showing the popup, the popup content will either be added to the parent shadow DOM - if the `pb-popover`\nis located inside the shadow DOM of another element like `pb-view`; or the document body. This has an\neffect on where CSS styles can be defined: within a `pb-view`, only the styles specified inside the\nCSS attached to the ODD are applied.",
9136
+ "description": "Show a popover. It may either\n\n1. be attached to another element on the page which serves as a trigger. For this the\n`for` property must be specified and should contain the ID of the trigger element.\nThe whole content of the `pb-popover` element will be shown in the popup.\n\n2. if no `for` property is specified, the `pb-popover` acts itself as the trigger. The trigger\ntext is either taken from a slot named `default` - or the default slot (i.e. the content of the element).\nThe content to show in the popup should be supplied in a slot named `alternate`. It is recommended to use an\nHTML `template` to specify the alternate, so it is ignored by the browser:\n\n```html\n<pb-popover theme=\"material\">\n <span slot=\"default\">ipsum dolor sit amet</span>\n <template slot=\"alternate\">\n <p>At vero eos et <strong>accusam</strong> et justo duo dolores<br>\n et ea rebum.</p>\n </template>\n</pb-popover>\n```\n\nIf you would like popovers to contain nested popovers, choose approach 1 above and use `for`.\n\nIf property `persistent` is true, the popover will be shown\non click. Otherwise display a tooltip on mouseover.\n\n`pb-popover` uses the tippy.js library for the popup.\n\n## Styling\n\nWhen showing the popup, the popup content will either be added to the parent shadow DOM - if the `pb-popover`\nis located inside the shadow DOM of another element like `pb-view`; or the document body. This has an\neffect on where CSS styles can be defined: within a `pb-view`, only the styles specified inside the\nCSS attached to the ODD are applied.",
9115
9137
  "attributes": [
9116
9138
  {
9117
9139
  "name": "remote",
@@ -9495,7 +9517,7 @@
9495
9517
  {
9496
9518
  "name": "pb-progress",
9497
9519
  "path": "./src/pb-progress.js",
9498
- "description": "A progress bar which becomes active when signal `pb-start-update` is\nbeing sent and is deactivated on `pb-end-update`.",
9520
+ "description": "A progress bar which becomes active when signal `pb-start-update` is\nbeing sent and is deactivated on `pb-end-update`.\n\nUses a native `<progress>` element.",
9499
9521
  "attributes": [
9500
9522
  {
9501
9523
  "name": "subscribe",
@@ -10034,7 +10056,7 @@
10034
10056
  {
10035
10057
  "name": "pb-select-feature",
10036
10058
  "path": "./src/pb-select-feature.js",
10037
- "description": "Similar to `pb-toggle-feature` but allows you to choose from a list of defined states instead of a simple\non/off toggle. Like `pb-toggle-feature` it can change state server-side as well as client-side. \n\nThe list of states is passed as a JSON array to property `items`:\n\n# Server-side\n\nProperties to be passed to the server are specified as follows:\n\n```javascript\n[\n {\"name\": \"Diplomatic View\", \"properties\": {\"mode\": \"diplomatic\", \"view\": \"page\"}},\n {\"name\": \"Normalized View\", \"properties\": {\"mode\": \"norm\", \"view\": \"single\"}}\n]\n```\n\nIf the `name` property references the path to a translated label, the translation will be used instead.\n# Client-side\n\n```javascript\n[\n {\"name\": \"Diplomatic View\", \"selectors\": [{\"selector\": \".choice,.choice-alternate,br\", \"state\": false},{\"selector\": \".tei-foreign,pb-highlight,pb-popover\", \"command\": \"disable\"}]},\n {\"name\": \"Normalized View\", \"selectors\": [{\"selector\": \".choice,.choice-alternate,br\", \"state\": true},{\"selector\": \".tei-foreign,pb-highlight,pb-popover\", \"command\": \"disable\"}]},\n {\"name\": \"Plain Reading View\", \"selectors\": [{\"selector\": \".choice,.choice-alternate,br\", \"state\": true}, {\"selector\": \".tei-foreign,pb-highlight,pb-popover\", \"command\": \"disable\", \"state\": true}]}\n]\n```\n\nEach item in the `selectors` property above defines either a state or a command. *state* will simply add\na css class `.toggle` to the target element when true. If *command* is set to 'disable', it will entirely disable\nthe functionality of selected elements - provided that they are\npublisher components implementing the corresponding `command` method of `pb-mixin`.\n\nClient-side you may also pass an optional property `\"global\": true` to toggle the state of elements which reside\nin the surrounding HTML context below `pb-page` (means: elements which are not inside a `pb-view` or `pb-load`).",
10059
+ "description": "Similar to `pb-toggle-feature` but allows you to choose from a list of defined states instead of a simple\non/off toggle. Like `pb-toggle-feature` it can change state server-side as well as client-side.\n\nThe list of states is passed as a JSON array to property `items`:\n\n# Server-side\n\nProperties to be passed to the server are specified as follows:\n\n```javascript\n[\n {\"name\": \"Diplomatic View\", \"properties\": {\"mode\": \"diplomatic\", \"view\": \"page\"}},\n {\"name\": \"Normalized View\", \"properties\": {\"mode\": \"norm\", \"view\": \"single\"}}\n]\n```\n\nIf the `name` property references the path to a translated label, the translation will be used instead.\n# Client-side\n\n```javascript\n[\n {\"name\": \"Diplomatic View\", \"selectors\": [{\"selector\": \".choice,.choice-alternate,br\", \"state\": false},{\"selector\": \".tei-foreign,pb-highlight,pb-popover\", \"command\": \"disable\"}]},\n {\"name\": \"Normalized View\", \"selectors\": [{\"selector\": \".choice,.choice-alternate,br\", \"state\": true},{\"selector\": \".tei-foreign,pb-highlight,pb-popover\", \"command\": \"disable\"}]},\n {\"name\": \"Plain Reading View\", \"selectors\": [{\"selector\": \".choice,.choice-alternate,br\", \"state\": true}, {\"selector\": \".tei-foreign,pb-highlight,pb-popover\", \"command\": \"disable\", \"state\": true}]}\n]\n```\n\nEach item in the `selectors` property above defines either a state or a command. *state* will simply add\na css class `.toggle` to the target element when true. If *command* is set to 'disable', it will entirely disable\nthe functionality of selected elements - provided that they are\npublisher components implementing the corresponding `command` method of `pb-mixin`.\n\nClient-side you may also pass an optional property `\"global\": true` to toggle the state of elements which reside\nin the surrounding HTML context below `pb-page` (means: elements which are not inside a `pb-view` or `pb-load`).",
10038
10060
  "attributes": [
10039
10061
  {
10040
10062
  "name": "name",
@@ -10567,7 +10589,7 @@
10567
10589
  {
10568
10590
  "name": "pb-split-list",
10569
10591
  "path": "./src/pb-split-list.js",
10570
- "description": "Implements a list which is split into different categories \n(e.g. letters of the alphabet, countries ...).\nOnly one category is shown at a time unless the server reports\nno categories (e.g. if the number of items to display goes below\na defined threshold).\n\nThe server-side API endpoint should return a JSON object with two\nproperties:\n\n+ `categories`: an array of category descriptions: each item should \n be an object with two properties: `category` - containing the name of the category\n and `count` - containing a count of items available under this category.\n+ `items`: an array with the items to be shown for the currently selected\n category. Those may contain HTML markup.\n\nSample JSON object for pb-split-list\n```javascript\n{\n \"items\": [\n \"<span><a href='Abegg-Arter Carl?category=A&amp;view=correspondents&amp;search='>Abegg-Arter, Carl</a><span class='dates'> (1836–1912)</span></span>\",\n \"<span><a href='Abegg Hans Heinrich?category=A&amp;view=correspondents&amp;search='>Abegg, Hans Heinrich</a><span class='dates'> (1805–1874)</span></span>\",\n \"<span><a href='Abegg Jakob?category=A&amp;view=correspondents&amp;search='>Abegg, Jakob</a><span class='dates'> (1801–1871)</span></span>\",\n \"<span><a href='Abys Raget?category=A&amp;view=correspondents&amp;search='>Abys, Raget</a><span class='dates'> (1790–1861)</span></span>\",\n \"<span><a href='Aebli Johann Peter?category=A&amp;view=correspondents&amp;search='>Aebli, Johann Peter</a><span class='dates'> (1804–1879)</span></span>\",\n \"<span><a href='Aepli Arnold Otto?category=A&amp;view=correspondents&amp;search='>Aepli, Arnold Otto</a><span class='dates'> (1816–1897)</span></span>\",\n ...\n ],\n \"categories\": [\n {\n \"category\": \"A\",\n \"count\": 22\n },\n {\n \"category\": \"B\",\n \"count\": 77\n },\n {\n \"category\": \"C\",\n \"count\": 19\n },\n ...\n ]\n}\n```\n\nSample Usage \n```xml\n<pb-split-list url=\"api/people\" subforms=\"#options\" selected=\"A\" emit=\"transcription\" subscribe=\"transcription\"></pb-split-list>\n```\nSee https://www.briefedition.alfred-escher.ch/kontexte/personen/?category=A&search=&view=correspondents for a running sample. The source code of the webpage is here: https://github.com/stazh/briefedition-escher. Relevant files are: \n- [templates/index.html](https://github.com/stazh/briefedition-escher/blob/master/templates/index.html#L223) - usage of pb-timeline\n- [modules/custom-api.json](https://github.com/stazh/briefedition-escher/blob/master/modules/custom-api.json#L1098) - `/api/people` endpoint delivering required JSON object",
10592
+ "description": "Implements a list which is split into different categories\n(e.g. letters of the alphabet, countries ...).\nOnly one category is shown at a time unless the server reports\nno categories (e.g. if the number of items to display goes below\na defined threshold).\n\nThe server-side API endpoint should return a JSON object with two\nproperties:\n\n+ `categories`: an array of category descriptions: each item should\n be an object with two properties: `category` - containing the name of the category\n and `count` - containing a count of items available under this category.\n+ `items`: an array with the items to be shown for the currently selected\n category. Those may contain HTML markup.\n\nSample JSON object for pb-split-list\n```javascript\n{\n \"items\": [\n \"<span><a href='Abegg-Arter Carl?category=A&amp;view=correspondents&amp;search='>Abegg-Arter, Carl</a><span class='dates'> (1836–1912)</span></span>\",\n \"<span><a href='Abegg Hans Heinrich?category=A&amp;view=correspondents&amp;search='>Abegg, Hans Heinrich</a><span class='dates'> (1805–1874)</span></span>\",\n \"<span><a href='Abegg Jakob?category=A&amp;view=correspondents&amp;search='>Abegg, Jakob</a><span class='dates'> (1801–1871)</span></span>\",\n \"<span><a href='Abys Raget?category=A&amp;view=correspondents&amp;search='>Abys, Raget</a><span class='dates'> (1790–1861)</span></span>\",\n \"<span><a href='Aebli Johann Peter?category=A&amp;view=correspondents&amp;search='>Aebli, Johann Peter</a><span class='dates'> (1804–1879)</span></span>\",\n \"<span><a href='Aepli Arnold Otto?category=A&amp;view=correspondents&amp;search='>Aepli, Arnold Otto</a><span class='dates'> (1816–1897)</span></span>\",\n ...\n ],\n \"categories\": [\n {\n \"category\": \"A\",\n \"count\": 22\n },\n {\n \"category\": \"B\",\n \"count\": 77\n },\n {\n \"category\": \"C\",\n \"count\": 19\n },\n ...\n ]\n}\n```\n\nSample Usage\n```xml\n<pb-split-list url=\"api/people\" subforms=\"#options\" selected=\"A\" emit=\"transcription\" subscribe=\"transcription\"></pb-split-list>\n```\nSee https://www.briefedition.alfred-escher.ch/kontexte/personen/?category=A&search=&view=correspondents for a running sample. The source code of the webpage is here: https://github.com/stazh/briefedition-escher. Relevant files are:\n- [templates/index.html](https://github.com/stazh/briefedition-escher/blob/master/templates/index.html#L223) - usage of pb-timeline\n- [modules/custom-api.json](https://github.com/stazh/briefedition-escher/blob/master/modules/custom-api.json#L1098) - `/api/people` endpoint delivering required JSON object",
10571
10593
  "attributes": [
10572
10594
  {
10573
10595
  "name": "url",
@@ -11106,7 +11128,7 @@
11106
11128
  "events": [
11107
11129
  {
11108
11130
  "name": "pb-tab",
11109
- "description": "fired if selected tab changes. Details contain number of \nselected tab in propery `selected`."
11131
+ "description": "fired if selected tab changes. Details contain number of\nselected tab in propery `selected`."
11110
11132
  }
11111
11133
  ],
11112
11134
  "slots": [
@@ -11232,7 +11254,7 @@
11232
11254
  {
11233
11255
  "name": "pb-timeline",
11234
11256
  "path": "./src/pb-timeline.js",
11235
- "description": "A timeline component to display time series data in a bar chart like view.\n\nTime series data can be displayed in one of 6 different scales:\n\n- by decade (10Y)\n- by 5 years (5Y)\n- by years (Y)\n- by month (M)\n- by week (W)\n- by day (D)\n\nThe endpoint is expected to return a JSON object. Each property should either be a date or the special\nmarker `?`, which indicates undated resources.\nThe value associated with each entry\nshould either correspond to a count of resources or an object with properties `count` and `info`. \n`info` should be an array, containing HTML to be shown in a list within the tooltips.\nExpected JSON: \n```javascript\n{\n \"1852-01-14\": {\n \"count\": 1,\n \"info\": [\n \"<a href='/briefe/B0977' part='tooltip-link'>Alfred Escher an Joseph Wolfgang von Deschwanden, Belvoir (Enge, Zürich), Mittwoch, 14. Januar 1852</a>\"\n ]\n },\n\"1874-01-25\": {\n \"count\": 3,\n \"info\": [\n \"<a href='/briefe/B8140' part='tooltip-link'>Alfred Escher an Gustav von Mevissen, Zürich, Sonntag, 25. Januar 1874</a>\",\n \"<a href='/briefe/B8139' part='tooltip-link'>Alfred Escher an Theodor Weishaupt, Zürich, Sonntag, 25. Januar 1874</a>\",\n \"<a href='/briefe/B8143' part='tooltip-link'>Alfred Escher an Ludwig August Parcus, Zürich, Sonntag, 25. Januar 1874</a>\"\n ]\n }\n}\n```\nSample Usage:\n```xml\n<pb-timeline url=\"api/timeline\" scopes=\"['D', 'M', 'Y', '5Y', '10Y']\"\n resettable=\"\"\n subscribe=\"docs\" emit=\"timeline\">\n <span slot=\"label\">Angezeigter Zeitraum: </span>\n</pb-timeline>\n```\nSee https://www.briefedition.alfred-escher.ch/briefe/ for a running sample. The source code of the webpage is here: https://github.com/stazh/briefedition-escher. Relevant files are: \n- [templates/people.html](https://github.com/stazh/briefedition-escher/blob/master/templates/people.html#L91) - usage of pb-timeline\n- [modules/custom-api.json](https://github.com/stazh/briefedition-escher/blob/master/modules/custom-api.json#L1080) - `/api/timeline` endpoint delivering required JSON object",
11257
+ "description": "A timeline component to display time series data in a bar chart like view.\n\nTime series data can be displayed in one of 6 different scales:\n\n- by decade (10Y)\n- by 5 years (5Y)\n- by years (Y)\n- by month (M)\n- by week (W)\n- by day (D)\n\nThe endpoint is expected to return a JSON object. Each property should either be a date or the special\nmarker `?`, which indicates undated resources.\nThe value associated with each entry\nshould either correspond to a count of resources or an object with properties `count` and `info`.\n`info` should be an array, containing HTML to be shown in a list within the tooltips.\nExpected JSON:\n```javascript\n{\n \"1852-01-14\": {\n \"count\": 1,\n \"info\": [\n \"<a href='/briefe/B0977' part='tooltip-link'>Alfred Escher an Joseph Wolfgang von Deschwanden, Belvoir (Enge, Zürich), Mittwoch, 14. Januar 1852</a>\"\n ]\n },\n\"1874-01-25\": {\n \"count\": 3,\n \"info\": [\n \"<a href='/briefe/B8140' part='tooltip-link'>Alfred Escher an Gustav von Mevissen, Zürich, Sonntag, 25. Januar 1874</a>\",\n \"<a href='/briefe/B8139' part='tooltip-link'>Alfred Escher an Theodor Weishaupt, Zürich, Sonntag, 25. Januar 1874</a>\",\n \"<a href='/briefe/B8143' part='tooltip-link'>Alfred Escher an Ludwig August Parcus, Zürich, Sonntag, 25. Januar 1874</a>\"\n ]\n }\n}\n```\nSample Usage:\n```xml\n<pb-timeline url=\"api/timeline\" scopes=\"['D', 'M', 'Y', '5Y', '10Y']\"\n resettable=\"\"\n subscribe=\"docs\" emit=\"timeline\">\n <span slot=\"label\">Angezeigter Zeitraum: </span>\n</pb-timeline>\n```\nSee https://www.briefedition.alfred-escher.ch/briefe/ for a running sample. The source code of the webpage is here: https://github.com/stazh/briefedition-escher. Relevant files are:\n- [templates/people.html](https://github.com/stazh/briefedition-escher/blob/master/templates/people.html#L91) - usage of pb-timeline\n- [modules/custom-api.json](https://github.com/stazh/briefedition-escher/blob/master/modules/custom-api.json#L1080) - `/api/timeline` endpoint delivering required JSON object",
11236
11258
  "attributes": [
11237
11259
  {
11238
11260
  "name": "start-date",
@@ -11474,6 +11496,12 @@
11474
11496
  },
11475
11497
  {
11476
11498
  "name": "--pb-timeline-tooltip-font-size"
11499
+ },
11500
+ {
11501
+ "name": "--pb-timeline-tooltip-min-width"
11502
+ },
11503
+ {
11504
+ "name": "--pb-timeline-tooltip-max-width"
11477
11505
  }
11478
11506
  ],
11479
11507
  "cssParts": [
@@ -11500,7 +11528,7 @@
11500
11528
  },
11501
11529
  {
11502
11530
  "name": "selector",
11503
- "description": "(optional) CSS selector: selects the elements to toggle client side (sets or unsets a \nCSS class `.toggled`). Setting this property will not trigger a reload as everything is\nhandled by javascript.",
11531
+ "description": "(optional) CSS selector: selects the elements to toggle client side (sets or unsets a\nCSS class `.toggled`). Setting this property will not trigger a reload as everything is\nhandled by javascript.",
11504
11532
  "type": "string"
11505
11533
  },
11506
11534
  {
@@ -11551,7 +11579,7 @@
11551
11579
  },
11552
11580
  {
11553
11581
  "name": "global",
11554
- "description": "If set, toggle the state of elements which reside\nin the surrounding HTML context below `pb-page` \n(means: elements which are not inside a `pb-view` or `pb-load`).",
11582
+ "description": "If set, toggle the state of elements which reside\nin the surrounding HTML context below `pb-page`\n(means: elements which are not inside a `pb-view` or `pb-load`).",
11555
11583
  "type": "boolean",
11556
11584
  "default": "false"
11557
11585
  },
@@ -11597,7 +11625,7 @@
11597
11625
  {
11598
11626
  "name": "selector",
11599
11627
  "attribute": "selector",
11600
- "description": "(optional) CSS selector: selects the elements to toggle client side (sets or unsets a \nCSS class `.toggled`). Setting this property will not trigger a reload as everything is\nhandled by javascript.",
11628
+ "description": "(optional) CSS selector: selects the elements to toggle client side (sets or unsets a\nCSS class `.toggled`). Setting this property will not trigger a reload as everything is\nhandled by javascript.",
11601
11629
  "type": "string"
11602
11630
  },
11603
11631
  {
@@ -11657,7 +11685,7 @@
11657
11685
  {
11658
11686
  "name": "global",
11659
11687
  "attribute": "global",
11660
- "description": "If set, toggle the state of elements which reside\nin the surrounding HTML context below `pb-page` \n(means: elements which are not inside a `pb-view` or `pb-load`).",
11688
+ "description": "If set, toggle the state of elements which reside\nin the surrounding HTML context below `pb-page`\n(means: elements which are not inside a `pb-view` or `pb-load`).",
11661
11689
  "type": "boolean",
11662
11690
  "default": "false"
11663
11691
  },
@@ -11910,6 +11938,11 @@
11910
11938
  "description": "The view type to use for paginating the document. Either `page`, `div` or `single`.\nOverwrites the same property specified on `pb-document`. Values have the following meaning:\n\nValue | Displayed content\n------|------------------\n`page` | content is displayed page by page as determined by tei:pb\n`div` | content is displayed by divisions\n`single` | do not paginate but display entire content at once",
11911
11939
  "type": "string"
11912
11940
  },
11941
+ {
11942
+ "name": "fill",
11943
+ "description": "Controls the pagination-by-div algorithm: if a page would have less than\n`fill` elements, it tries to fill\nup the page by pulling following divs in. When set to 0, it will never\nattempt to fill up the page. For the annotation editor this should\nalways be 0.",
11944
+ "type": "number"
11945
+ },
11913
11946
  {
11914
11947
  "name": "node-id",
11915
11948
  "description": "An eXist nodeId. If specified, selects the root of the fragment of the document\nwhich should be displayed. Normally this property is set automatically by pagination.",
@@ -12019,7 +12052,7 @@
12019
12052
  },
12020
12053
  {
12021
12054
  "name": "no-scroll",
12022
- "description": "If set, do not scroll the view to target node (e.g. given in URL hash) \nafter content was loaded.",
12055
+ "description": "If set, do not scroll the view to target node (e.g. given in URL hash)\nafter content was loaded.",
12023
12056
  "type": "boolean",
12024
12057
  "default": "false"
12025
12058
  },
@@ -12050,7 +12083,7 @@
12050
12083
  },
12051
12084
  {
12052
12085
  "name": "wait-for",
12053
- "description": "A selector pointing to other components this component depends on.\nWhen method `wait` is called, it will wait until all referenced\ncomponents signal with a `pb-ready` event that they are ready and listening\nto events.\n\n`pb-view` by default sets this property to select `pb-toggle-feature` and `pb-select-feature` \nelements.",
12086
+ "description": "A selector pointing to other components this component depends on.\nWhen method `wait` is called, it will wait until all referenced\ncomponents signal with a `pb-ready` event that they are ready and listening\nto events.\n\n`pb-view` by default sets this property to select `pb-toggle-feature` and `pb-select-feature`\nelements.",
12054
12087
  "type": "string"
12055
12088
  },
12056
12089
  {
@@ -12098,6 +12131,12 @@
12098
12131
  "description": "The view type to use for paginating the document. Either `page`, `div` or `single`.\nOverwrites the same property specified on `pb-document`. Values have the following meaning:\n\nValue | Displayed content\n------|------------------\n`page` | content is displayed page by page as determined by tei:pb\n`div` | content is displayed by divisions\n`single` | do not paginate but display entire content at once",
12099
12132
  "type": "string"
12100
12133
  },
12134
+ {
12135
+ "name": "fill",
12136
+ "attribute": "fill",
12137
+ "description": "Controls the pagination-by-div algorithm: if a page would have less than\n`fill` elements, it tries to fill\nup the page by pulling following divs in. When set to 0, it will never\nattempt to fill up the page. For the annotation editor this should\nalways be 0.",
12138
+ "type": "number"
12139
+ },
12101
12140
  {
12102
12141
  "name": "nodeId",
12103
12142
  "attribute": "node-id",
@@ -12233,7 +12272,7 @@
12233
12272
  {
12234
12273
  "name": "noScroll",
12235
12274
  "attribute": "no-scroll",
12236
- "description": "If set, do not scroll the view to target node (e.g. given in URL hash) \nafter content was loaded.",
12275
+ "description": "If set, do not scroll the view to target node (e.g. given in URL hash)\nafter content was loaded.",
12237
12276
  "type": "boolean",
12238
12277
  "default": "false"
12239
12278
  },
@@ -12270,7 +12309,7 @@
12270
12309
  {
12271
12310
  "name": "waitFor",
12272
12311
  "attribute": "wait-for",
12273
- "description": "A selector pointing to other components this component depends on.\nWhen method `wait` is called, it will wait until all referenced\ncomponents signal with a `pb-ready` event that they are ready and listening\nto events.\n\n`pb-view` by default sets this property to select `pb-toggle-feature` and `pb-select-feature` \nelements.",
12312
+ "description": "A selector pointing to other components this component depends on.\nWhen method `wait` is called, it will wait until all referenced\ncomponents signal with a `pb-ready` event that they are ready and listening\nto events.\n\n`pb-view` by default sets this property to select `pb-toggle-feature` and `pb-select-feature`\nelements.",
12274
12313
  "type": "string"
12275
12314
  },
12276
12315
  {
@@ -12322,10 +12361,6 @@
12322
12361
  "name": "pb-navigate",
12323
12362
  "description": "When received, navigate forward or backward in the document"
12324
12363
  },
12325
- {
12326
- "name": "pb-zoom",
12327
- "description": "When received, zoom in or out by changing font size of the content"
12328
- },
12329
12364
  {
12330
12365
  "name": "pb-refresh",
12331
12366
  "description": "When received, refresh the content based on the parameters passed in the event"
@@ -12407,6 +12442,11 @@
12407
12442
  "description": "The view type to use for paginating the document. Either `page`, `div` or `single`.\nOverwrites the same property specified on `pb-document`. Values have the following meaning:\n\nValue | Displayed content\n------|------------------\n`page` | content is displayed page by page as determined by tei:pb\n`div` | content is displayed by divisions\n`single` | do not paginate but display entire content at once",
12408
12443
  "type": "string"
12409
12444
  },
12445
+ {
12446
+ "name": "fill",
12447
+ "description": "Controls the pagination-by-div algorithm: if a page would have less than\n`fill` elements, it tries to fill\nup the page by pulling following divs in. When set to 0, it will never\nattempt to fill up the page. For the annotation editor this should\nalways be 0.",
12448
+ "type": "number"
12449
+ },
12410
12450
  {
12411
12451
  "name": "node-id",
12412
12452
  "description": "An eXist nodeId. If specified, selects the root of the fragment of the document\nwhich should be displayed. Normally this property is set automatically by pagination.",
@@ -12516,7 +12556,7 @@
12516
12556
  },
12517
12557
  {
12518
12558
  "name": "no-scroll",
12519
- "description": "If set, do not scroll the view to target node (e.g. given in URL hash) \nafter content was loaded.",
12559
+ "description": "If set, do not scroll the view to target node (e.g. given in URL hash)\nafter content was loaded.",
12520
12560
  "type": "boolean",
12521
12561
  "default": "false"
12522
12562
  },
@@ -12547,7 +12587,7 @@
12547
12587
  },
12548
12588
  {
12549
12589
  "name": "wait-for",
12550
- "description": "A selector pointing to other components this component depends on.\nWhen method `wait` is called, it will wait until all referenced\ncomponents signal with a `pb-ready` event that they are ready and listening\nto events.\n\n`pb-view` by default sets this property to select `pb-toggle-feature` and `pb-select-feature` \nelements.",
12590
+ "description": "A selector pointing to other components this component depends on.\nWhen method `wait` is called, it will wait until all referenced\ncomponents signal with a `pb-ready` event that they are ready and listening\nto events.\n\n`pb-view` by default sets this property to select `pb-toggle-feature` and `pb-select-feature`\nelements.",
12551
12591
  "type": "string"
12552
12592
  },
12553
12593
  {
@@ -12570,6 +12610,12 @@
12570
12610
  "description": "The view type to use for paginating the document. Either `page`, `div` or `single`.\nOverwrites the same property specified on `pb-document`. Values have the following meaning:\n\nValue | Displayed content\n------|------------------\n`page` | content is displayed page by page as determined by tei:pb\n`div` | content is displayed by divisions\n`single` | do not paginate but display entire content at once",
12571
12611
  "type": "string"
12572
12612
  },
12613
+ {
12614
+ "name": "fill",
12615
+ "attribute": "fill",
12616
+ "description": "Controls the pagination-by-div algorithm: if a page would have less than\n`fill` elements, it tries to fill\nup the page by pulling following divs in. When set to 0, it will never\nattempt to fill up the page. For the annotation editor this should\nalways be 0.",
12617
+ "type": "number"
12618
+ },
12573
12619
  {
12574
12620
  "name": "nodeId",
12575
12621
  "attribute": "node-id",
@@ -12705,7 +12751,7 @@
12705
12751
  {
12706
12752
  "name": "noScroll",
12707
12753
  "attribute": "no-scroll",
12708
- "description": "If set, do not scroll the view to target node (e.g. given in URL hash) \nafter content was loaded.",
12754
+ "description": "If set, do not scroll the view to target node (e.g. given in URL hash)\nafter content was loaded.",
12709
12755
  "type": "boolean",
12710
12756
  "default": "false"
12711
12757
  },
@@ -12742,7 +12788,7 @@
12742
12788
  {
12743
12789
  "name": "waitFor",
12744
12790
  "attribute": "wait-for",
12745
- "description": "A selector pointing to other components this component depends on.\nWhen method `wait` is called, it will wait until all referenced\ncomponents signal with a `pb-ready` event that they are ready and listening\nto events.\n\n`pb-view` by default sets this property to select `pb-toggle-feature` and `pb-select-feature` \nelements.",
12791
+ "description": "A selector pointing to other components this component depends on.\nWhen method `wait` is called, it will wait until all referenced\ncomponents signal with a `pb-ready` event that they are ready and listening\nto events.\n\n`pb-view` by default sets this property to select `pb-toggle-feature` and `pb-select-feature`\nelements.",
12746
12792
  "type": "string"
12747
12793
  },
12748
12794
  {
@@ -12770,10 +12816,6 @@
12770
12816
  "name": "pb-navigate",
12771
12817
  "description": "When received, navigate forward or backward in the document"
12772
12818
  },
12773
- {
12774
- "name": "pb-zoom",
12775
- "description": "When received, zoom in or out by changing font size of the content"
12776
- },
12777
12819
  {
12778
12820
  "name": "pb-refresh",
12779
12821
  "description": "When received, refresh the content based on the parameters passed in the event"
@@ -12843,20 +12885,20 @@
12843
12885
  {
12844
12886
  "name": "pb-zoom",
12845
12887
  "path": "./src/pb-zoom.js",
12846
- "description": "Zoom button to enlarge/shrink the font for the views. This component does not\nimplement any functionality itself, but just emits a `pb-zoom` event.",
12888
+ "description": "Zoom button to enlarge/shrink the font for the views. This component manages\nthe global zoom level by setting CSS custom properties on the document root.",
12847
12889
  "attributes": [
12848
- {
12849
- "name": "icon",
12850
- "description": "The icon to use",
12851
- "type": "string",
12852
- "default": "\"icons:zoom-in\""
12853
- },
12854
12890
  {
12855
12891
  "name": "direction",
12856
12892
  "description": "Either 'in' or 'out'",
12857
12893
  "type": "string",
12858
12894
  "default": "\"in\""
12859
12895
  },
12896
+ {
12897
+ "name": "zoom-factor",
12898
+ "description": "The current zoom factor",
12899
+ "type": "number",
12900
+ "default": "1"
12901
+ },
12860
12902
  {
12861
12903
  "name": "subscribe",
12862
12904
  "description": "The name of the channel to subscribe to. Only events on a channel corresponding\nto this property are listened to.",
@@ -12890,13 +12932,6 @@
12890
12932
  }
12891
12933
  ],
12892
12934
  "properties": [
12893
- {
12894
- "name": "icon",
12895
- "attribute": "icon",
12896
- "description": "The icon to use",
12897
- "type": "string",
12898
- "default": "\"icons:zoom-in\""
12899
- },
12900
12935
  {
12901
12936
  "name": "direction",
12902
12937
  "attribute": "direction",
@@ -12904,6 +12939,13 @@
12904
12939
  "type": "string",
12905
12940
  "default": "\"in\""
12906
12941
  },
12942
+ {
12943
+ "name": "zoomFactor",
12944
+ "attribute": "zoom-factor",
12945
+ "description": "The current zoom factor",
12946
+ "type": "number",
12947
+ "default": "1"
12948
+ },
12907
12949
  {
12908
12950
  "name": "subscribe",
12909
12951
  "attribute": "subscribe",
@@ -12947,6 +12989,20 @@
12947
12989
  "name": "pb-zoom",
12948
12990
  "description": "sends an event for e.g. pb-views to react to"
12949
12991
  }
12992
+ ],
12993
+ "cssProperties": [
12994
+ {
12995
+ "name": "--pb-zoom-factor",
12996
+ "description": "the zoom factor, e.g. 1.0 for normal size, 1.5 for 150%, 0.5 for 50%"
12997
+ },
12998
+ {
12999
+ "name": "--pb-min-zoom",
13000
+ "description": "the minimum zoom factor, e.g. 0.5 for 50%"
13001
+ },
13002
+ {
13003
+ "name": "--pb-max-zoom",
13004
+ "description": "the maximum zoom factor, e.g. 3.0 for 300%"
13005
+ }
12950
13006
  ]
12951
13007
  },
12952
13008
  {