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

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 (262) hide show
  1. package/.github/workflows/docker-cypress.yml +54 -0
  2. package/.github/workflows/main.yml +6 -4
  3. package/.github/workflows/node.js.yml +56 -21
  4. package/.github/workflows/release.js.yml +19 -17
  5. package/.releaserc.json +1 -1
  6. package/CHANGELOG.md +346 -11
  7. package/Dockerfile +78 -70
  8. package/README.md +112 -4
  9. package/css/components.css +5 -5
  10. package/css/gridjs/mermaid.min.css +1 -1
  11. package/css/leaflet/Control.Geocoder.css +1 -126
  12. package/css/leaflet/images/layers.png +0 -0
  13. package/css/tify/tify.css +6 -5
  14. package/css/tom-select/tom-select.bootstrap4.min.css +1 -1
  15. package/css/tom-select/tom-select.bootstrap5.min.css +1 -1
  16. package/css/tom-select/tom-select.default.min.css +1 -1
  17. package/css/tom-select/tom-select.default.min.css.map +1 -0
  18. package/css/tom-select/tom-select.min.css +1 -1
  19. package/cypress.config.js +84 -0
  20. package/dist/api.html +1 -1
  21. package/dist/css/design-system.css +607 -0
  22. package/dist/demo/bundle-test.html +4 -3
  23. package/dist/demo/components.css +46 -1
  24. package/dist/demo/design-system.html +710 -0
  25. package/dist/demo/dts-client.html +2 -2
  26. package/dist/demo/pb-autocomplete.html +23 -11
  27. package/dist/demo/pb-autocomplete2.html +66 -55
  28. package/dist/demo/pb-autocomplete3.html +17 -8
  29. package/dist/demo/pb-blacklab-highlight.html +28 -11
  30. package/dist/demo/pb-blacklab-results.html +3 -2
  31. package/dist/demo/pb-browse-docs.html +24 -24
  32. package/dist/demo/pb-browse-docs2.html +3 -3
  33. package/dist/demo/pb-clipboard.html +32 -28
  34. package/dist/demo/pb-code-editor.html +6 -6
  35. package/dist/demo/pb-code-highlight.html +63 -63
  36. package/dist/demo/pb-codepen.html +1 -1
  37. package/dist/demo/pb-collapse.html +1 -1
  38. package/dist/demo/pb-collapse2.html +2 -2
  39. package/dist/demo/pb-combo-box.html +135 -130
  40. package/dist/demo/pb-custom-form.html +64 -55
  41. package/dist/demo/pb-dialog.html +12 -6
  42. package/dist/demo/pb-document.html +1 -1
  43. package/dist/demo/pb-download.html +68 -59
  44. package/dist/demo/pb-drawer.html +67 -46
  45. package/dist/demo/pb-drawer2.html +65 -58
  46. package/dist/demo/pb-edit-app.html +2 -2
  47. package/dist/demo/pb-edit-xml.html +1 -1
  48. package/dist/demo/pb-facsimile-2.html +26 -11
  49. package/dist/demo/pb-facsimile-3.html +25 -10
  50. package/dist/demo/pb-facsimile-dedup-test-2.html +48 -0
  51. package/dist/demo/pb-facsimile-dedup-test.html +48 -0
  52. package/dist/demo/pb-facsimile.html +4 -4
  53. package/dist/demo/pb-formula.html +1 -1
  54. package/dist/demo/pb-grid.html +22 -8
  55. package/dist/demo/pb-highlight.html +2 -2
  56. package/dist/demo/pb-i18n-simple.html +1 -0
  57. package/dist/demo/pb-i18n.html +15 -5
  58. package/dist/demo/pb-image-strip-standalone.html +2 -2
  59. package/dist/demo/pb-image-strip-view.html +2 -2
  60. package/dist/demo/pb-leaflet-map.html +3 -3
  61. package/dist/demo/pb-leaflet-map2.html +2 -2
  62. package/dist/demo/pb-leaflet-map3.html +3 -3
  63. package/dist/demo/pb-link.html +1 -1
  64. package/dist/demo/pb-load.html +2 -6
  65. package/dist/demo/pb-login.html +1 -3
  66. package/dist/demo/pb-manage-odds.html +9 -4
  67. package/dist/demo/pb-markdown.html +1 -1
  68. package/dist/demo/pb-media-query.html +2 -2
  69. package/dist/demo/pb-mei.html +2 -2
  70. package/dist/demo/pb-mei2.html +2 -2
  71. package/dist/demo/pb-message.html +2 -3
  72. package/dist/demo/pb-odd-editor.html +54 -52
  73. package/dist/demo/pb-page-header.html +27 -0
  74. package/dist/demo/pb-popover.html +1 -1
  75. package/dist/demo/pb-print-preview.html +2 -2
  76. package/dist/demo/pb-progress.html +4 -4
  77. package/dist/demo/pb-repeat.html +32 -36
  78. package/dist/demo/pb-search.html +16 -5
  79. package/dist/demo/pb-search2.html +4 -4
  80. package/dist/demo/pb-search3.html +3 -3
  81. package/dist/demo/pb-search4.html +3 -3
  82. package/dist/demo/pb-select-feature.html +4 -4
  83. package/dist/demo/pb-select-feature2.html +4 -4
  84. package/dist/demo/pb-select-feature3.html +2 -2
  85. package/dist/demo/pb-select-i18n.html +58 -53
  86. package/dist/demo/pb-select-odd.html +1 -1
  87. package/dist/demo/pb-select.html +190 -75
  88. package/dist/demo/pb-select2.html +91 -37
  89. package/dist/demo/pb-select3.html +109 -41
  90. package/dist/demo/pb-svg.html +1 -1
  91. package/dist/demo/pb-table-grid.html +26 -15
  92. package/dist/demo/pb-tabs.html +15 -7
  93. package/dist/demo/pb-tify.html +7 -7
  94. package/dist/demo/pb-timeline.html +1 -1
  95. package/dist/demo/pb-timeline2.html +1 -1
  96. package/dist/demo/pb-toggle-feature.html +26 -23
  97. package/dist/demo/pb-toggle-feature2.html +4 -4
  98. package/dist/demo/pb-toggle-feature3.html +2 -2
  99. package/dist/demo/pb-toggle-feature4.html +56 -54
  100. package/dist/demo/pb-version.html +2 -2
  101. package/dist/demo/pb-view.html +78 -40
  102. package/dist/demo/pb-view2.html +69 -46
  103. package/dist/demo/pb-view3.html +53 -48
  104. package/dist/demo/pb-view4.html +70 -49
  105. package/dist/demo/pb-zoom.html +2 -2
  106. package/dist/{es-global-bridge-d8ce175d.js → es-global-bridge-D8ZcUcx_.js} +0 -4
  107. package/dist/focus-mixin-VCsFap6b.js +768 -0
  108. package/dist/images/icons.svg +217 -0
  109. package/dist/jinn-codemirror-DETLdm08.js +1 -0
  110. package/dist/lib/openseadragon.min.js +80 -0
  111. package/dist/lib/openseadragon.min.js.map +1 -0
  112. package/dist/pb-code-editor.js +25 -20
  113. package/dist/pb-component-docs.js +414 -3225
  114. package/dist/pb-components-bundle.js +3046 -4402
  115. package/dist/pb-dialog-tklYGWfc.js +121 -0
  116. package/dist/pb-edit-app.js +208 -107
  117. package/dist/pb-elements.json +716 -249
  118. package/dist/pb-facsimile.js +46 -0
  119. package/dist/pb-i18n-C0NDma4h.js +1 -0
  120. package/dist/pb-leaflet-map.js +23 -23
  121. package/dist/pb-mei.js +152 -134
  122. package/dist/pb-mixin-DHoWQheB.js +1 -0
  123. package/dist/pb-odd-editor.js +1671 -1231
  124. package/dist/pb-tify.js +1 -27
  125. package/dist/unsafe-html-D5VGo9Oq.js +1 -0
  126. package/dist/urls-BEONu_g4.js +1 -0
  127. package/eslint.config.mjs +92 -0
  128. package/gh-pages.js +5 -3
  129. package/i18n/common/en.json +6 -0
  130. package/i18n/common/pl.json +2 -2
  131. package/images/icons.svg +217 -0
  132. package/index.html +0 -5
  133. package/lib/leaflet-src.js.map +1 -0
  134. package/lib/leaflet.markercluster-src.js.map +1 -0
  135. package/lib/openseadragon.min.js +6 -6
  136. package/package.json +56 -81
  137. package/pb-elements.json +716 -249
  138. package/rollup.config.mjs +312 -0
  139. package/src/assets/components.css +5 -5
  140. package/src/assets/design-system.css +607 -0
  141. package/src/authority/airtable.js +20 -21
  142. package/src/authority/anton.js +129 -129
  143. package/src/authority/custom.js +70 -27
  144. package/src/authority/geonames.js +38 -32
  145. package/src/authority/gnd.js +50 -42
  146. package/src/authority/kbga.js +136 -134
  147. package/src/authority/metagrid.js +44 -46
  148. package/src/authority/reconciliation.js +66 -68
  149. package/src/authority/registry.js +4 -4
  150. package/src/docs/demo-utils.js +91 -0
  151. package/src/docs/pb-component-docs.js +287 -147
  152. package/src/docs/pb-component-view.js +380 -273
  153. package/src/docs/pb-components-list.js +115 -51
  154. package/src/docs/pb-demo-snippet.js +199 -174
  155. package/src/dts-client.js +306 -303
  156. package/src/dts-select-endpoint.js +125 -85
  157. package/src/parse-date-service.js +184 -135
  158. package/src/pb-ajax.js +175 -173
  159. package/src/pb-authority-lookup.js +198 -158
  160. package/src/pb-autocomplete.js +731 -313
  161. package/src/pb-blacklab-highlight.js +266 -260
  162. package/src/pb-blacklab-results.js +230 -225
  163. package/src/pb-browse-docs.js +601 -484
  164. package/src/pb-browse.js +68 -65
  165. package/src/pb-clipboard.js +97 -76
  166. package/src/pb-code-editor.js +111 -103
  167. package/src/pb-code-highlight.js +234 -204
  168. package/src/pb-codepen.js +81 -73
  169. package/src/pb-collapse.js +265 -152
  170. package/src/pb-combo-box.js +191 -191
  171. package/src/pb-components-bundle.js +1 -7
  172. package/src/pb-components.js +2 -6
  173. package/src/pb-custom-form.js +230 -141
  174. package/src/pb-dialog.js +99 -63
  175. package/src/pb-document.js +118 -91
  176. package/src/pb-download.js +214 -198
  177. package/src/pb-drawer.js +146 -149
  178. package/src/pb-edit-app.js +471 -240
  179. package/src/pb-edit-xml.js +101 -98
  180. package/src/pb-events.js +126 -107
  181. package/src/pb-facs-link.js +130 -101
  182. package/src/pb-facsimile.js +494 -410
  183. package/src/pb-fetch.js +389 -0
  184. package/src/pb-formula.js +152 -154
  185. package/src/pb-geolocation.js +130 -132
  186. package/src/pb-grid-action.js +59 -56
  187. package/src/pb-grid.js +388 -228
  188. package/src/pb-highlight.js +142 -142
  189. package/src/pb-hotkeys.js +40 -42
  190. package/src/pb-i18n.js +115 -127
  191. package/src/pb-icon-button.js +108 -0
  192. package/src/pb-icon.js +283 -0
  193. package/src/pb-image-strip.js +85 -79
  194. package/src/pb-lang.js +142 -57
  195. package/src/pb-leaflet-map.js +551 -483
  196. package/src/pb-link.js +132 -126
  197. package/src/pb-load.js +495 -428
  198. package/src/pb-login.js +303 -248
  199. package/src/pb-manage-odds.js +384 -338
  200. package/src/pb-map-icon.js +90 -90
  201. package/src/pb-map-layer.js +86 -86
  202. package/src/pb-markdown.js +107 -110
  203. package/src/pb-media-query.js +75 -73
  204. package/src/pb-mei.js +523 -303
  205. package/src/pb-message.js +144 -98
  206. package/src/pb-mixin.js +268 -265
  207. package/src/pb-navigation.js +83 -96
  208. package/src/pb-observable.js +39 -39
  209. package/src/pb-odd-editor.js +1209 -948
  210. package/src/pb-odd-elementspec-editor.js +375 -310
  211. package/src/pb-odd-model-editor.js +1189 -941
  212. package/src/pb-odd-parameter-editor.js +269 -170
  213. package/src/pb-odd-rendition-editor.js +184 -131
  214. package/src/pb-page.js +451 -422
  215. package/src/pb-paginate.js +260 -178
  216. package/src/pb-panel.js +217 -183
  217. package/src/pb-popover-themes.js +16 -9
  218. package/src/pb-popover.js +297 -288
  219. package/src/pb-print-preview.js +128 -128
  220. package/src/pb-progress.js +52 -52
  221. package/src/pb-repeat.js +141 -108
  222. package/src/pb-restricted.js +85 -78
  223. package/src/pb-search.js +258 -230
  224. package/src/pb-select-feature.js +210 -126
  225. package/src/pb-select-odd.js +184 -118
  226. package/src/pb-select-template.js +113 -78
  227. package/src/pb-select.js +330 -229
  228. package/src/pb-split-list.js +181 -176
  229. package/src/pb-svg.js +81 -80
  230. package/src/pb-table-column.js +55 -55
  231. package/src/pb-table-grid.js +334 -205
  232. package/src/pb-tabs.js +238 -61
  233. package/src/pb-tify.js +3331 -126
  234. package/src/pb-timeline.js +394 -255
  235. package/src/pb-toggle-feature.js +196 -188
  236. package/src/pb-upload.js +201 -176
  237. package/src/pb-version.js +22 -34
  238. package/src/pb-view-annotate.js +138 -102
  239. package/src/pb-view.js +1722 -1272
  240. package/src/pb-zoom.js +144 -46
  241. package/src/search-result-service.js +256 -223
  242. package/src/seed-element.js +14 -22
  243. package/src/settings.js +4 -4
  244. package/src/theming.js +98 -91
  245. package/src/urls.js +403 -289
  246. package/src/utils.js +53 -51
  247. package/vite.config.js +86 -0
  248. package/css/pb-styles.css +0 -51
  249. package/dist/iron-form-3b8dcaa7.js +0 -210
  250. package/dist/jinn-codemirror-da0e2d1f.js +0 -1
  251. package/dist/paper-checkbox-515a5284.js +0 -1597
  252. package/dist/paper-icon-button-b1d31571.js +0 -398
  253. package/dist/paper-listbox-a3b7175c.js +0 -1265
  254. package/dist/pb-i18n-0611135a.js +0 -1
  255. package/dist/pb-mixin-b1caa22e.js +0 -158
  256. package/dist/polymer-hack.js +0 -1
  257. package/dist/vaadin-element-mixin-fe4a4883.js +0 -527
  258. package/lib/Control.Geocoder.min.js +0 -2
  259. package/lib/Control.Geocoder.min.js.map +0 -1
  260. package/src/assets/pb-styles.css +0 -51
  261. package/src/pb-light-dom.js +0 -41
  262. package/src/polymer-hack.js +0 -6
