@internetarchive/modal-manager 2.0.3 → 2.0.4-alpha-webdev7960.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 (103) hide show
  1. package/.editorconfig +29 -29
  2. package/.eslintrc.js +14 -14
  3. package/.github/workflows/ci.yml +30 -30
  4. package/.github/workflows/gh-pages-main.yml +42 -42
  5. package/.github/workflows/pr-preview.yml +40 -40
  6. package/LICENSE +661 -661
  7. package/README.md +139 -139
  8. package/custom-elements.json +170 -170
  9. package/dist/index.d.ts +7 -7
  10. package/dist/index.js +5 -5
  11. package/dist/index.js.map +1 -1
  12. package/dist/src/assets/arrow-left-icon.d.ts +2 -2
  13. package/dist/src/assets/arrow-left-icon.js +14 -14
  14. package/dist/src/assets/arrow-left-icon.js.map +1 -1
  15. package/dist/src/assets/ia-logo-icon.d.ts +2 -2
  16. package/dist/src/assets/ia-logo-icon.js +29 -29
  17. package/dist/src/assets/ia-logo-icon.js.map +1 -1
  18. package/dist/src/modal-config.d.ts +104 -104
  19. package/dist/src/modal-config.js +24 -24
  20. package/dist/src/modal-config.js.map +1 -1
  21. package/dist/src/modal-manager-host-bridge-interface.d.ts +12 -12
  22. package/dist/src/modal-manager-host-bridge-interface.js +1 -1
  23. package/dist/src/modal-manager-host-bridge-interface.js.map +1 -1
  24. package/dist/src/modal-manager-host-bridge.d.ts +34 -34
  25. package/dist/src/modal-manager-host-bridge.js +62 -62
  26. package/dist/src/modal-manager-host-bridge.js.map +1 -1
  27. package/dist/src/modal-manager-interface.d.ts +27 -27
  28. package/dist/src/modal-manager-interface.js +1 -1
  29. package/dist/src/modal-manager-interface.js.map +1 -1
  30. package/dist/src/modal-manager-mode.d.ts +10 -10
  31. package/dist/src/modal-manager-mode.js +11 -11
  32. package/dist/src/modal-manager-mode.js.map +1 -1
  33. package/dist/src/modal-manager.d.ts +137 -127
  34. package/dist/src/modal-manager.js +247 -234
  35. package/dist/src/modal-manager.js.map +1 -1
  36. package/dist/src/modal-template.d.ts +41 -41
  37. package/dist/src/modal-template.js +335 -335
  38. package/dist/src/modal-template.js.map +1 -1
  39. package/dist/src/shoelace/active-elements.d.ts +15 -15
  40. package/dist/src/shoelace/active-elements.js +27 -27
  41. package/dist/src/shoelace/active-elements.js.map +1 -1
  42. package/dist/src/shoelace/modal.d.ts +24 -24
  43. package/dist/src/shoelace/modal.js +131 -131
  44. package/dist/src/shoelace/modal.js.map +1 -1
  45. package/dist/src/shoelace/tabbable.d.ts +9 -9
  46. package/dist/src/shoelace/tabbable.js +169 -169
  47. package/dist/src/shoelace/tabbable.js.map +1 -1
  48. package/dist/test/modal-config.test.d.ts +1 -1
  49. package/dist/test/modal-config.test.js +69 -69
  50. package/dist/test/modal-config.test.js.map +1 -1
  51. package/dist/test/modal-manager.test.d.ts +1 -1
  52. package/dist/test/modal-manager.test.js +274 -274
  53. package/dist/test/modal-manager.test.js.map +1 -1
  54. package/dist/test/modal-template.test.d.ts +1 -1
  55. package/dist/test/modal-template.test.js +178 -178
  56. package/dist/test/modal-template.test.js.map +1 -1
  57. package/dist/vite.config.d.ts +2 -2
  58. package/dist/vite.config.js +22 -22
  59. package/dist/vite.config.js.map +1 -1
  60. package/docs/assets/css/main.css +2678 -2678
  61. package/docs/classes/_src_modal_config_.modalconfig.html +429 -429
  62. package/docs/classes/_src_modal_manager_.modalmanager.html +7702 -7702
  63. package/docs/classes/_src_modal_manager_host_bridge_.modalmanagerhostbridge.html +409 -409
  64. package/docs/classes/_src_modal_template_.modaltemplate.html +7096 -7096
  65. package/docs/enums/_src_modal_manager_mode_.modalmanagermode.html +196 -196
  66. package/docs/globals.html +150 -150
  67. package/docs/index.html +252 -252
  68. package/docs/interfaces/_src_modal_manager_host_bridge_interface_.modalmanagerhostbridgeinterface.html +210 -210
  69. package/docs/interfaces/_src_modal_manager_interface_.modalmanagerinterface.html +7095 -7095
  70. package/docs/modules/_index_.html +208 -208
  71. package/docs/modules/_src_modal_config_.html +146 -146
  72. package/docs/modules/_src_modal_manager_.html +146 -146
  73. package/docs/modules/_src_modal_manager_host_bridge_.html +146 -146
  74. package/docs/modules/_src_modal_manager_host_bridge_interface_.html +146 -146
  75. package/docs/modules/_src_modal_manager_interface_.html +146 -146
  76. package/docs/modules/_src_modal_manager_mode_.html +146 -146
  77. package/docs/modules/_src_modal_template_.html +146 -146
  78. package/docs/modules/_test_modal_config_test_.html +106 -106
  79. package/docs/modules/_test_modal_manager_test_.html +106 -106
  80. package/docs/modules/_test_modal_template_test_.html +106 -106
  81. package/index.html +300 -300
  82. package/index.ts +7 -7
  83. package/karma.conf.js +24 -24
  84. package/package.json +85 -85
  85. package/renovate.json +7 -7
  86. package/src/assets/arrow-left-icon.ts +15 -15
  87. package/src/assets/ia-logo-icon.ts +30 -30
  88. package/src/modal-config.ts +133 -133
  89. package/src/modal-manager-host-bridge-interface.ts +13 -13
  90. package/src/modal-manager-host-bridge.ts +82 -82
  91. package/src/modal-manager-interface.ts +30 -30
  92. package/src/modal-manager-mode.ts +10 -10
  93. package/src/modal-manager.ts +303 -283
  94. package/src/modal-template.ts +343 -343
  95. package/src/shoelace/LICENSE.md +6 -6
  96. package/src/shoelace/active-elements.ts +33 -33
  97. package/src/shoelace/modal.ts +166 -166
  98. package/src/shoelace/tabbable.ts +223 -223
  99. package/test/modal-config.test.ts +77 -77
  100. package/test/modal-manager.test.ts +347 -347
  101. package/test/modal-template.test.ts +206 -206
  102. package/tsconfig.json +21 -21
  103. package/vite.config.ts +23 -23
