@internetarchive/ia-topnav 1.3.19-alpha1 → 1.3.19-alpha2

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.
@@ -10,7 +10,7 @@ export declare class NavSearch extends TrackedElement {
10
10
  searchIn: string;
11
11
  searchQuery: string;
12
12
  private queryInput?;
13
- static get styles(): import("lit").CSSResult;
13
+ static get styles(): import("lit").CSSResult[];
14
14
  search(e: CustomEvent): boolean;
15
15
  toggleSearchMenu(): void;
16
16
  get searchInsideInput(): import("lit").TemplateResult<1> | typeof nothing;
@@ -6,6 +6,7 @@ import icons from './assets/img/icons';
6
6
  import formatUrl from './lib/format-url';
7
7
  import { customElement, property, query } from 'lit/decorators.js';
8
8
  import { defaultTopNavConfig } from './data/menus';
9
+ import { iaSronlyStyles } from '@internetarchive/ia-styles';
9
10
  let NavSearch = class NavSearch extends TrackedElement {
10
11
  constructor() {
11
12
  super(...arguments);
@@ -19,7 +20,7 @@ let NavSearch = class NavSearch extends TrackedElement {
19
20
  this.searchQuery = '';
20
21
  }
21
22
  static get styles() {
22
- return navSearchCSS;
23
+ return [navSearchCSS, iaSronlyStyles];
23
24
  }
24
25
  search(e) {
25
26
  var _a;
@@ -70,6 +71,7 @@ let NavSearch = class NavSearch extends TrackedElement {
70
71
  @submit=${this.search}
71
72
  data-event-submit-tracking="${(_a = this.config) === null || _a === void 0 ? void 0 : _a.eventCategory}|NavSearchSubmit"
72
73
  >
74
+ <label for="query" class="sr-only">Search the Archive</label>
73
75
  <input
74
76
  type="text"
75
77
  name="query"
@@ -77,7 +79,6 @@ let NavSearch = class NavSearch extends TrackedElement {
77
79
  placeholder="Search"
78
80
  autocomplete="off"
79
81
  value=${this.searchQuery || ''}
80
- aria-label="Search the Archive"
81
82
  @focus=${this.toggleSearchMenu}
82
83
  />
83
84
  ${this.searchInsideInput}
@@ -1 +1 @@
1
- {"version":3,"file":"nav-search.js","sourceRoot":"","sources":["../../src/nav-search.ts"],"names":[],"mappings":"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","sourcesContent":["import { nothing, html } from 'lit';\n\nimport TrackedElement from './tracked-element';\nimport navSearchCSS from './styles/nav-search';\nimport icons from './assets/img/icons';\nimport formatUrl from './lib/format-url';\nimport { customElement, property, query } from 'lit/decorators.js';\nimport { defaultTopNavConfig } from './data/menus';\nimport { IATopNavConfig } from './models';\n\n@customElement('nav-search')\nexport class NavSearch extends TrackedElement {\n @property({ type: String }) baseHost = '';\n @property({ type: Object }) config: IATopNavConfig = defaultTopNavConfig;\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n @property({ type: Object }) locationHandler = (url: string) => {};\n @property({ type: Boolean }) open = false;\n @property({ type: String }) openMenu = '';\n @property({ type: String }) searchIn = '';\n @property({ type: String }) searchQuery = '';\n\n @query('[name=query]') private queryInput?: HTMLInputElement;\n\n static get styles() {\n return navSearchCSS;\n }\n\n search(e: CustomEvent) {\n const query = this.queryInput?.value;\n\n if (!query) {\n e.preventDefault();\n return false;\n }\n\n // TV search points to a detail page with a q param instead\n if (this.searchIn === 'TV') {\n this.locationHandler(\n formatUrl(`/details/tv?q=${query}` as string & Location, this.baseHost),\n );\n e.preventDefault();\n return false;\n }\n\n this.trackSubmit(e);\n return true;\n }\n\n toggleSearchMenu() {\n if (this.openMenu === 'search') {\n return;\n }\n this.dispatchEvent(\n new CustomEvent('menuToggled', {\n detail: {\n menuName: 'search',\n },\n composed: true,\n bubbles: true,\n }),\n );\n }\n\n get searchInsideInput() {\n return this.searchIn\n ? html`<input type=\"hidden\" name=\"sin\" value=\"${this.searchIn}\" />`\n : nothing;\n }\n\n get searchEndpoint() {\n return '/search';\n }\n\n render() {\n const searchMenuClass = this.open ? 'flex' : 'search-inactive';\n\n return html`\n <div class=\"search-activated fade-in ${searchMenuClass}\">\n <form\n id=\"nav-search\"\n class=\"highlight\"\n .action=${formatUrl(\n this.searchEndpoint as string & Location,\n this.baseHost,\n )}\n method=\"get\"\n @submit=${this.search}\n data-event-submit-tracking=\"${this.config\n ?.eventCategory}|NavSearchSubmit\"\n >\n <input\n type=\"text\"\n name=\"query\"\n class=\"search-field\"\n placeholder=\"Search\"\n autocomplete=\"off\"\n value=${this.searchQuery || ''}\n aria-label=\"Search the Archive\"\n @focus=${this.toggleSearchMenu}\n />\n ${this.searchInsideInput}\n <button\n type=\"submit\"\n class=\"search\"\n tabindex=\"-1\"\n data-event-click-tracking=\"${this.config\n ?.eventCategory}|NavSearchClose\"\n >\n ${icons.search}\n </button>\n </form>\n </div>\n `;\n }\n}\n"]}
1
+ {"version":3,"file":"nav-search.js","sourceRoot":"","sources":["../../src/nav-search.ts"],"names":[],"mappings":"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","sourcesContent":["import { nothing, html } from 'lit';\n\nimport TrackedElement from './tracked-element';\nimport navSearchCSS from './styles/nav-search';\nimport icons from './assets/img/icons';\nimport formatUrl from './lib/format-url';\nimport { customElement, property, query } from 'lit/decorators.js';\nimport { defaultTopNavConfig } from './data/menus';\nimport { IATopNavConfig } from './models';\nimport { iaSronlyStyles } from '@internetarchive/ia-styles';\n\n@customElement('nav-search')\nexport class NavSearch extends TrackedElement {\n @property({ type: String }) baseHost = '';\n @property({ type: Object }) config: IATopNavConfig = defaultTopNavConfig;\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n @property({ type: Object }) locationHandler = (url: string) => {};\n @property({ type: Boolean }) open = false;\n @property({ type: String }) openMenu = '';\n @property({ type: String }) searchIn = '';\n @property({ type: String }) searchQuery = '';\n\n @query('[name=query]') private queryInput?: HTMLInputElement;\n\n static get styles() {\n return [navSearchCSS, iaSronlyStyles];\n }\n\n search(e: CustomEvent) {\n const query = this.queryInput?.value;\n\n if (!query) {\n e.preventDefault();\n return false;\n }\n\n // TV search points to a detail page with a q param instead\n if (this.searchIn === 'TV') {\n this.locationHandler(\n formatUrl(`/details/tv?q=${query}` as string & Location, this.baseHost),\n );\n e.preventDefault();\n return false;\n }\n\n this.trackSubmit(e);\n return true;\n }\n\n toggleSearchMenu() {\n if (this.openMenu === 'search') {\n return;\n }\n this.dispatchEvent(\n new CustomEvent('menuToggled', {\n detail: {\n menuName: 'search',\n },\n composed: true,\n bubbles: true,\n }),\n );\n }\n\n get searchInsideInput() {\n return this.searchIn\n ? html`<input type=\"hidden\" name=\"sin\" value=\"${this.searchIn}\" />`\n : nothing;\n }\n\n get searchEndpoint() {\n return '/search';\n }\n\n render() {\n const searchMenuClass = this.open ? 'flex' : 'search-inactive';\n\n return html`\n <div class=\"search-activated fade-in ${searchMenuClass}\">\n <form\n id=\"nav-search\"\n class=\"highlight\"\n .action=${formatUrl(\n this.searchEndpoint as string & Location,\n this.baseHost,\n )}\n method=\"get\"\n @submit=${this.search}\n data-event-submit-tracking=\"${this.config\n ?.eventCategory}|NavSearchSubmit\"\n >\n <label for=\"query\" class=\"sr-only\">Search the Archive</label>\n <input\n type=\"text\"\n name=\"query\"\n class=\"search-field\"\n placeholder=\"Search\"\n autocomplete=\"off\"\n value=${this.searchQuery || ''}\n @focus=${this.toggleSearchMenu}\n />\n ${this.searchInsideInput}\n <button\n type=\"submit\"\n class=\"search\"\n tabindex=\"-1\"\n data-event-click-tracking=\"${this.config\n ?.eventCategory}|NavSearchClose\"\n >\n ${icons.search}\n </button>\n </form>\n </div>\n `;\n }\n}\n"]}
@@ -3,7 +3,7 @@ import { IATopNavConfig } from './models';
3
3
  export declare class SavePageForm extends TrackedElement {
4
4
  config: IATopNavConfig;
5
5
  inputValid: boolean;
6
- static get styles(): import("lit").CSSResult;
6
+ static get styles(): import("lit").CSSResult[];
7
7
  private validateURL;
8
8
  get errorClass(): string;
9
9
  render(): import("lit").TemplateResult<1>;
@@ -4,6 +4,7 @@ import TrackedElement from './tracked-element';
4
4
  import savePageFormCSS from './styles/save-page-form';
5
5
  import { customElement, property, state } from 'lit/decorators.js';
6
6
  import { defaultTopNavConfig } from './data/menus';
7
+ import { iaSronlyStyles } from '@internetarchive/ia-styles';
7
8
  let SavePageForm = class SavePageForm extends TrackedElement {
8
9
  constructor() {
9
10
  super(...arguments);
@@ -11,7 +12,7 @@ let SavePageForm = class SavePageForm extends TrackedElement {
11
12
  this.inputValid = true;
12
13
  }
13
14
  static get styles() {
14
- return savePageFormCSS;
15
+ return [savePageFormCSS, iaSronlyStyles];
15
16
  }
16
17
  validateURL(e) {
17
18
  const target = e.target;
@@ -42,7 +43,8 @@ let SavePageForm = class SavePageForm extends TrackedElement {
42
43
  the future.
43
44
  </p>
44
45
  <div>
45
- <input type="text" name="url_preload" placeholder="https://" aria-label="Enter a URL to save" />
46
+ <label for="url_preload" class="sr-only">Enter a URL to save</label>
47
+ <input type="text" name="url_preload" placeholder="https://" />
46
48
  <input type="submit" value="Save" />
47
49
  </div>
48
50
  <p class=${this.errorClass}>Please enter a valid web address</p>
@@ -1 +1 @@
1
- {"version":3,"file":"save-page-form.js","sourceRoot":"","sources":["../../src/save-page-form.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,cAAc,MAAM,mBAAmB,CAAC;AAC/C,OAAO,eAAe,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAEnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAG5C,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,cAAc;IAAzC;;QACuB,WAAM,GAAmB,mBAAmB,CAAC;QAEhE,eAAU,GAAG,IAAI,CAAC;IA+C7B,CAAC;IA7CC,MAAM,KAAK,MAAM;QACf,OAAO,eAAe,CAAC;IACzB,CAAC;IAEO,WAAW,CAAC,CAAc;QAChC,MAAM,MAAM,GAAG,CAAC,CAAC,MAAyB,CAAC;QAC3C,MAAM,QAAQ,GAAG,MAAM,CAAC,aAAa,CACnC,sBAAsB,CACH,CAAC;QACtB,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAE9C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,QAAQ,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;IACrD,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAA;;;;sCAIuB,IAAI,CAAC,MAAM,CAAC,aAAa;kBAC7C,IAAI,CAAC,WAAW;;;;;;;;;;;mBAWf,IAAI,CAAC,UAAU;;KAE7B,CAAC;IACJ,CAAC;CACF,CAAA;AAjD6B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;4CAA8C;AAEhE;IAAR,KAAK,EAAE;gDAAmB;AAHhB,YAAY;IADxB,aAAa,CAAC,gBAAgB,CAAC;GACnB,YAAY,CAkDxB","sourcesContent":["import { html } from 'lit';\nimport TrackedElement from './tracked-element';\nimport savePageFormCSS from './styles/save-page-form';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { IATopNavConfig } from './models';\nimport { defaultTopNavConfig } from './data/menus';\n\n@customElement('save-page-form')\nexport class SavePageForm extends TrackedElement {\n @property({ type: Object }) config: IATopNavConfig = defaultTopNavConfig;\n\n @state() inputValid = true;\n\n static get styles() {\n return savePageFormCSS;\n }\n\n private validateURL(e: SubmitEvent) {\n const target = e.target as HTMLFormElement;\n const urlInput = target.querySelector(\n '[name=\"url_preload\"]',\n ) as HTMLInputElement;\n const valid = /\\..{2,}$/.test(urlInput.value);\n\n if (!valid) {\n e.preventDefault();\n this.inputValid = false;\n return;\n }\n this.inputValid = true;\n this.trackSubmit(e);\n }\n\n get errorClass() {\n return `error${this.inputValid ? '' : ' visible'}`;\n }\n\n render() {\n return html`\n <form\n action=\"//web.archive.org/save\"\n method=\"post\"\n data-event-submit-tracking=\"${this.config.eventCategory}|SavePageSubmit\"\n @submit=${this.validateURL}\n >\n <h3>Save Page Now</h3>\n <p>\n Capture a web page as it appears now for use as a trusted citation in\n the future.\n </p>\n <div>\n <input type=\"text\" name=\"url_preload\" placeholder=\"https://\" aria-label=\"Enter a URL to save\" />\n <input type=\"submit\" value=\"Save\" />\n </div>\n <p class=${this.errorClass}>Please enter a valid web address</p>\n </form>\n `;\n }\n}\n"]}
1
+ {"version":3,"file":"save-page-form.js","sourceRoot":"","sources":["../../src/save-page-form.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,cAAc,MAAM,mBAAmB,CAAC;AAC/C,OAAO,eAAe,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAEnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAGrD,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,cAAc;IAAzC;;QACuB,WAAM,GAAmB,mBAAmB,CAAC;QAEhE,eAAU,GAAG,IAAI,CAAC;IAgD7B,CAAC;IA9CC,MAAM,KAAK,MAAM;QACf,OAAO,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC;IAC3C,CAAC;IAEO,WAAW,CAAC,CAAc;QAChC,MAAM,MAAM,GAAG,CAAC,CAAC,MAAyB,CAAC;QAC3C,MAAM,QAAQ,GAAG,MAAM,CAAC,aAAa,CACnC,sBAAsB,CACH,CAAC;QACtB,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAE9C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,QAAQ,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC;IACrD,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAA;;;;sCAIuB,IAAI,CAAC,MAAM,CAAC,aAAa;kBAC7C,IAAI,CAAC,WAAW;;;;;;;;;;;;mBAYf,IAAI,CAAC,UAAU;;KAE7B,CAAC;IACJ,CAAC;CACF,CAAA;AAlD6B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;4CAA8C;AAEhE;IAAR,KAAK,EAAE;gDAAmB;AAHhB,YAAY;IADxB,aAAa,CAAC,gBAAgB,CAAC;GACnB,YAAY,CAmDxB","sourcesContent":["import { html } from 'lit';\nimport TrackedElement from './tracked-element';\nimport savePageFormCSS from './styles/save-page-form';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { IATopNavConfig } from './models';\nimport { defaultTopNavConfig } from './data/menus';\nimport { iaSronlyStyles } from '@internetarchive/ia-styles';\n\n@customElement('save-page-form')\nexport class SavePageForm extends TrackedElement {\n @property({ type: Object }) config: IATopNavConfig = defaultTopNavConfig;\n\n @state() inputValid = true;\n\n static get styles() {\n return [savePageFormCSS, iaSronlyStyles];\n }\n\n private validateURL(e: SubmitEvent) {\n const target = e.target as HTMLFormElement;\n const urlInput = target.querySelector(\n '[name=\"url_preload\"]',\n ) as HTMLInputElement;\n const valid = /\\..{2,}$/.test(urlInput.value);\n\n if (!valid) {\n e.preventDefault();\n this.inputValid = false;\n return;\n }\n this.inputValid = true;\n this.trackSubmit(e);\n }\n\n get errorClass() {\n return `error${this.inputValid ? '' : ' visible'}`;\n }\n\n render() {\n return html`\n <form\n action=\"//web.archive.org/save\"\n method=\"post\"\n data-event-submit-tracking=\"${this.config.eventCategory}|SavePageSubmit\"\n @submit=${this.validateURL}\n >\n <h3>Save Page Now</h3>\n <p>\n Capture a web page as it appears now for use as a trusted citation in\n the future.\n </p>\n <div>\n <label for=\"url_preload\" class=\"sr-only\">Enter a URL to save</label>\n <input type=\"text\" name=\"url_preload\" placeholder=\"https://\" />\n <input type=\"submit\" value=\"Save\" />\n </div>\n <p class=${this.errorClass}>Please enter a valid web address</p>\n </form>\n `;\n }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@internetarchive/ia-topnav",
3
- "version": "1.3.19-alpha1",
3
+ "version": "1.3.19-alpha2",
4
4
  "description": "Top nav for Internet Archive",
5
5
  "license": "AGPL-3.0-only",
6
6
  "main": "dist/index.js",
@@ -25,6 +25,7 @@
25
25
  "ghpages:generate": "gh-pages -t -d ghpages -m \"Build for $(git log --pretty=format:\"%h %an %ai %s\" -n1) [skip ci]\""
26
26
  },
27
27
  "dependencies": {
28
+ "@internetarchive/ia-styles": "^1.0.0",
28
29
  "@internetarchive/ia-wayback-search": "^1.0.3",
29
30
  "lit": "^2.8.0"
30
31
  },
package/src/nav-search.ts CHANGED
@@ -7,6 +7,7 @@ import formatUrl from './lib/format-url';
7
7
  import { customElement, property, query } from 'lit/decorators.js';
8
8
  import { defaultTopNavConfig } from './data/menus';
9
9
  import { IATopNavConfig } from './models';
10
+ import { iaSronlyStyles } from '@internetarchive/ia-styles';
10
11
 
11
12
  @customElement('nav-search')
12
13
  export class NavSearch extends TrackedElement {
@@ -22,7 +23,7 @@ export class NavSearch extends TrackedElement {
22
23
  @query('[name=query]') private queryInput?: HTMLInputElement;
23
24
 
24
25
  static get styles() {
25
- return navSearchCSS;
26
+ return [navSearchCSS, iaSronlyStyles];
26
27
  }
27
28
 
28
29
  search(e: CustomEvent) {
@@ -88,6 +89,7 @@ export class NavSearch extends TrackedElement {
88
89
  data-event-submit-tracking="${this.config
89
90
  ?.eventCategory}|NavSearchSubmit"
90
91
  >
92
+ <label for="query" class="sr-only">Search the Archive</label>
91
93
  <input
92
94
  type="text"
93
95
  name="query"
@@ -95,7 +97,6 @@ export class NavSearch extends TrackedElement {
95
97
  placeholder="Search"
96
98
  autocomplete="off"
97
99
  value=${this.searchQuery || ''}
98
- aria-label="Search the Archive"
99
100
  @focus=${this.toggleSearchMenu}
100
101
  />
101
102
  ${this.searchInsideInput}
@@ -4,6 +4,7 @@ import savePageFormCSS from './styles/save-page-form';
4
4
  import { customElement, property, state } from 'lit/decorators.js';
5
5
  import { IATopNavConfig } from './models';
6
6
  import { defaultTopNavConfig } from './data/menus';
7
+ import { iaSronlyStyles } from '@internetarchive/ia-styles';
7
8
 
8
9
  @customElement('save-page-form')
9
10
  export class SavePageForm extends TrackedElement {
@@ -12,7 +13,7 @@ export class SavePageForm extends TrackedElement {
12
13
  @state() inputValid = true;
13
14
 
14
15
  static get styles() {
15
- return savePageFormCSS;
16
+ return [savePageFormCSS, iaSronlyStyles];
16
17
  }
17
18
 
18
19
  private validateURL(e: SubmitEvent) {
@@ -49,7 +50,8 @@ export class SavePageForm extends TrackedElement {
49
50
  the future.
50
51
  </p>
51
52
  <div>
52
- <input type="text" name="url_preload" placeholder="https://" aria-label="Enter a URL to save" />
53
+ <label for="url_preload" class="sr-only">Enter a URL to save</label>
54
+ <input type="text" name="url_preload" placeholder="https://" />
53
55
  <input type="submit" value="Save" />
54
56
  </div>
55
57
  <p class=${this.errorClass}>Please enter a valid web address</p>