@@ -0,0 +1 @@
1
+ import{E as t,T as r}from"./pb-mixin-DHoWQheB.js";const i={ATTRIBUTE:1,CHILD:2},e=t=>(...r)=>({_$litDirective$:t,values:r});class s{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,r,i){this._$Ct=t,this._$AM=r,this._$Ci=i}_$AS(t,r){return this.update(t,r)}update(t,r){return this.render(...r)}}class n extends s{constructor(r){if(super(r),this.it=t,r.type!==i.CHILD)throw Error(this.constructor.directiveName+"() can only be used in child bindings")}render(i){if(i===t||null==i)return this._t=void 0,this.it=i;if(i===r)return i;if("string"!=typeof i)throw Error(this.constructor.directiveName+"() called with a non-string value");if(i===this.it)return this._t;this.it=i;const e=[i];return e.raw=e,this._t={_$litType$:this.constructor.resultType,strings:e,values:[]}}}n.directiveName="unsafeHTML",n.resultType=1;const o=e(n);export{e,s as i,o,i as t};
@@ -0,0 +1 @@
1
+ import{e as t,f as e}from"./pb-mixin-DHoWQheB.js";class r{static subscribe(t,e,s,n=!1){const a=r._getChannels(e),i=document.addEventListener(t,t=>{s&&t.detail&&t.detail.key&&a.includes(t.detail.key)&&s(t,i)},{once:n})}static subscribeOnce(t,e=null){const s=r._getChannels(e);return new Promise(e=>{document.addEventListener(t,t=>{t.detail&&t.detail.key&&s.includes(t.detail.key)&&e(t)},{once:!0})})}static _getChannels(e){return null!==e&&e.length?Array.isArray(e)?e:[e]:[t]}static emit(e,r=null,s=null){const n=s||{};n.key=r||t;const a=new CustomEvent(e,{detail:n});document.dispatchEvent(a)}static ifReady(t){return Array.isArray(t)||(t=[t]),new Promise(e=>{const r=t.length;if(0===r)return void e();let s=r;t.forEach(t=>{if(t._isReady)return s-=1,void(0===s&&e());const r=t.addEventListener("pb-ready",()=>{s-=1,0===s&&(t.removeEventListener("pb-ready",r),e())})})})}}if(!window.pbEvents){window.pbEvents=r;try{const t=document.createElement("script");t.type="text/javascript",t.text='if (typeof pbEvents === "undefined") { try { pbEvents = window.pbEvents; } catch(e) {} }',(document.head||document.documentElement).appendChild(t)}catch(t){}}var s,n={};function a(){if(s)return n;s=1,Object.defineProperty(n,"__esModule",{value:!0}),n.PathError=n.TokenData=void 0,n.parse=u,n.compile=p,n.match=m,n.pathToRegexp=g,n.stringify=S;const t="/",e=t=>t,r=/^[$_\p{ID_Start}]$/u,a=/^[$\u200c\u200d\p{ID_Continue}]$/u,i={"{":"{","}":"}","(":"(",")":")","[":"[","]":"]","+":"+","?":"?","!":"!"};function o(t){return t.replace(/[{}()\[\]+?!:*\\]/g,"\\$&")}function h(t){return t.replace(/[.+*?^${}()[\]|/\\]/g,"\\$&")}class l{constructor(t,e){this.tokens=t,this.originalPath=e}}n.TokenData=l;class c extends TypeError{constructor(t,e){let r=t;e&&(r+=`: ${e}`),r+="; visit https://git.new/pathToRegexpError for info",super(r),this.originalPath=e}}function u(t,s={}){const{encodePath:n=e}=s,o=[...t],h=[];let u=0,p=0;function d(){let e="";if(r.test(o[u]))do{e+=o[u++]}while(a.test(o[u]));else if('"'===o[u]){let r=u;for(;u++<o.length;){if('"'===o[u]){u++,r=0;break}"\\"===o[u]&&u++,e+=o[u]}if(r)throw new c(`Unterminated quote at index ${r}`,t)}if(!e)throw new c(`Missing parameter name at index ${u}`,t);return e}for(;u<o.length;){const t=o[u],e=i[t];e?h.push({type:e,index:u++,value:t}):"\\"===t?h.push({type:"escape",index:u++,value:o[u++]}):":"===t?h.push({type:"param",index:u++,value:d()}):"*"===t?h.push({type:"wildcard",index:u++,value:d()}):h.push({type:"char",index:u++,value:t})}function f(e){const r=[];for(;;){const s=h[p++];if(s.type===e)break;if("char"===s.type||"escape"===s.type){let t=s.value,e=h[p];for(;"char"===e.type||"escape"===e.type;)t+=e.value,e=h[++p];r.push({type:"text",value:n(t)});continue}if("param"!==s.type&&"wildcard"!==s.type){if("{"!==s.type)throw new c(`Unexpected ${s.type} at index ${s.index}, expected ${e}`,t);r.push({type:"group",tokens:f("}")})}else r.push({type:s.type,name:s.value})}return r}return h.push({type:"end",index:u,value:""}),new l(f("end"),t)}function p(e,r={}){const{encode:s=encodeURIComponent,delimiter:n=t}=r,a=d(("object"==typeof e?e:u(e,r)).tokens,n,s);return function(t={}){const[e,...r]=a(t);if(r.length)throw new TypeError(`Missing parameters: ${r.join(", ")}`);return e}}function d(t,e,r){const s=t.map(t=>f(t,e,r));return t=>{const e=[""];for(const r of s){const[s,...n]=r(t);e[0]+=s,e.push(...n)}return e}}function f(t,r,s){if("text"===t.type)return()=>[t.value];if("group"===t.type){const e=d(t.tokens,r,s);return t=>{const[r,...s]=e(t);return s.length?[""]:[r]}}const n=s||e;return"wildcard"===t.type&&!1!==s?e=>{const s=e[t.name];if(null==s)return["",t.name];if(!Array.isArray(s)||0===s.length)throw new TypeError(`Expected "${t.name}" to be a non-empty array`);return[s.map((e,r)=>{if("string"!=typeof e)throw new TypeError(`Expected "${t.name}/${r}" to be a string`);return n(e)}).join(r)]}:e=>{const r=e[t.name];if(null==r)return["",t.name];if("string"!=typeof r)throw new TypeError(`Expected "${t.name}" to be a string`);return[n(r)]}}function m(r,s={}){const{decode:n=decodeURIComponent,delimiter:a=t}=s,{regexp:i,keys:o}=g(r,s),h=o.map(t=>!1===n?e:"param"===t.type?n:t=>t.split(a).map(n));return function(t){const e=i.exec(t);if(!e)return!1;const r=e[0],s=Object.create(null);for(let t=1;t<e.length;t++){if(void 0===e[t])continue;const r=o[t-1],n=h[t-1];s[r.name]=n(e[t])}return{path:r,params:s}}}function g(e,r={}){const{delimiter:s=t,end:n=!0,sensitive:a=!1,trailing:i=!0}=r,o=[],l=a?"":"i",c=[];for(const t of y(e,[])){const e="object"==typeof t?t:u(t,r);for(const t of w(e.tokens,0,[]))c.push(P(t,s,o,e.originalPath))}let p=`^(?:${c.join("|")})`;i&&(p+=`(?:${h(s)}$)?`),p+=n?"$":`(?=${h(s)}|$)`;return{regexp:new RegExp(p,l),keys:o}}function y(t,e){if(Array.isArray(t))for(const r of t)y(r,e);else e.push(t);return e}function*w(t,e,r){if(e===t.length)return yield r;const s=t[e];if("group"===s.type)for(const n of w(s.tokens,0,r.slice()))yield*w(t,e+1,n);else r.push(s);yield*w(t,e+1,r)}function P(t,e,r,s){let n="",a="",i=!0;for(const o of t)if("text"!==o.type)if("param"!==o.type&&"wildcard"!==o.type);else{if(!i&&!a)throw new c(`Missing text before "${o.name}" ${o.type}`,s);"param"===o.type?n+=`(${v(e,i?"":a)}+)`:n+="([\\s\\S]+)",r.push(o),a="",i=!1}else n+=h(o.value),a+=o.value,i||(i=o.value.includes(e));return n}function v(t,e){return e.length<2?t.length<2?`[^${h(t+e)}]`:`(?:(?!${h(t)})[^${h(e)}])`:t.length<2?`(?:(?!${h(e)})[^${h(t)}])`:`(?:(?!${h(e)}|${h(t)})[\\s\\S])`}function b(t){let e="",r=0;function s(e){return $(e)&&E(t[r])?e:JSON.stringify(e)}for(;r<t.length;){const n=t[r++];if("text"!==n.type)if("group"!==n.type)if("param"!==n.type){if("wildcard"!==n.type)throw new TypeError(`Unknown token type: ${n.type}`);e+=`*${s(n.name)}`}else e+=`:${s(n.name)}`;else e+=`{${b(n.tokens)}}`;else e+=o(n.value)}return e}function S(t){return b(t.tokens)}function $(t){const[e,...s]=t;return r.test(e)&&s.every(t=>a.test(t))}function E(t){return!t||"text"!==t.type||!a.test(t.value[0])}return n.PathError=c,n}var i=a();function o(t){if(!t)return t;let e=t.replace(/:([a-zA-Z_][a-zA-Z0-9_]*)\?/g,"{:$1}");return e=e.replace(/\*$/g,"*path"),e}function h(...t){t[0]=`%c<registry>%c ${t[0]}`,t.splice(1,0,"font-weight: bold; color: #99FF33;","color: inherit; font-weight: normal"),console.log.apply(null,t)}class l{constructor(){this.rootPath="",this.usePath=!1,this.state={},this.channelStates={},this.hash=null,this.idHash=!0,this._listeners=[],this.urlPattern=null,this.urlIgnore=new Set,this.pathParams=new Set,this.currentUser=null}configure(t=!0,e=!1,s="",n,a){if(this.rootPath=s,this.usePath=t,this.idHash=e,this.urlPattern=n,a&&a.split(/\s*,\s*/).forEach(t=>this.urlIgnore.add(t)),this.urlPattern){const t=o(this.urlPattern),e=[];i.pathToRegexp(t,e),e.forEach(t=>this.pathParams.add(t.name)),this._decodePath=i.match(t),this._encodePath=i.compile(t)}const l=this._stateFromURL();l?this.state=l:console.error("<registry> failed to parse URL: %s using template %s",window.location,this.urlTemplate),window.history.replaceState(null,""),window.addEventListener("popstate",t=>{if(t.state){try{this.channelStates=JSON.parse(t.state)}catch(t){return void console.error("<registry> error restoring state: %s",t.toString())}this.state=this._stateFromURL(),h("popstate: %o",this.channelStates),this._listeners.forEach(t=>{t.callback(this.getState(t.component))}),r.emit("pb-popstate",null,this.channelStates)}})}subscribe(t,e){this._listeners.push({component:t,callback:e})}_stateFromURL(){const t={};this.hash=window.location.hash,this.idHash&&this.hash.length>0&&!/^#\d+\./.test(this.hash)&&(t.id=this.hash.substring(1));const e=window.location.pathname.replace(new RegExp(`^${this.rootPath}/?`),"");if(this.urlPattern){const r=this._decodePath(e);Object.assign(t,r.params),h("decoded path %s using template %s: %o",e,this.urlPattern,t)}else this.usePath&&(t.path=e);const r=new URLSearchParams(window.location.search);return r.forEach((e,s)=>{if(this.urlPattern&&this.pathParams.has(s)||this.usePath&&"path"===s)return void console.warn("Found path parameter in query, but usePath is set to true. The path parameter will be ignored.");if(s in t)return;const n=r.getAll(s);1===n.length?t[s]=e:t[s]=n}),t}getState(t){const r=e(t)[0],s=this.channelStates[r];return s||(this.channelStates[r]={},this.channelStates[r])}setState(t,r){const s=e(t)[0];this.channelStates[s]=Object.assign(this.channelStates[s],r)}clearParametersMatching(t,e){const{state:r}=this;for(const t of Object.keys(r))e.test(t)&&(r[t]=null)}get(t,e){if(!this.state)return;return t.split(".").reduce((t,e)=>{if(t[e])return t[e]},this.state)||e}set(t,e){if(!t.includes("."))return void(this.state[t]=e);const r=t.split("."),s=r.pop();r.reduce((t,e)=>(t[e]||(t[e]={}),t[e]),this.state)[s]=e}commit(t,e,r=!1){if(e&&"root"in e&&null===e.root){var s,n;const a=(null==t||null===(s=t.tagName)||void 0===s?void 0:s.toLowerCase())||(null==t||null===(n=t.constructor)||void 0===n?void 0:n.name)||"unknown";console.warn("[registry] commit called with root=null by:",a,{newState:e,overwrite:r,stack:(new Error).stack})}this._commit(t,e,r,!1)}replace(t,e,r=!1){var s,n;const a=(null==t||null===(s=t.tagName)||void 0===s?void 0:s.toLowerCase())||(null==t||null===(n=t.constructor)||void 0===n?void 0:n.name)||"unknown";console.warn("[registry] replace called by:",a,{newState:e,overwrite:r,stack:(new Error).stack}),this._commit(t,e,r,!0)}_commit(t,r,s,n){const a=Object.assign({},this.state);this.state=s?r:Object.assign(Object.assign({},this.state),r);const i=this.urlFromState();console.log("[registry] _commit: committing state",{oldState:a,newState:r,overwrite:s,replace:n,mergedState:this.state,resolvedUrl:i.toString(),resolvedHash:i.hash,resolvedSearch:i.search});e(t).forEach(t=>{s||!this.channelStates[t]?this.channelStates[t]=r:Object.assign(this.channelStates[t],r)});const o=this.toJSON();n?(window.history.replaceState(o,"",i),h("replace %s: %o %d",i.toString(),this.channelStates,window.history.length),console.log("[registry] _commit: replaced URL",{url:i.toString(),hash:i.hash,search:i.search})):(window.history.pushState(o,"",i),h("commit %s: %o %d",i.toString(),this.channelStates,window.history.length),console.log("[registry] _commit: pushed URL",{url:i.toString(),hash:i.hash,search:i.search}))}urlFromState(){const t=new URL(window.location.href);function e(e,r){if(null===e)t.searchParams.delete(r);else if(Array.isArray(e)){const s=Array.from(e);t.searchParams.set(r,s.pop()),s.forEach(e=>t.searchParams.append(r,e))}else t.searchParams.set(r,e)}console.log("[registry] urlFromState: building URL from state",{state:this.state,idHash:this.idHash,usePath:this.usePath,urlPattern:this.urlPattern,urlIgnore:Array.from(this.urlIgnore),pathParams:Array.from(this.pathParams)});for(const[t,r]of Object.entries(this.state))if(this.urlPattern){const s=t.replace(/^(?:user\.)?(.*)$/,"$1"),n=this.pathParams.has(s)||this.urlIgnore.has(s);console.log("[registry] urlFromState: processing param (urlPattern)",{param:t,normParam:s,value:r,shouldIgnore:n,willInclude:!n}),n||e(r,s)}else if("path"===t&&this.usePath||this.urlIgnore.has(t))console.log("[registry] urlFromState: skipping param",{param:t,value:r,reason:"path"===t&&this.usePath?"path param with usePath=true":"in urlIgnore"});else{const s=!("path"===t&&this.usePath||this.urlIgnore.has(t)),n="view"===t&&"single"===r||"odd"===t&&"teipublisher"===r||"panels"===t&&"string"==typeof r&&r.split(".").length>10;console.log("[registry] urlFromState: processing param (no urlPattern)",{param:t,value:r,willInclude:s,isUnwantedDefault:n,isPath:"path"===t,usePath:this.usePath,inUrlIgnore:this.urlIgnore.has(t)}),s&&!n?e(r,t):n&&console.log("[registry] urlFromState: filtering out unwanted default value",{param:t,value:r,reason:"unwanted default"})}if(this.state.path&&this.state.path.length>0)if(this.urlPattern){const e={};for(const[t,r]of Object.entries(this.state))this.pathParams.has(t)&&""===r?e[t]=null:e[t]=r;const r=this._encodePath(e);t.pathname=`${this.rootPath}/${r}`}else this.usePath&&(t.pathname=`${this.rootPath}/${this.state.path}`);return this.state.id&&!this.urlPattern&&(t.hash=`#${this.state.id}`,console.log("[registry] urlFromState: set hash from state.id",{id:this.state.id,hash:t.hash})),console.log("[registry] urlFromState: final URL",{url:t.toString(),search:t.search,hash:t.hash,hasIdParam:t.searchParams.has("id"),idParamValue:t.searchParams.get("id"),hasRootParam:t.searchParams.has("root"),rootParamValue:t.searchParams.get("root")}),t}toJSON(){return JSON.stringify(this.channelStates)}}const c=new l;if("undefined"!=typeof window){window.pbRegistry||(window.pbRegistry=c),window.PB||(window.PB={});try{const t=Object.getOwnPropertyDescriptor(window.PB,"pbRegistry");t&&"function"==typeof t.get||Object.defineProperty(window.PB,"pbRegistry",{configurable:!0,enumerable:!0,get:()=>window.pbRegistry,set(t){window.pbRegistry=t}})}catch(t){window.PB.pbRegistry||(window.PB.pbRegistry=window.pbRegistry)}}export{c as r};
@@ -0,0 +1,92 @@
1
+ import globals from "globals";
2
+ import eslint from "@eslint/js";
3
+ import openwc from "@open-wc/eslint-config";
4
+ import eslintConfigPrettier from "eslint-config-prettier/flat";
5
+ import cypress from "eslint-plugin-cypress";
6
+ import chaiFriendly from "eslint-plugin-chai-friendly";
7
+
8
+ export default [
9
+ // Ignore common build/artifact folders (still honoring .gitignore via CLI flag)
10
+ {
11
+ ignores: [
12
+ "dist/**",
13
+ "lib/**",
14
+ "css/**",
15
+ "images/**",
16
+ "demo/build/**",
17
+ "test/cypress/fixtures/**",
18
+ "test/cypress/screenshots/**",
19
+ "test/cypress/videos/**",
20
+ "test/cypress/downloads/**",
21
+ "node_modules/**",
22
+ ],
23
+ },
24
+
25
+ // Base ESLint recommended for JS with modern language settings
26
+ {
27
+ ...eslint.configs.recommended,
28
+ languageOptions: {
29
+ ...eslint.configs.recommended.languageOptions,
30
+ ecmaVersion: 2023,
31
+ sourceType: "module",
32
+ globals: { ...globals.browser, ...globals.es2023 },
33
+ },
34
+ },
35
+
36
+ // Open WC flat config (Lit/Web Components rules and sensible defaults)
37
+ ...openwc,
38
+
39
+ // Disable formatting conflicts with Prettier (must come after other configs)
40
+ eslintConfigPrettier,
41
+
42
+ // Project-specific rules (migrated from .eslintrc.json)
43
+ {
44
+ rules: {
45
+ "no-restricted-imports": [
46
+ "error",
47
+ {
48
+ paths: [
49
+ {
50
+ name: "lit-element",
51
+ message:
52
+ "Use 'lit' instead (see migration_plan/LIT-CONSOLIDATION.md).",
53
+ },
54
+ {
55
+ name: "lit-html",
56
+ message:
57
+ "Use 'lit' instead (see migration_plan/LIT-CONSOLIDATION.md).",
58
+ },
59
+ ],
60
+ patterns: ["lit-html/*"],
61
+ },
62
+ ],
63
+ },
64
+ },
65
+
66
+ // Cypress tests (component/e2e)
67
+ // Use plugin recommended config, but only for Cypress-related files
68
+ {
69
+ ...cypress.configs.recommended,
70
+ files: [
71
+ "test/cypress/**/*.{js,ts}",
72
+ "**/*.cy.{js,ts}",
73
+ "cypress/**/*.{js,ts}",
74
+ ],
75
+ },
76
+
77
+ // Add chai-friendly for Cypress specs as well
78
+ {
79
+ files: [
80
+ "test/cypress/**/*.{js,ts}",
81
+ "**/*.cy.{js,ts}",
82
+ "cypress/**/*.{js,ts}",
83
+ ],
84
+ plugins: {
85
+ "chai-friendly": chaiFriendly,
86
+ },
87
+ rules: {
88
+ "chai-friendly/no-unused-expressions": "error",
89
+ "no-unused-expressions": "off",
90
+ },
91
+ },
92
+ ];
package/gh-pages.js CHANGED
@@ -9,7 +9,7 @@ const versionTag = `@${json.version}`;
9
9
  const dir = path.join('docs', versionTag);
10
10
  const latest = path.resolve(path.join('docs', '@latest'));
11
11
  const dist = path.join(dir, 'dist');
12
- fs.mkdirSync(dist, { recursive: true});
12
+ fs.mkdirSync(dist, { recursive: true });
13
13
 
14
14
  console.log('[gh-pages] Copying files to %s', dir);
15
15
  copy('dist', dist);
@@ -20,8 +20,10 @@ copy('css', path.join(dir, 'css'));
20
20
  copy('src', path.join(dir, 'src'));
21
21
 
22
22
  try {
23
- fs.unlinkSync(latest);
24
- } catch(e) { /* */ }
23
+ fs.unlinkSync(latest);
24
+ } catch (e) {
25
+ /* */
26
+ }
25
27
  fs.symlinkSync(path.resolve(dir), latest, 'dir');
26
28
 
27
29
  const redirect = fs.readFileSync(path.join('demo', 'redirect.js'), 'utf-8');
@@ -316,5 +316,11 @@
316
316
  "timeline": {
317
317
  "unknown": "undated",
318
318
  "clear": "Clear date selection"
319
+ },
320
+ "toolbar": {
321
+ "zoom": {
322
+ "in": "Zoom in",
323
+ "out": "Zoom out"
324
+ }
319
325
  }
320
326
  }