package/docs/index.html CHANGED
@@ -1,253 +1,253 @@
1
- <!doctype html>
2
- <html class="default no-js">
3
- <head>
4
- <meta charset="utf-8">
5
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
6
- <title>@internetarchive/modal-manager</title>
7
- <meta name="description" content="Documentation for @internetarchive/modal-manager">
8
- <meta name="viewport" content="width=device-width, initial-scale=1">
9
- <link rel="stylesheet" href="assets/css/main.css">
10
- </head>
11
- <body>
12
- <header>
13
- <div class="tsd-page-toolbar">
14
- <div class="container">
15
- <div class="table-wrap">
16
- <div class="table-cell" id="tsd-search" data-index="assets/js/search.json" data-base=".">
17
- <div class="field">
18
- <label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
19
- <input id="tsd-search-field" type="text" />
20
- </div>
21
- <ul class="results">
22
- <li class="state loading">Preparing search index...</li>
23
- <li class="state failure">The search index is not available</li>
24
- </ul>
25
- <a href="index.html" class="title">@internetarchive/modal-manager</a>
26
- </div>
27
- <div class="table-cell" id="tsd-widgets">
28
- <div id="tsd-filter">
29
- <a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
30
- <div class="tsd-filter-group">
31
- <div class="tsd-select" id="tsd-filter-visibility">
32
- <span class="tsd-select-label">All</span>
33
- <ul class="tsd-select-list">
34
- <li data-value="public">Public</li>
35
- <li data-value="protected">Public/Protected</li>
36
- <li data-value="private" class="selected">All</li>
37
- </ul>
38
- </div>
39
- <input type="checkbox" id="tsd-filter-inherited" checked />
40
- <label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
41
- <input type="checkbox" id="tsd-filter-externals" checked />
42
- <label class="tsd-widget" for="tsd-filter-externals">Externals</label>
43
- <input type="checkbox" id="tsd-filter-only-exported" />
44
- <label class="tsd-widget" for="tsd-filter-only-exported">Only exported</label>
45
- </div>
46
- </div>
47
- <a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
48
- </div>
49
- </div>
50
- </div>
51
- </div>
52
- <div class="tsd-page-title">
53
- <div class="container">
54
- <ul class="tsd-breadcrumb">
55
- <li>
56
- <a href="globals.html">Globals</a>
57
- </li>
58
- </ul>
59
- <h1>@internetarchive/modal-manager</h1>
60
- </div>
61
- </div>
62
- </header>
63
- <div class="container container-main">
64
- <div class="row">
65
- <div class="col-8 col-content">
66
- <div class="tsd-panel tsd-typography">
67
- <p><a href="https://travis-ci.com/internetarchive/iaux-modal-manager"><img src="https://travis-ci.com/internetarchive/iaux-modal-manager.svg?branch=master" alt="Build Status"></a> <a href="https://codecov.io/gh/internetarchive/iaux-modal-manager"><img src="https://codecov.io/gh/internetarchive/iaux-modal-manager/branch/master/graph/badge.svg" alt="codecov"></a></p>
68
- <a href="#modal-manager-component" id="modal-manager-component" style="color: inherit; text-decoration: none;">
69
- <h1>Modal Manager Component</h1>
70
- </a>
71
- <p>A modal manager built on LitElement with support for custom content and light DOM elements.</p>
72
- <p><img src="./assets/modal-screenshot.jpg" alt="Modal Manager" title="Modal Manager Demo"></p>
73
- <a href="#installation" id="installation" style="color: inherit; text-decoration: none;">
74
- <h2>Installation</h2>
75
- </a>
76
- <pre><code class="language-bash">npm install --save @internetarchive/modal-manager</code></pre>
77
- <a href="#usage" id="usage" style="color: inherit; text-decoration: none;">
78
- <h2>Usage</h2>
79
- </a>
80
- <pre><code class="language-html"><span class="hljs-comment">&lt;!-- index.html --&gt;</span>
81
- <span class="hljs-tag">&lt;<span class="hljs-name">script</span> <span class="hljs-attr">type</span>=<span class="hljs-string">&quot;module&quot;</span>&gt;</span><span class="javascript">
82
- <span class="hljs-keyword">import</span> <span class="hljs-string">&#x27;@internetarchive/modal-manager&#x27;</span>;
83
- <span class="hljs-keyword">import</span> { ModalConfig } <span class="hljs-keyword">from</span> <span class="hljs-string">&#x27;@internetarchive/modal-manager&#x27;</span>;
84
- </span><span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span>
85
-
86
- <span class="hljs-tag">&lt;<span class="hljs-name">style</span>&gt;</span><span class="css">
87
- <span class="hljs-comment">/* add the following styles to ensure proper modal visibility */</span>
88
- <span class="hljs-selector-tag">body</span><span class="hljs-selector-class">.modal-manager-open</span> {
89
- <span class="hljs-attribute">overflow</span>: hidden;
90
- }
91
-
92
- <span class="hljs-selector-tag">modal-manager</span> {
93
- <span class="hljs-attribute">display</span>: none;
94
- }
95
-
96
- <span class="hljs-selector-tag">modal-manager</span><span class="hljs-selector-attr">[mode=<span class="hljs-string">&#x27;open&#x27;</span>]</span> {
97
- <span class="hljs-attribute">display</span>: block;
98
- }
99
- </span><span class="hljs-tag">&lt;/<span class="hljs-name">style</span>&gt;</span>
100
-
101
- <span class="hljs-tag">&lt;<span class="hljs-name">modal-manager</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">modal-manager</span>&gt;</span>
102
-
103
- <span class="hljs-tag">&lt;<span class="hljs-name">script</span>&gt;</span><span class="javascript">
104
- <span class="hljs-comment">// show a simple modal</span>
105
- <span class="hljs-keyword">const</span> manager = <span class="hljs-built_in">document</span>.querySelector(<span class="hljs-string">&#x27;modal-manager&#x27;</span>);
106
- <span class="hljs-keyword">const</span> config = <span class="hljs-keyword">new</span> ModalConfig();
107
- config.headline = <span class="hljs-string">&#x27;Hi, Everybody!&#x27;</span>;
108
- config.message = <span class="hljs-string">&#x27;Hi, Doctor Nick!&#x27;</span>;
109
- manager.showModal(config)
110
-
111
- <span class="hljs-comment">// to hide the modal call `closeModal()`:</span>
112
- manager.closeModal();
113
- </span><span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span></code></pre>
114
- <a href="#advanced-usage" id="advanced-usage" style="color: inherit; text-decoration: none;">
115
- <h2>Advanced Usage</h2>
116
- </a>
117
- <a href="#markup-content" id="markup-content" style="color: inherit; text-decoration: none;">
118
- <h3>Markup Content</h3>
119
- </a>
120
- <p>You can pass in custom HTML into the <code>ModalConfig</code>:</p>
121
- <pre><code class="language-html"><span class="hljs-tag">&lt;<span class="hljs-name">script</span> <span class="hljs-attr">type</span>=<span class="hljs-string">&quot;module&quot;</span>&gt;</span><span class="javascript">
122
- <span class="hljs-keyword">import</span> { html } <span class="hljs-keyword">from</span> <span class="hljs-string">&#x27;lit-html&#x27;</span>;
123
- </span><span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span>
124
-
125
- <span class="hljs-tag">&lt;<span class="hljs-name">modal-manager</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">modal-manager</span>&gt;</span>
126
-
127
- <span class="hljs-tag">&lt;<span class="hljs-name">script</span>&gt;</span><span class="javascript">
128
- <span class="hljs-keyword">const</span> manager = <span class="hljs-built_in">document</span>.querySelector(<span class="hljs-string">&#x27;modal-manager&#x27;</span>);
129
- <span class="hljs-keyword">const</span> config = <span class="hljs-keyword">new</span> ModalConfig();
130
- config.title = <span class="hljs-string">&#x27;Internet Archive&#x27;</span>;
131
- config.subtitle = <span class="hljs-string">&#x27;&#x27;</span>;
132
- config.headline = <span class="hljs-string">&#x27;Thanks for your Support!&#x27;</span>;
133
- config.message = html`<span class="xml">
134
- <span class="hljs-tag">&lt;<span class="hljs-name">p</span>&gt;</span>Thanks for your donation!<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
135
- <span class="hljs-tag">&lt;<span class="hljs-name">p</span>&gt;</span>Please click <span class="hljs-tag">&lt;<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">&quot;&quot;</span>&gt;</span>here<span class="hljs-tag">&lt;/<span class="hljs-name">a</span>&gt;</span> to complete!<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
136
- `</span>;
137
- config.headerColor = <span class="hljs-string">&#x27;#36A483&#x27;</span>;
138
- manager.showModal(config);
139
- </span><span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span></code></pre>
140
- <a href="#custom-content" id="custom-content" style="color: inherit; text-decoration: none;">
141
- <h3>Custom Content</h3>
142
- </a>
143
- <p>Display completely custom content in the modal body, including light DOM content like a PayPal button.</p>
144
- <pre><code class="language-html"><span class="hljs-tag">&lt;<span class="hljs-name">modal-manager</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">modal-manager</span>&gt;</span>
145
-
146
- <span class="hljs-tag">&lt;<span class="hljs-name">script</span>&gt;</span><span class="javascript">
147
- <span class="hljs-keyword">const</span> manager = <span class="hljs-built_in">document</span>.querySelector(<span class="hljs-string">&#x27;modal-manager&#x27;</span>);
148
- <span class="hljs-keyword">const</span> config = <span class="hljs-keyword">new</span> ModalConfig();
149
- <span class="hljs-keyword">const</span> customContent = html`<span class="xml">
150
- Can contain any markup, including web components. Event listeners also work. Try clicking on the picture.
151
- <span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">style</span>=<span class="hljs-string">&quot;text-align: center&quot;</span>&gt;</span>
152
- <span class="hljs-tag">&lt;<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">&quot;https://fillmurray.com&quot;</span> <span class="hljs-attr">style</span>=<span class="hljs-string">&quot;display: block&quot;</span>&gt;</span>Fill Murray<span class="hljs-tag">&lt;/<span class="hljs-name">a</span>&gt;</span>
153
- <span class="hljs-tag">&lt;<span class="hljs-name">img</span> <span class="hljs-attr">src</span>=<span class="hljs-string">&quot;100x100.jpg&quot;</span> @<span class="hljs-attr">click</span>=</span></span><span class="hljs-subst">${showBillAlert}</span><span class="xml"><span class="hljs-tag"> /&gt;</span>
154
- <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
155
- `</span>;
156
-
157
- modalManager.showModal(config, customContent);
158
- </span><span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span></code></pre>
159
- <a href="#config-options" id="config-options" style="color: inherit; text-decoration: none;">
160
- <h3>Config Options</h3>
161
- </a>
162
- <p>All of the config options:</p>
163
- <pre><code class="language-javascript"><span class="hljs-keyword">const</span> config = <span class="hljs-keyword">new</span> ModalConfig();
164
- config.title = <span class="hljs-string">&#x27;Internet Archive&#x27;</span>;
165
- config.subtitle = <span class="hljs-string">&#x27;&#x27;</span>;
166
- config.headline = <span class="hljs-string">&#x27;Thanks for your Support!&#x27;</span>;
167
- config.message = <span class="hljs-string">&#x27;Thank you for supporting the Internet Archive!&#x27;</span>;
168
- config.headerColor = <span class="hljs-string">&#x27;#36A483&#x27;</span>;
169
- config.showProcessingIndicator = <span class="hljs-literal">false</span>;
170
- config.processingImageMode = <span class="hljs-string">&#x27;processing&#x27;</span>; <span class="hljs-comment">// or `complete`</span></code></pre>
171
- <a href="#development" id="development" style="color: inherit; text-decoration: none;">
172
- <h1>Development</h1>
173
- </a>
174
- <a href="#prerequisite" id="prerequisite" style="color: inherit; text-decoration: none;">
175
- <h2>Prerequisite</h2>
176
- </a>
177
- <pre><code class="language-bash">npm install</code></pre>
178
- <a href="#start-development-server" id="start-development-server" style="color: inherit; text-decoration: none;">
179
- <h2>Start Development Server</h2>
180
- </a>
181
- <pre><code class="language-bash">npm start</code></pre>
182
- <a href="#testing" id="testing" style="color: inherit; text-decoration: none;">
183
- <h2>Testing</h2>
184
- </a>
185
- <pre><code class="language-bash">npm <span class="hljs-built_in">test</span></code></pre>
186
- <a href="#linting" id="linting" style="color: inherit; text-decoration: none;">
187
- <h2>Linting</h2>
188
- </a>
189
- <pre><code class="language-bash">npm lint</code></pre>
190
- </div>
191
- </div>
192
- <div class="col-4 col-menu menu-sticky-wrap menu-highlight">
193
- <nav class="tsd-navigation primary">
194
- <ul>
195
- <li class="globals ">
196
- <a href="globals.html"><em>Globals</em></a>
197
- </li>
198
- <li class=" tsd-kind-module">
199
- <a href="modules/_index_.html">&quot;index&quot;</a>
200
- </li>
201
- <li class=" tsd-kind-module">
202
- <a href="modules/_src_modal_config_.html">&quot;src/modal-<wbr>config&quot;</a>
203
- </li>
204
- <li class=" tsd-kind-module">
205
- <a href="modules/_src_modal_manager_.html">&quot;src/modal-<wbr>manager&quot;</a>
206
- </li>
207
- <li class=" tsd-kind-module">
208
- <a href="modules/_src_modal_manager_host_bridge_.html">&quot;src/modal-<wbr>manager-<wbr>host-<wbr>bridge&quot;</a>
209
- </li>
210
- <li class=" tsd-kind-module">
211
- <a href="modules/_src_modal_manager_host_bridge_interface_.html">&quot;src/modal-<wbr>manager-<wbr>host-<wbr>bridge-<wbr>interface&quot;</a>
212
- </li>
213
- <li class=" tsd-kind-module">
214
- <a href="modules/_src_modal_manager_interface_.html">&quot;src/modal-<wbr>manager-<wbr>interface&quot;</a>
215
- </li>
216
- <li class=" tsd-kind-module">
217
- <a href="modules/_src_modal_manager_mode_.html">&quot;src/modal-<wbr>manager-<wbr>mode&quot;</a>
218
- </li>
219
- <li class=" tsd-kind-module">
220
- <a href="modules/_src_modal_template_.html">&quot;src/modal-<wbr>template&quot;</a>
221
- </li>
222
- </ul>
223
- </nav>
224
- <nav class="tsd-navigation secondary menu-sticky">
225
- <ul class="before-current">
226
- </ul>
227
- </nav>
228
- </div>
229
- </div>
230
- </div>
231
- <footer class="with-border-bottom">
232
- <div class="container">
233
- <h2>Legend</h2>
234
- <div class="tsd-legend-group">
235
- <ul class="tsd-legend">
236
- <li class="tsd-kind-enum"><span class="tsd-kind-icon">Enumeration</span></li>
237
- </ul>
238
- <ul class="tsd-legend">
239
- <li class="tsd-kind-interface"><span class="tsd-kind-icon">Interface</span></li>
240
- </ul>
241
- <ul class="tsd-legend">
242
- <li class="tsd-kind-class"><span class="tsd-kind-icon">Class</span></li>
243
- </ul>
244
- </div>
245
- </div>
246
- </footer>
247
- <div class="container tsd-generator">
248
- <p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
249
- </div>
250
- <div class="overlay"></div>
251
- <script src="assets/js/main.js"></script>
252
- </body>
1
+ <!doctype html>
2
+ <html class="default no-js">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
6
+ <title>@internetarchive/modal-manager</title>
7
+ <meta name="description" content="Documentation for @internetarchive/modal-manager">
8
+ <meta name="viewport" content="width=device-width, initial-scale=1">
9
+ <link rel="stylesheet" href="assets/css/main.css">
10
+ </head>
11
+ <body>
12
+ <header>
13
+ <div class="tsd-page-toolbar">
14
+ <div class="container">
15
+ <div class="table-wrap">
16
+ <div class="table-cell" id="tsd-search" data-index="assets/js/search.json" data-base=".">
17
+ <div class="field">
18
+ <label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
19
+ <input id="tsd-search-field" type="text" />
20
+ </div>
21
+ <ul class="results">
22
+ <li class="state loading">Preparing search index...</li>
23
+ <li class="state failure">The search index is not available</li>
24
+ </ul>
25
+ <a href="index.html" class="title">@internetarchive/modal-manager</a>
26
+ </div>
27
+ <div class="table-cell" id="tsd-widgets">
28
+ <div id="tsd-filter">
29
+ <a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
30
+ <div class="tsd-filter-group">
31
+ <div class="tsd-select" id="tsd-filter-visibility">
32
+ <span class="tsd-select-label">All</span>
33
+ <ul class="tsd-select-list">
34
+ <li data-value="public">Public</li>
35
+ <li data-value="protected">Public/Protected</li>
36
+ <li data-value="private" class="selected">All</li>
37
+ </ul>
38
+ </div>
39
+ <input type="checkbox" id="tsd-filter-inherited" checked />
40
+ <label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
41
+ <input type="checkbox" id="tsd-filter-externals" checked />
42
+ <label class="tsd-widget" for="tsd-filter-externals">Externals</label>
43
+ <input type="checkbox" id="tsd-filter-only-exported" />
44
+ <label class="tsd-widget" for="tsd-filter-only-exported">Only exported</label>
45
+ </div>
46
+ </div>
47
+ <a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
48
+ </div>
49
+ </div>
50
+ </div>
51
+ </div>
52
+ <div class="tsd-page-title">
53
+ <div class="container">
54
+ <ul class="tsd-breadcrumb">
55
+ <li>
56
+ <a href="globals.html">Globals</a>
57
+ </li>
58
+ </ul>
59
+ <h1>@internetarchive/modal-manager</h1>
60
+ </div>
61
+ </div>
62
+ </header>
63
+ <div class="container container-main">
64
+ <div class="row">
65
+ <div class="col-8 col-content">
66
+ <div class="tsd-panel tsd-typography">
67
+ <p><a href="https://travis-ci.com/internetarchive/iaux-modal-manager"><img src="https://travis-ci.com/internetarchive/iaux-modal-manager.svg?branch=master" alt="Build Status"></a> <a href="https://codecov.io/gh/internetarchive/iaux-modal-manager"><img src="https://codecov.io/gh/internetarchive/iaux-modal-manager/branch/master/graph/badge.svg" alt="codecov"></a></p>
68
+ <a href="#modal-manager-component" id="modal-manager-component" style="color: inherit; text-decoration: none;">
69
+ <h1>Modal Manager Component</h1>
70
+ </a>
71
+ <p>A modal manager built on LitElement with support for custom content and light DOM elements.</p>
72
+ <p><img src="./assets/modal-screenshot.jpg" alt="Modal Manager" title="Modal Manager Demo"></p>
73
+ <a href="#installation" id="installation" style="color: inherit; text-decoration: none;">
74
+ <h2>Installation</h2>
75
+ </a>
76
+ <pre><code class="language-bash">npm install --save @internetarchive/modal-manager</code></pre>
77
+ <a href="#usage" id="usage" style="color: inherit; text-decoration: none;">
78
+ <h2>Usage</h2>
79
+ </a>
80
+ <pre><code class="language-html"><span class="hljs-comment">&lt;!-- index.html --&gt;</span>
81
+ <span class="hljs-tag">&lt;<span class="hljs-name">script</span> <span class="hljs-attr">type</span>=<span class="hljs-string">&quot;module&quot;</span>&gt;</span><span class="javascript">
82
+ <span class="hljs-keyword">import</span> <span class="hljs-string">&#x27;@internetarchive/modal-manager&#x27;</span>;
83
+ <span class="hljs-keyword">import</span> { ModalConfig } <span class="hljs-keyword">from</span> <span class="hljs-string">&#x27;@internetarchive/modal-manager&#x27;</span>;
84
+ </span><span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span>
85
+
86
+ <span class="hljs-tag">&lt;<span class="hljs-name">style</span>&gt;</span><span class="css">
87
+ <span class="hljs-comment">/* add the following styles to ensure proper modal visibility */</span>
88
+ <span class="hljs-selector-tag">body</span><span class="hljs-selector-class">.modal-manager-open</span> {
89
+ <span class="hljs-attribute">overflow</span>: hidden;
90
+ }
91
+
92
+ <span class="hljs-selector-tag">modal-manager</span> {
93
+ <span class="hljs-attribute">display</span>: none;
94
+ }
95
+
96
+ <span class="hljs-selector-tag">modal-manager</span><span class="hljs-selector-attr">[mode=<span class="hljs-string">&#x27;open&#x27;</span>]</span> {
97
+ <span class="hljs-attribute">display</span>: block;
98
+ }
99
+ </span><span class="hljs-tag">&lt;/<span class="hljs-name">style</span>&gt;</span>
100
+
101
+ <span class="hljs-tag">&lt;<span class="hljs-name">modal-manager</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">modal-manager</span>&gt;</span>
102
+
103
+ <span class="hljs-tag">&lt;<span class="hljs-name">script</span>&gt;</span><span class="javascript">
104
+ <span class="hljs-comment">// show a simple modal</span>
105
+ <span class="hljs-keyword">const</span> manager = <span class="hljs-built_in">document</span>.querySelector(<span class="hljs-string">&#x27;modal-manager&#x27;</span>);
106
+ <span class="hljs-keyword">const</span> config = <span class="hljs-keyword">new</span> ModalConfig();
107
+ config.headline = <span class="hljs-string">&#x27;Hi, Everybody!&#x27;</span>;
108
+ config.message = <span class="hljs-string">&#x27;Hi, Doctor Nick!&#x27;</span>;
109
+ manager.showModal(config)
110
+
111
+ <span class="hljs-comment">// to hide the modal call `closeModal()`:</span>
112
+ manager.closeModal();
113
+ </span><span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span></code></pre>
114
+ <a href="#advanced-usage" id="advanced-usage" style="color: inherit; text-decoration: none;">
115
+ <h2>Advanced Usage</h2>
116
+ </a>
117
+ <a href="#markup-content" id="markup-content" style="color: inherit; text-decoration: none;">
118
+ <h3>Markup Content</h3>
119
+ </a>
120
+ <p>You can pass in custom HTML into the <code>ModalConfig</code>:</p>
121
+ <pre><code class="language-html"><span class="hljs-tag">&lt;<span class="hljs-name">script</span> <span class="hljs-attr">type</span>=<span class="hljs-string">&quot;module&quot;</span>&gt;</span><span class="javascript">
122
+ <span class="hljs-keyword">import</span> { html } <span class="hljs-keyword">from</span> <span class="hljs-string">&#x27;lit-html&#x27;</span>;
123
+ </span><span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span>
124
+
125
+ <span class="hljs-tag">&lt;<span class="hljs-name">modal-manager</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">modal-manager</span>&gt;</span>
126
+
127
+ <span class="hljs-tag">&lt;<span class="hljs-name">script</span>&gt;</span><span class="javascript">
128
+ <span class="hljs-keyword">const</span> manager = <span class="hljs-built_in">document</span>.querySelector(<span class="hljs-string">&#x27;modal-manager&#x27;</span>);
129
+ <span class="hljs-keyword">const</span> config = <span class="hljs-keyword">new</span> ModalConfig();
130
+ config.title = <span class="hljs-string">&#x27;Internet Archive&#x27;</span>;
131
+ config.subtitle = <span class="hljs-string">&#x27;&#x27;</span>;
132
+ config.headline = <span class="hljs-string">&#x27;Thanks for your Support!&#x27;</span>;
133
+ config.message = html`<span class="xml">
134
+ <span class="hljs-tag">&lt;<span class="hljs-name">p</span>&gt;</span>Thanks for your donation!<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
135
+ <span class="hljs-tag">&lt;<span class="hljs-name">p</span>&gt;</span>Please click <span class="hljs-tag">&lt;<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">&quot;&quot;</span>&gt;</span>here<span class="hljs-tag">&lt;/<span class="hljs-name">a</span>&gt;</span> to complete!<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
136
+ `</span>;
137
+ config.headerColor = <span class="hljs-string">&#x27;#36A483&#x27;</span>;
138
+ manager.showModal(config);
139
+ </span><span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span></code></pre>
140
+ <a href="#custom-content" id="custom-content" style="color: inherit; text-decoration: none;">
141
+ <h3>Custom Content</h3>
142
+ </a>
143
+ <p>Display completely custom content in the modal body, including light DOM content like a PayPal button.</p>
144
+ <pre><code class="language-html"><span class="hljs-tag">&lt;<span class="hljs-name">modal-manager</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">modal-manager</span>&gt;</span>
145
+
146
+ <span class="hljs-tag">&lt;<span class="hljs-name">script</span>&gt;</span><span class="javascript">
147
+ <span class="hljs-keyword">const</span> manager = <span class="hljs-built_in">document</span>.querySelector(<span class="hljs-string">&#x27;modal-manager&#x27;</span>);
148
+ <span class="hljs-keyword">const</span> config = <span class="hljs-keyword">new</span> ModalConfig();
149
+ <span class="hljs-keyword">const</span> customContent = html`<span class="xml">
150
+ Can contain any markup, including web components. Event listeners also work. Try clicking on the picture.
151
+ <span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">style</span>=<span class="hljs-string">&quot;text-align: center&quot;</span>&gt;</span>
152
+ <span class="hljs-tag">&lt;<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">&quot;https://fillmurray.com&quot;</span> <span class="hljs-attr">style</span>=<span class="hljs-string">&quot;display: block&quot;</span>&gt;</span>Fill Murray<span class="hljs-tag">&lt;/<span class="hljs-name">a</span>&gt;</span>
153
+ <span class="hljs-tag">&lt;<span class="hljs-name">img</span> <span class="hljs-attr">src</span>=<span class="hljs-string">&quot;100x100.jpg&quot;</span> @<span class="hljs-attr">click</span>=</span></span><span class="hljs-subst">${showBillAlert}</span><span class="xml"><span class="hljs-tag"> /&gt;</span>
154
+ <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
155
+ `</span>;
156
+
157
+ modalManager.showModal(config, customContent);
158
+ </span><span class="hljs-tag">&lt;/<span class="hljs-name">script</span>&gt;</span></code></pre>
159
+ <a href="#config-options" id="config-options" style="color: inherit; text-decoration: none;">
160
+ <h3>Config Options</h3>
161
+ </a>
162
+ <p>All of the config options:</p>
163
+ <pre><code class="language-javascript"><span class="hljs-keyword">const</span> config = <span class="hljs-keyword">new</span> ModalConfig();
164
+ config.title = <span class="hljs-string">&#x27;Internet Archive&#x27;</span>;
165
+ config.subtitle = <span class="hljs-string">&#x27;&#x27;</span>;
166
+ config.headline = <span class="hljs-string">&#x27;Thanks for your Support!&#x27;</span>;
167
+ config.message = <span class="hljs-string">&#x27;Thank you for supporting the Internet Archive!&#x27;</span>;
168
+ config.headerColor = <span class="hljs-string">&#x27;#36A483&#x27;</span>;
169
+ config.showProcessingIndicator = <span class="hljs-literal">false</span>;
170
+ config.processingImageMode = <span class="hljs-string">&#x27;processing&#x27;</span>; <span class="hljs-comment">// or `complete`</span></code></pre>
171
+ <a href="#development" id="development" style="color: inherit; text-decoration: none;">
172
+ <h1>Development</h1>
173
+ </a>
174
+ <a href="#prerequisite" id="prerequisite" style="color: inherit; text-decoration: none;">
175
+ <h2>Prerequisite</h2>
176
+ </a>
177
+ <pre><code class="language-bash">npm install</code></pre>
178
+ <a href="#start-development-server" id="start-development-server" style="color: inherit; text-decoration: none;">
179
+ <h2>Start Development Server</h2>
180
+ </a>
181
+ <pre><code class="language-bash">npm start</code></pre>
182
+ <a href="#testing" id="testing" style="color: inherit; text-decoration: none;">
183
+ <h2>Testing</h2>
184
+ </a>
185
+ <pre><code class="language-bash">npm <span class="hljs-built_in">test</span></code></pre>
186
+ <a href="#linting" id="linting" style="color: inherit; text-decoration: none;">
187
+ <h2>Linting</h2>
188
+ </a>
189
+ <pre><code class="language-bash">npm lint</code></pre>
190
+ </div>
191
+ </div>
192
+ <div class="col-4 col-menu menu-sticky-wrap menu-highlight">
193
+ <nav class="tsd-navigation primary">
194
+ <ul>
195
+ <li class="globals ">
196
+ <a href="globals.html"><em>Globals</em></a>
197
+ </li>
198
+ <li class=" tsd-kind-module">
199
+ <a href="modules/_index_.html">&quot;index&quot;</a>
200
+ </li>
201
+ <li class=" tsd-kind-module">
202
+ <a href="modules/_src_modal_config_.html">&quot;src/modal-<wbr>config&quot;</a>
203
+ </li>
204
+ <li class=" tsd-kind-module">
205
+ <a href="modules/_src_modal_manager_.html">&quot;src/modal-<wbr>manager&quot;</a>
206
+ </li>
207
+ <li class=" tsd-kind-module">
208
+ <a href="modules/_src_modal_manager_host_bridge_.html">&quot;src/modal-<wbr>manager-<wbr>host-<wbr>bridge&quot;</a>
209
+ </li>
210
+ <li class=" tsd-kind-module">
211
+ <a href="modules/_src_modal_manager_host_bridge_interface_.html">&quot;src/modal-<wbr>manager-<wbr>host-<wbr>bridge-<wbr>interface&quot;</a>
212
+ </li>
213
+ <li class=" tsd-kind-module">
214
+ <a href="modules/_src_modal_manager_interface_.html">&quot;src/modal-<wbr>manager-<wbr>interface&quot;</a>
215
+ </li>
216
+ <li class=" tsd-kind-module">
217
+ <a href="modules/_src_modal_manager_mode_.html">&quot;src/modal-<wbr>manager-<wbr>mode&quot;</a>
218
+ </li>
219
+ <li class=" tsd-kind-module">
220
+ <a href="modules/_src_modal_template_.html">&quot;src/modal-<wbr>template&quot;</a>
221
+ </li>
222
+ </ul>
223
+ </nav>
224
+ <nav class="tsd-navigation secondary menu-sticky">
225
+ <ul class="before-current">
226
+ </ul>
227
+ </nav>
228
+ </div>
229
+ </div>
230
+ </div>
231
+ <footer class="with-border-bottom">
232
+ <div class="container">
233
+ <h2>Legend</h2>
234
+ <div class="tsd-legend-group">
235
+ <ul class="tsd-legend">
236
+ <li class="tsd-kind-enum"><span class="tsd-kind-icon">Enumeration</span></li>
237
+ </ul>
238
+ <ul class="tsd-legend">
239
+ <li class="tsd-kind-interface"><span class="tsd-kind-icon">Interface</span></li>
240
+ </ul>
241
+ <ul class="tsd-legend">
242
+ <li class="tsd-kind-class"><span class="tsd-kind-icon">Class</span></li>
243
+ </ul>
244
+ </div>
245
+ </div>
246
+ </footer>
247
+ <div class="container tsd-generator">
248
+ <p>Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p>
249
+ </div>
250
+ <div class="overlay"></div>
251
+ <script src="assets/js/main.js"></script>
252
+ </body>
253
253
  </html>