@@ -53,8 +53,8 @@
53
53
  "sort": "Sortuj",
54
54
  "filter": "Filtruj według",
55
55
  "filterPlaceholder": "Filtruj",
56
- "items": "Znaleziono {{count}} rezultat",
57
- "items_plural": "Znaleziono {{count}} rezultatów",
56
+ "items": "Liczba rezultatów: {{count}}",
57
+ "items_plural": "Liczba rezultatów: {{count}}",
58
58
  "title": "Tytuł",
59
59
  "author": "Autor",
60
60
  "modificationDate": "Data ostatniej modyfikacji",
@@ -0,0 +1,217 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
2
+ <defs>
3
+ <!-- Navigation icons -->
4
+ <g id="icon-expand-more">
5
+ <path d="M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z"/>
6
+ </g>
7
+
8
+ <g id="icon-expand-less">
9
+ <path d="M12 8l-6 6 1.41 1.41L12 10.83l4.59 4.58L18 14z"/>
10
+ </g>
11
+
12
+ <g id="icon-chevron-right">
13
+ <path d="M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"/>
14
+ </g>
15
+
16
+ <g id="icon-chevron-left">
17
+ <path d="M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"/>
18
+ </g>
19
+
20
+ <g id="icon-menu">
21
+ <path d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z"/>
22
+ </g>
23
+
24
+ <g id="icon-close">
25
+ <path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/>
26
+ </g>
27
+
28
+ <!-- Action icons -->
29
+ <g id="icon-search">
30
+ <path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"/>
31
+ </g>
32
+
33
+ <g id="icon-edit">
34
+ <path d="M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34c-.39-.39-1.02-.39-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z"/>
35
+ </g>
36
+
37
+ <g id="icon-delete">
38
+ <path d="M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z"/>
39
+ </g>
40
+
41
+ <g id="icon-add">
42
+ <path d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"/>
43
+ </g>
44
+
45
+ <g id="icon-remove">
46
+ <path d="M19 13H5v-2h14v2z"/>
47
+ </g>
48
+
49
+ <g id="icon-save">
50
+ <path d="M17 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V7l-4-4zm-5 16c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3zm3-10H5V5h10v4z"/>
51
+ </g>
52
+
53
+ <g id="icon-copy">
54
+ <path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"/>
55
+ </g>
56
+
57
+ <g id="icon-content-paste">
58
+ <path d="M19 2h-4.18C14.4.84 13.3 0 12 0c-1.3 0-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm7 18H5V4h2v3h10V4h2v16z"/>
59
+ </g>
60
+
61
+ <g id="icon-download">
62
+ <path d="M19 9h-4V3H9v6H5l7 7 7-7zM5 18v2h14v-2H5z"/>
63
+ </g>
64
+
65
+ <g id="icon-upload">
66
+ <path d="M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 2 2h12c1.1 0 2-.9 2-2V8l-6-6zm4 18H6V4h7v5h5v11z"/>
67
+ </g>
68
+
69
+ <!-- Communication icons -->
70
+ <g id="icon-email">
71
+ <path d="M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z"/>
72
+ </g>
73
+
74
+ <g id="icon-print">
75
+ <path d="M19 8H5c-1.66 0-3 1.34-3 3v6h4v4h12v-4h4v-6c0-1.66-1.34-3-3-3zm-3 11H8v-5h8v5zm3-7c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm-1-9H6v4h12V3z"/>
76
+ </g>
77
+
78
+ <!-- Status icons -->
79
+ <g id="icon-check">
80
+ <path d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"/>
81
+ </g>
82
+
83
+ <g id="icon-warning">
84
+ <path d="M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z"/>
85
+ </g>
86
+
87
+ <g id="icon-error">
88
+ <path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"/>
89
+ </g>
90
+
91
+ <g id="icon-info">
92
+ <path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z"/>
93
+ </g>
94
+
95
+ <g id="icon-refresh">
96
+ <path d="M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4l-2.35 2.35z"/>
97
+ </g>
98
+
99
+ <!-- Media icons -->
100
+ <g id="icon-play">
101
+ <path d="M8 5v14l11-7z"/>
102
+ </g>
103
+
104
+ <g id="icon-pause">
105
+ <path d="M6 19h4V5H6v14zm8-14v14h4V5h-4z"/>
106
+ </g>
107
+
108
+ <g id="icon-stop">
109
+ <path d="M6 6h12v12H6z"/>
110
+ </g>
111
+
112
+ <g id="icon-volume-up">
113
+ <path d="M3 9v6h4l5 5V4L7 9H3zm13.5 3c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02zM14 3.23v2.06c2.89.86 5 3.54 5 6.71s-2.11 5.85-5 6.71v2.06c4.01-.91 7-4.49 7-8.77s-2.99-7.86-7-8.77z"/>
114
+ </g>
115
+
116
+ <g id="icon-volume-off">
117
+ <path d="M16.5 12c0-1.77-1.02-3.29-2.5-4.03v2.21l2.45 2.45c.03-.2.05-.41.05-.63zm2.5 0c0 .94-.2 1.82-.54 2.64l1.51 1.51C20.63 14.91 21 13.5 21 12c0-4.28-2.99-7.86-7-8.77v2.06c2.89.86 5 3.54 5 6.71zM4.27 3L3 4.27 7.73 9H3v6h4l5 5v-6.73l4.25 4.25c-.67.52-1.42.93-2.25 1.18v2.06c1.38-.31 2.63-.95 3.69-1.81L19.73 21 21 19.73l-9-9L4.27 3zM12 4L9.91 6.09 12 8.18V4z"/>
118
+ </g>
119
+
120
+ <g id="icon-zoom-in">
121
+ <path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14zm2.5-4h-2v2H9v-2H7V9h2V7h1v2h2v1z"/>
122
+ </g>
123
+
124
+ <g id="icon-zoom-out">
125
+ <path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14zM7 9h5v1H7z"/>
126
+ </g>
127
+
128
+ <!-- Layout icons -->
129
+ <g id="icon-grid">
130
+ <path d="M4 8h4V4H4v4zm6 12h4v-4h-4v4zm-6 0h4v-4H4v4zm0-6h4v-4H4v4zm6 0h4v-4h-4v4zm6-10v4h4V4h-4zm-6 4h4V4h-4v4zm6 6h4v-4h-4v4zm0 6h4v-4h-4v4z"/>
131
+ </g>
132
+
133
+ <g id="icon-list">
134
+ <path d="M3 13h2v-2H3v2zm0 4h2v-2H3v2zm0-8h2V7H3v2zm4 4h14v-2H7v2zm0 4h14v-2H7v2zM7 7v2h14V7H7z"/>
135
+ </g>
136
+
137
+ <g id="icon-view-list">
138
+ <path d="M4 14h4v-4H4v4zm0 5h4v-4H4v4zM4 9h4V5H4v4zm5 5h12v-4H9v4zm0 5h12v-4H9v4zM9 5v4h12V5H9z"/>
139
+ </g>
140
+
141
+ <g id="icon-view-column">
142
+ <path d="M10 18h5V5h-5v13zm-6 0h5V5H4v13zM16 5v13h5V5h-5z"/>
143
+ </g>
144
+
145
+ <g id="icon-fullscreen">
146
+ <path d="M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z"/>
147
+ </g>
148
+
149
+ <g id="icon-fullscreen-exit">
150
+ <path d="M5 16h3v3h2v-5H5v2zm3-8H5v2h5V5H8v3zm6 11h2v-3h3v-2h-5v5zm2-11V5h-2v5h5V8h-3z"/>
151
+ </g>
152
+
153
+ <!-- File icons -->
154
+ <g id="icon-folder">
155
+ <path d="M10 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2h-8l-2-2z"/>
156
+ </g>
157
+
158
+ <g id="icon-file">
159
+ <path d="M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 2 2h12c1.1 0 2-.9 2-2V8l-6-6zm4 18H6V4h7v5h5v11z"/>
160
+ </g>
161
+
162
+ <!-- Settings icons -->
163
+ <g id="icon-settings">
164
+ <path d="M19.14,12.94c0.04-0.3,0.06-0.61,0.06-0.94c0-0.32-0.02-0.64-0.07-0.94l2.03-1.58c0.18-0.14,0.23-0.41,0.12-0.61 l-1.92-3.32c-0.12-0.22-0.37-0.29-0.59-0.22l-2.39,0.96c-0.5-0.38-1.03-0.7-1.62-0.94L14.4,2.81c-0.04-0.24-0.24-0.41-0.48-0.41 h-3.84c-0.24,0-0.43,0.17-0.47,0.41L9.25,5.35C8.66,5.59,8.12,5.92,7.63,6.29L5.24,5.33c-0.22-0.08-0.47,0-0.59,0.22L2.74,8.87 C2.62,9.08,2.66,9.34,2.86,9.48l2.03,1.58C4.84,11.36,4.8,11.69,4.8,12s0.02,0.64,0.07,0.94l-2.03,1.58 c-0.18,0.14-0.23,0.41-0.12,0.61l1.92,3.32c0.12,0.22,0.37,0.29,0.59,0.22l2.39-0.96c0.5,0.38,1.03,0.7,1.62,0.94l0.36,2.54 c0.05,0.24,0.24,0.41,0.48,0.41h3.84c0.24,0,0.44-0.17,0.47-0.41l0.36-2.54c0.59-0.24,1.13-0.56,1.62-0.94l2.39,0.96 c0.22,0.08,0.47,0,0.59-0.22l1.92-3.32c0.12-0.22,0.07-0.47-0.12-0.61L19.14,12.94z M12,15.6c-1.98,0-3.6-1.62-3.6-3.6 s1.62-3.6,3.6-3.6s3.6,1.62,3.6,3.6S13.98,15.6,12,15.6z"/>
165
+ </g>
166
+
167
+ <g id="icon-help">
168
+ <path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 17h-2v-2h2v2zm2.07-7.75l-.9.92C13.45 12.9 13 13.5 13 15h-2v-.5c0-1.1.45-2.1 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41 0-1.1-.9-2-2-2s-2 .9-2 2H8c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .88-.36 1.68-.93 2.25z"/>
169
+ </g>
170
+
171
+ <!-- Date/Time icons -->
172
+ <g id="icon-calendar">
173
+ <path d="M19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V8h14v11zM7 10h5v5H7z"/>
174
+ </g>
175
+
176
+ <g id="icon-clock">
177
+ <path d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm.5-13H11v6l5.25 3.15.75-1.23-4.5-2.67z"/>
178
+ </g>
179
+
180
+ <!-- Social icons -->
181
+ <g id="icon-share">
182
+ <path d="M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81 1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9c-1.66 0-3 1.34-3 3s1.34 3 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.16c-.05.21-.08.43-.08.65 0 1.61 1.31 2.92 2.92 2.92 1.61 0 2.92-1.31 2.92-2.92s-1.31-2.92-2.92-2.92z"/>
183
+ </g>
184
+
185
+ <g id="icon-favorite">
186
+ <path d="M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z"/>
187
+ </g>
188
+
189
+ <g id="icon-bookmark">
190
+ <path d="M17 3H7c-1.1 0-1.99.9-1.99 2L5 21l7-3 7 3V5c0-1.1-.9-2-2-2z"/>
191
+ </g>
192
+ <g id="icon-arrow-upward">
193
+ <path d="M4 12l1.41 1.41L11 7.83V20h2V7.83l5.59 5.58L20 12 12 4z"/>
194
+ </g>
195
+
196
+ <g id="icon-arrow-downward">
197
+ <path d="M20 12l-1.41-1.41L13 16.17V4h-2v12.17l-5.58-5.59L4 12l8 8 8-8z"/>
198
+ </g>
199
+
200
+ <g id="icon-flag">
201
+ <path d="M6 4v16h2v-6h5l1 2h4V6h-4V4H6z"/>
202
+ </g>
203
+
204
+ <g id="icon-folder-open">
205
+ <path d="M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.89 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 12H4V6h5.17l2 2H20v10z"/>
206
+ </g>
207
+
208
+ <g id="icon-code">
209
+ <path d="M9.4 16.6 4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0 4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z"/>
210
+ </g>
211
+
212
+ <g id="icon-open-in-new">
213
+ <path d="M14 3v2h3.59L9 13.59 10.41 15 19 6.41V10h2V3zM5 5v14h14v-6h-2v4H7V7h4V5z"/>
214
+ </g>
215
+
216
+ </defs>
217
+ </svg>
package/index.html CHANGED
@@ -37,11 +37,6 @@
37
37
  </script>
38
38
  -->
39
39
 
40
- <!-- Load polyfills -->
41
- <script src="node_modules/@webcomponents/webcomponentsjs/webcomponents-loader.js" defer></script>
42
- <script type="module" src="node_modules/@polymer/iron-icons/iron-icons.js"></script>
43
- <script type="module" src="node_modules/@polymer/paper-fab/paper-fab.js"></script>
44
-
45
40
  <script type="module" src="src/pb-page.js"></script>
46
41
  <script type="module" src="src/pb-document.js"></script>
47
42
  <script type="module" src="src/pb-toggle-feature.js"></script>