@lion/ui 0.7.6 → 0.7.8

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 (135) hide show
  1. package/README.md +1 -2
  2. package/components/button/test-suites/LionButton.suite.js +3 -1
  3. package/components/calendar/src/LionCalendar.js +9 -5
  4. package/components/calendar/test/lion-calendar.test.js +33 -6
  5. package/components/combobox/src/LionCombobox.js +33 -9
  6. package/components/combobox/test/lion-combobox.test.js +134 -7
  7. package/components/dialog/test/lion-dialog.test.js +59 -1
  8. package/components/input-datepicker/src/LionInputDatepicker.js +1 -21
  9. package/components/input-datepicker/test/lion-input-datepicker.test.js +30 -3
  10. package/components/input-file/src/FileHandle.js +1 -1
  11. package/components/input-file/src/LionInputFile.js +1 -3
  12. package/components/input-file/test/lion-input-file.test.js +11 -14
  13. package/components/overlays/src/OverlayController.js +13 -7
  14. package/components/overlays/src/OverlayMixin.js +5 -1
  15. package/components/overlays/test/OverlayController.test.js +46 -0
  16. package/components/select-rich/src/LionSelectRich.js +12 -0
  17. package/components/select-rich/test/lion-select-rich.test.js +26 -0
  18. package/custom-elements.json +60 -73
  19. package/dist-types/components/button/test-suites/LionButton.suite.d.ts.map +1 -1
  20. package/dist-types/components/calendar/src/LionCalendar.d.ts +1 -0
  21. package/dist-types/components/calendar/src/LionCalendar.d.ts.map +1 -1
  22. package/dist-types/components/combobox/src/LionCombobox.d.ts +9 -0
  23. package/dist-types/components/combobox/src/LionCombobox.d.ts.map +1 -1
  24. package/dist-types/components/input-datepicker/src/LionInputDatepicker.d.ts +0 -5
  25. package/dist-types/components/input-datepicker/src/LionInputDatepicker.d.ts.map +1 -1
  26. package/dist-types/components/input-file/src/LionInputFile.d.ts.map +1 -1
  27. package/dist-types/components/overlays/src/OverlayController.d.ts.map +1 -1
  28. package/dist-types/components/overlays/src/OverlayMixin.d.ts.map +1 -1
  29. package/dist-types/components/select-rich/src/LionSelectRich.d.ts.map +1 -1
  30. package/dist-types/tsconfig.tsbuildinfo +1 -1
  31. package/docs/components/button/use-cases.md +2 -2
  32. package/docs/components/calendar/use-cases.md +4 -4
  33. package/docs/components/checkbox-group/api-table.md +49 -55
  34. package/docs/components/checkbox-group/overview.md +5 -5
  35. package/docs/components/checkbox-group/use-cases.md +33 -33
  36. package/docs/components/collapsible/overview.md +1 -1
  37. package/docs/components/collapsible/use-cases.md +3 -3
  38. package/docs/components/combobox/api-table.md +84 -89
  39. package/docs/components/combobox/extensions.md +20 -20
  40. package/docs/components/combobox/overview.md +1 -1
  41. package/docs/components/combobox/use-cases.md +6 -6
  42. package/docs/components/dialog/api-table.md +3 -3
  43. package/docs/components/dialog/overview.md +2 -2
  44. package/docs/components/dialog/src/external-dialog.js +32 -0
  45. package/docs/components/dialog/src/slots-dialog-content.js +1 -1
  46. package/docs/components/dialog/src/styled-dialog-content.js +1 -1
  47. package/docs/components/dialog/use-cases.md +49 -3
  48. package/docs/components/drawer/use-cases.md +3 -3
  49. package/docs/components/fieldset/api-table.md +45 -51
  50. package/docs/components/fieldset/overview.md +7 -7
  51. package/docs/components/fieldset/use-cases.md +15 -15
  52. package/docs/components/form/overview.md +7 -7
  53. package/docs/components/form/use-cases.md +4 -4
  54. package/docs/components/icon/use-cases.md +1 -1
  55. package/docs/components/input/overview.md +1 -1
  56. package/docs/components/input/use-cases.md +3 -3
  57. package/docs/components/input-amount/overview.md +3 -3
  58. package/docs/components/input-amount/use-cases.md +8 -8
  59. package/docs/components/input-date/overview.md +3 -3
  60. package/docs/components/input-date/use-cases.md +8 -8
  61. package/docs/components/input-datepicker/api-table.md +1 -3
  62. package/docs/components/input-datepicker/overview.md +5 -5
  63. package/docs/components/input-datepicker/use-cases.md +5 -5
  64. package/docs/components/input-email/overview.md +2 -2
  65. package/docs/components/input-email/use-cases.md +3 -3
  66. package/docs/components/input-file/overview.md +1 -1
  67. package/docs/components/input-iban/overview.md +2 -2
  68. package/docs/components/input-iban/use-cases.md +8 -8
  69. package/docs/components/input-range/overview.md +2 -2
  70. package/docs/components/input-stepper/api-table.md +65 -69
  71. package/docs/components/input-stepper/overview.md +1 -1
  72. package/docs/components/input-tel/overview.md +1 -1
  73. package/docs/components/input-tel/use-cases.md +9 -9
  74. package/docs/components/input-tel-dropdown/api-table.md +70 -73
  75. package/docs/components/input-tel-dropdown/extensions.md +1 -1
  76. package/docs/components/input-tel-dropdown/overview.md +1 -1
  77. package/docs/components/input-tel-dropdown/use-cases.md +5 -5
  78. package/docs/components/listbox/api-table.md +64 -70
  79. package/docs/components/listbox/overview.md +5 -5
  80. package/docs/components/listbox/use-cases.md +61 -61
  81. package/docs/components/pagination/use-cases.md +5 -5
  82. package/docs/components/radio-group/api-table.md +49 -55
  83. package/docs/components/radio-group/overview.md +6 -6
  84. package/docs/components/radio-group/use-cases.md +18 -18
  85. package/docs/components/select/use-cases.md +2 -2
  86. package/docs/components/select-rich/api-table.md +79 -85
  87. package/docs/components/select-rich/overview.md +3 -3
  88. package/docs/components/select-rich/use-cases.md +33 -33
  89. package/docs/components/steps/overview.md +4 -4
  90. package/docs/components/steps/use-cases.md +7 -7
  91. package/docs/components/tabs/examples.md +1 -1
  92. package/docs/components/tabs/use-cases.md +1 -1
  93. package/docs/components/textarea/use-cases.md +3 -3
  94. package/docs/components/tooltip/api-table.md +3 -3
  95. package/docs/components/tooltip/use-cases.md +6 -6
  96. package/docs/fundamentals/index.md +4 -4
  97. package/docs/fundamentals/node-tools/providence-analytics/LocalConfiguration.md +1 -1
  98. package/docs/fundamentals/node-tools/providence-analytics/QueryResult.md +1 -1
  99. package/docs/fundamentals/node-tools/providence-analytics/analyzer.md +1 -1
  100. package/docs/fundamentals/node-tools/providence-analytics/dashboard.md +1 -1
  101. package/docs/fundamentals/node-tools/providence-analytics/overview.md +3 -3
  102. package/docs/fundamentals/node-tools/publish-docs/overview.md +3 -3
  103. package/docs/fundamentals/node-tools/rocket-preset-extend-lion-docs/overview.md +2 -2
  104. package/docs/fundamentals/rationales/accessibility.md +1 -1
  105. package/docs/fundamentals/systems/core/SlotMixin.md +1 -1
  106. package/docs/fundamentals/systems/core/overview.md +1 -1
  107. package/docs/fundamentals/systems/form/formatting-and-parsing.md +8 -8
  108. package/docs/fundamentals/systems/form/model-value.md +1 -1
  109. package/docs/fundamentals/systems/form/overview.md +28 -28
  110. package/docs/fundamentals/systems/form/use-cases.md +19 -19
  111. package/docs/fundamentals/systems/form/validate.md +50 -50
  112. package/docs/fundamentals/systems/localize/api-table.md +10 -17
  113. package/docs/fundamentals/systems/localize/overview.md +4 -4
  114. package/docs/fundamentals/systems/localize/use-cases.md +4 -4
  115. package/docs/fundamentals/systems/overlays/_configuration-positioning.md +4 -4
  116. package/docs/fundamentals/systems/overlays/api-table.md +34 -90
  117. package/docs/fundamentals/systems/overlays/assets/umbrella-form.js +9 -9
  118. package/docs/fundamentals/systems/overlays/configuration.md +30 -30
  119. package/docs/fundamentals/systems/overlays/overview.md +6 -6
  120. package/docs/fundamentals/systems/overlays/use-cases.md +30 -30
  121. package/docs/fundamentals/tools/ajax/use-cases.md +20 -20
  122. package/docs/fundamentals/tools/helpers/action-logger.md +3 -3
  123. package/docs/fundamentals/tools/helpers/overview.md +1 -1
  124. package/docs/fundamentals/tools/singleton-manager/example-complex/demo-app.js +2 -2
  125. package/docs/fundamentals/tools/singleton-manager/example-fail/demo-app.js +2 -2
  126. package/docs/fundamentals/tools/singleton-manager/example-success/demo-app.js +2 -2
  127. package/docs/fundamentals/tools/singleton-manager/overview.md +4 -4
  128. package/docs/guides/how-to/create-a-custom-field.md +7 -7
  129. package/docs/guides/how-to/create-a-form.md +4 -4
  130. package/docs/guides/how-to/extend-a-native-input.md +2 -2
  131. package/docs/guides/index.md +8 -8
  132. package/docs/guides/principles/index.md +5 -5
  133. package/docs/guides/principles/scoped-elements.md +1 -1
  134. package/docs/guides/principles/styling.md +1 -1
  135. package/package.json +1 -1
@@ -29,13 +29,13 @@ export const placementLocal = () => {
29
29
  border: 1px solid black;
30
30
  }
31
31
  </style>
32
- <demo-el-using-overlaymixin .config=${placementModeLocalConfig}>
32
+ <demo-el-using-overlaymixin .config="${placementModeLocalConfig}">
33
33
  <button slot="invoker">Click me to open the local overlay!</button>
34
34
  <div slot="content" class="demo-overlay">
35
35
  Hello! You can close this notification here:
36
36
  <button
37
37
  class="close-button"
38
- @click=${e => e.target.dispatchEvent(new Event('close-overlay', { bubbles: true }))}
38
+ @click="${e => e.target.dispatchEvent(new Event('close-overlay', { bubbles: true }))}"
39
39
  >
40
40
  ⨯
41
41
  </button>
@@ -51,13 +51,13 @@ export const placementLocal = () => {
51
51
  export const placementGlobal = () => {
52
52
  const placementModeGlobalConfig = { placementMode: 'global' };
53
53
  return html`
54
- <demo-el-using-overlaymixin .config=${placementModeGlobalConfig}>
54
+ <demo-el-using-overlaymixin .config="${placementModeGlobalConfig}">
55
55
  <button slot="invoker">Click me to open the global overlay!</button>
56
56
  <div slot="content" class="demo-overlay">
57
57
  Hello! You can close this notification here:
58
58
  <button
59
59
  class="close-button"
60
- @click=${e => e.target.dispatchEvent(new Event('close-overlay', { bubbles: true }))}
60
+ @click="${e => e.target.dispatchEvent(new Event('close-overlay', { bubbles: true }))}"
61
61
  >
62
62
  ⨯
63
63
  </button>
@@ -69,7 +69,7 @@ export const placementGlobal = () => {
69
69
 
70
70
  ## isTooltip (placementMode: 'local')
71
71
 
72
- As specified in the [overlay rationale](https://github.com/ing-bank/lion/blob/e6f2e59134860fafcd9716ada9dcba6f33b76aa0/docs/fundamentals/systems/overlays/rationale.md) there are only two official types of overlays: dialogs and tooltips. And their main differences are:
72
+ As specified in the [overlay rationale](https://github.com/ing-bank/lion/blob/b25478e4cc0cb51c4fda1eccadf5e630b679f53c/docs/fundamentals/systems/overlays/rationale.md) there are only two official types of overlays: dialogs and tooltips. And their main differences are:
73
73
 
74
74
  - Dialogs have a modal option, tooltips don’t
75
75
  - Dialogs have interactive content, tooltips don’t
@@ -82,7 +82,7 @@ export const usingTooltipConfig = () => {
82
82
  const tooltipConfig = { ...withTooltipConfig() };
83
83
 
84
84
  return html`
85
- <demo-el-using-overlaymixin id="tooltip" .config=${tooltipConfig}>
85
+ <demo-el-using-overlaymixin id="tooltip" .config="${tooltipConfig}">
86
86
  <button slot="invoker">Hover me to open the tooltip!</button>
87
87
  <div slot="content" class="demo-overlay">Hello!</div>
88
88
  </demo-el-using-overlaymixin>
@@ -103,7 +103,7 @@ You use the feature on any type of overlay.
103
103
  export const trapsKeyboardFocus = () => {
104
104
  const trapsKeyboardFocusConfig = { ...withDropdownConfig(), trapsKeyboardFocus: true };
105
105
  return html`
106
- <demo-el-using-overlaymixin .config=${trapsKeyboardFocusConfig}>
106
+ <demo-el-using-overlaymixin .config="${trapsKeyboardFocusConfig}">
107
107
  <button slot="invoker">Click me to open the overlay!</button>
108
108
  <div slot="content" class="demo-overlay">
109
109
  <div><a href="#">A focusable anchor</a></div>
@@ -111,7 +111,7 @@ export const trapsKeyboardFocus = () => {
111
111
  Hello! You can close this notification here:
112
112
  <button
113
113
  class="close-button"
114
- @click=${e => e.target.dispatchEvent(new Event('close-overlay', { bubbles: true }))}
114
+ @click="${e => e.target.dispatchEvent(new Event('close-overlay', { bubbles: true }))}"
115
115
  >
116
116
  ⨯
117
117
  </button>
@@ -129,13 +129,13 @@ Boolean property. Will allow closing the overlay on ESC key when enabled.
129
129
  export const hidesOnEsc = () => {
130
130
  const hidesOnEscConfig = { ...withDropdownConfig(), hidesOnEsc: true };
131
131
  return html`
132
- <demo-el-using-overlaymixin .config=${hidesOnEscConfig}>
132
+ <demo-el-using-overlaymixin .config="${hidesOnEscConfig}">
133
133
  <button slot="invoker">Click me to open the overlay!</button>
134
134
  <div slot="content" class="demo-overlay">
135
135
  Hello! You can close this notification here:
136
136
  <button
137
137
  class="close-button"
138
- @click=${e => e.target.dispatchEvent(new Event('close-overlay', { bubbles: true }))}
138
+ @click="${e => e.target.dispatchEvent(new Event('close-overlay', { bubbles: true }))}"
139
139
  >
140
140
  ⨯
141
141
  </button>
@@ -155,13 +155,13 @@ export const hidesOnEscFalse = () => {
155
155
  hidesOnOutsideEsc: false,
156
156
  };
157
157
  return html`
158
- <demo-el-using-overlaymixin .config=${hidesOnEscConfig}>
158
+ <demo-el-using-overlaymixin .config="${hidesOnEscConfig}">
159
159
  <button slot="invoker">Click me to open the overlay!</button>
160
160
  <div slot="content" class="demo-overlay">
161
161
  Hello! You can close this notification here:
162
162
  <button
163
163
  class="close-button"
164
- @click=${e => e.target.dispatchEvent(new Event('close-overlay', { bubbles: true }))}
164
+ @click="${e => e.target.dispatchEvent(new Event('close-overlay', { bubbles: true }))}"
165
165
  >
166
166
  ⨯
167
167
  </button>
@@ -179,13 +179,13 @@ Boolean property. When enabled allows closing the overlay on ESC key, even when
179
179
  export const hidesOnOutsideEsc = () => {
180
180
  const hidesOnEscConfig = { ...withDropdownConfig(), hidesOnOutsideEsc: true };
181
181
  return html`
182
- <demo-el-using-overlaymixin .config=${hidesOnEscConfig}>
182
+ <demo-el-using-overlaymixin .config="${hidesOnEscConfig}">
183
183
  <button slot="invoker">Click me to open the overlay!</button>
184
184
  <div slot="content" class="demo-overlay">
185
185
  Hello! You can close this notification here:
186
186
  <button
187
187
  class="close-button"
188
- @click=${e => e.target.dispatchEvent(new Event('close-overlay', { bubbles: true }))}
188
+ @click="${e => e.target.dispatchEvent(new Event('close-overlay', { bubbles: true }))}"
189
189
  >
190
190
  ⨯
191
191
  </button>
@@ -203,14 +203,14 @@ Boolean property. Will allow closing the overlay by clicking outside the `conten
203
203
  export const hidesOnOutsideClick = () => {
204
204
  const hidesOnOutsideClickConfig = { ...withDropdownConfig(), hidesOnOutsideClick: true };
205
205
  return html`
206
- <demo-el-using-overlaymixin .config=${hidesOnOutsideClickConfig}>
206
+ <demo-el-using-overlaymixin .config="${hidesOnOutsideClickConfig}">
207
207
  <button slot="invoker">Click me to open the overlay!</button>
208
208
  <div slot="content" class="demo-overlay">
209
209
  <label for="myInput">Clicking this label should not trigger close</label>
210
210
  <input id="myInput" />
211
211
  <button
212
212
  class="close-button"
213
- @click=${e => e.target.dispatchEvent(new Event('close-overlay', { bubbles: true }))}
213
+ @click="${e => e.target.dispatchEvent(new Event('close-overlay', { bubbles: true }))}"
214
214
  >
215
215
  ⨯
216
216
  </button>
@@ -233,13 +233,13 @@ export const elementToFocusAfterHide = () => {
233
233
 
234
234
  const elementToFocusAfterHideConfig = { ...withDropdownConfig(), elementToFocusAfterHide: btn };
235
235
  return html`
236
- <demo-el-using-overlaymixin .config=${elementToFocusAfterHideConfig}>
236
+ <demo-el-using-overlaymixin .config="${elementToFocusAfterHideConfig}">
237
237
  <button slot="invoker">Click me to open the overlay!</button>
238
238
  <div slot="content" class="demo-overlay">
239
239
  Hello! You can close this notification here:
240
240
  <button
241
241
  class="close-button"
242
- @click=${e => e.target.dispatchEvent(new Event('close-overlay', { bubbles: true }))}
242
+ @click="${e => e.target.dispatchEvent(new Event('close-overlay', { bubbles: true }))}"
243
243
  >
244
244
  ⨯
245
245
  </button>
@@ -269,13 +269,13 @@ This currently only supports CSS Animations, because it relies on the `animation
269
269
  export const hasBackdrop = () => {
270
270
  const hasBackdropConfig = { ...withDropdownConfig(), hasBackdrop: true };
271
271
  return html`
272
- <demo-el-using-overlaymixin .config=${hasBackdropConfig}>
272
+ <demo-el-using-overlaymixin .config="${hasBackdropConfig}">
273
273
  <button slot="invoker">Click me to open the overlay!</button>
274
274
  <div slot="content" class="demo-overlay">
275
275
  Hello! You can close this notification here:
276
276
  <button
277
277
  class="close-button"
278
- @click=${e => e.target.dispatchEvent(new Event('close-overlay', { bubbles: true }))}
278
+ @click="${e => e.target.dispatchEvent(new Event('close-overlay', { bubbles: true }))}"
279
279
  >
280
280
  ⨯
281
281
  </button>
@@ -299,19 +299,19 @@ export const isBlocking = () => {
299
299
  This overlay gets closed when overlay B gets opened
300
300
  <button
301
301
  class="close-button"
302
- @click=${e => e.target.dispatchEvent(new Event('close-overlay', { bubbles: true }))}
302
+ @click="${e => e.target.dispatchEvent(new Event('close-overlay', { bubbles: true }))}"
303
303
  >
304
304
  ⨯
305
305
  </button>
306
306
  </div>
307
307
  </demo-el-using-overlaymixin>
308
- <demo-el-using-overlaymixin .config=${isBlockingConfig}>
308
+ <demo-el-using-overlaymixin .config="${isBlockingConfig}">
309
309
  <button slot="invoker">Overlay B: open second</button>
310
310
  <div slot="content" class="demo-overlay demo-overlay--blocking">
311
311
  Overlay A is hidden... now close me and see overlay A again.
312
312
  <button
313
313
  class="close-button"
314
- @click=${e => e.target.dispatchEvent(new Event('close-overlay', { bubbles: true }))}
314
+ @click="${e => e.target.dispatchEvent(new Event('close-overlay', { bubbles: true }))}"
315
315
  >
316
316
  ⨯
317
317
  </button>
@@ -332,13 +332,13 @@ Boolean property. When true, prevents scrolling content that is outside of the `
332
332
  export const preventsScroll = () => {
333
333
  const preventsScrollConfig = { preventsScroll: true };
334
334
  return html`
335
- <demo-el-using-overlaymixin .config=${preventsScrollConfig}>
335
+ <demo-el-using-overlaymixin .config="${preventsScrollConfig}">
336
336
  <button slot="invoker">Click me to open the overlay!</button>
337
337
  <div slot="content" class="demo-overlay">
338
338
  Hello! You can close this notification here:
339
339
  <button
340
340
  class="close-button"
341
- @click=${e => e.target.dispatchEvent(new Event('close-overlay', { bubbles: true }))}
341
+ @click="${e => e.target.dispatchEvent(new Event('close-overlay', { bubbles: true }))}"
342
342
  >
343
343
  ⨯
344
344
  </button>
@@ -371,13 +371,13 @@ export const viewportConfig = () => {
371
371
  viewportConfig: { placement: 'bottom-left' },
372
372
  };
373
373
  return html`
374
- <demo-el-using-overlaymixin .config=${viewportConfig}>
374
+ <demo-el-using-overlaymixin .config="${viewportConfig}">
375
375
  <button slot="invoker">Click me to open the overlay in the bottom left corner!</button>
376
376
  <div slot="content" class="demo-overlay">
377
377
  Hello! You can close this notification here:
378
378
  <button
379
379
  class="close-button"
380
- @click=${e => e.target.dispatchEvent(new Event('close-overlay', { bubbles: true }))}
380
+ @click="${e => e.target.dispatchEvent(new Event('close-overlay', { bubbles: true }))}"
381
381
  >
382
382
  ⨯
383
383
  </button>
@@ -400,7 +400,7 @@ Features:
400
400
 
401
401
  > Popper strictly is scoped on positioning. **It does not change the dimensions of the content node nor the invoker node**.
402
402
  > This also means that if you use the arrow feature, you are in charge of styling it properly, use the data-popper-placement attribute for this.
403
- > An example implementation can be found in [lion-tooltip](https://github.com/ing-bank/lion/blob/e6f2e59134860fafcd9716ada9dcba6f33b76aa0/docs/components/tooltip/overview.md), where an arrow is set by default.
403
+ > An example implementation can be found in [lion-tooltip](https://github.com/ing-bank/lion/blob/b25478e4cc0cb51c4fda1eccadf5e630b679f53c/docs/components/tooltip/overview.md), where an arrow is set by default.
404
404
 
405
405
  To override the default options we set for local mode, you add a `popperConfig` object to the config passed to the OverlayController.
406
406
  Here's a succinct overview of some often used popper properties:
@@ -451,13 +451,13 @@ export const popperConfig = () => {
451
451
  border: 1px solid black;
452
452
  }
453
453
  </style>
454
- <demo-el-using-overlaymixin .config=${popperConfig}>
454
+ <demo-el-using-overlaymixin .config="${popperConfig}">
455
455
  <button slot="invoker">Click me to open the overlay!</button>
456
456
  <div slot="content" class="demo-overlay">
457
457
  Hello! You can close this notification here:
458
458
  <button
459
459
  class="close-button"
460
- @click=${e => e.target.dispatchEvent(new Event('close-overlay', { bubbles: true }))}
460
+ @click="${e => e.target.dispatchEvent(new Event('close-overlay', { bubbles: true }))}"
461
461
  >
462
462
  ⨯
463
463
  </button>
@@ -6,7 +6,7 @@ Manages their position on the screen relative to other elements, including other
6
6
 
7
7
  Its purpose is to make it easy to use our Overlay System declaratively. It can be easily extended where needed, to override event listeners and more.
8
8
 
9
- See [lion-dialog](../../../components/dialog/overview.md) and [lion-tooltip](https://github.com/ing-bank/lion/blob/e6f2e59134860fafcd9716ada9dcba6f33b76aa0/docs/components/tooltip/overview.md) for example Web Component implementations using the Overlay System.
9
+ See [lion-dialog](../../../components/dialog/overview.md) and [lion-tooltip](https://github.com/ing-bank/lion/blob/b25478e4cc0cb51c4fda1eccadf5e630b679f53c/docs/components/tooltip/overview.md) for example Web Component implementations using the Overlay System.
10
10
 
11
11
  ## Features
12
12
 
@@ -18,9 +18,9 @@ See [lion-dialog](../../../components/dialog/overview.md) and [lion-tooltip](htt
18
18
  - lion-overlay web component:
19
19
  - Show content when clicking the invoker
20
20
  - Have a `.config` object to set or update the OverlayController's configuration
21
- - [**OverlaysManager**](https://github.com/ing-bank/lion/blob/e6f2e59134860fafcd9716ada9dcba6f33b76aa0/docs/fundamentals/systems/overlays/use-cases.md#overlaysmanager), a global repository keeping track of all different types of overlays
22
- - [**OverlayController**](https://github.com/ing-bank/lion/blob/e6f2e59134860fafcd9716ada9dcba6f33b76aa0/docs/fundamentals/systems/overlays/use-cases.md#overlaycontroller), a single controller class for handling overlays
23
- - [**OverlayMixin**](https://github.com/ing-bank/lion/blob/e6f2e59134860fafcd9716ada9dcba6f33b76aa0/docs/fundamentals/systems/overlays/use-cases.md#overlaymixin), a mixin that can be used to create webcomponents that use the OverlayController under the hood
21
+ - [**OverlaysManager**](https://github.com/ing-bank/lion/blob/b25478e4cc0cb51c4fda1eccadf5e630b679f53c/docs/fundamentals/systems/overlays/use-cases.md#overlaysmanager), a global repository keeping track of all different types of overlays
22
+ - [**OverlayController**](https://github.com/ing-bank/lion/blob/b25478e4cc0cb51c4fda1eccadf5e630b679f53c/docs/fundamentals/systems/overlays/use-cases.md#overlaycontroller), a single controller class for handling overlays
23
+ - [**OverlayMixin**](https://github.com/ing-bank/lion/blob/b25478e4cc0cb51c4fda1eccadf5e630b679f53c/docs/fundamentals/systems/overlays/use-cases.md#overlaymixin), a mixin that can be used to create webcomponents that use the OverlayController under the hood
24
24
 
25
25
  Usually you will use `lion-dialog` (or `lion-tooltip` if this makes more sense).
26
26
 
@@ -43,7 +43,7 @@ html`
43
43
  <div slot="content">
44
44
  This is an overlay
45
45
  <button
46
- @click=${e => e.target.dispatchEvent(new Event('close-overlay', { bubbles: true }))}
46
+ @click="${e => e.target.dispatchEvent(new Event('close-overlay', { bubbles: true }))}"
47
47
  >x</button>
48
48
  <div>
49
49
  <button slot="invoker">
@@ -110,4 +110,4 @@ class MyOverlayComponent extends OverlayMixin(LitElement) {
110
110
 
111
111
  ## Rationales
112
112
 
113
- Please check the [system rationals](https://github.com/ing-bank/lion/blob/e6f2e59134860fafcd9716ada9dcba6f33b76aa0/docs/fundamentals/systems/overlays/rationale.md) folder, where we go more in-depth.
113
+ Please check the [system rationals](https://github.com/ing-bank/lion/blob/b25478e4cc0cb51c4fda1eccadf5e630b679f53c/docs/fundamentals/systems/overlays/rationale.md) folder, where we go more in-depth.
@@ -21,7 +21,7 @@ The overlay system allows to create different types of overlays like dialogs, to
21
21
  It's designed to be highly flexible, while still delivering sensible defaults.
22
22
  On top of this, the system was built having accessibility in mind.
23
23
 
24
- For a detailed rationale, please consult [Rationale](https://github.com/ing-bank/lion/blob/e6f2e59134860fafcd9716ada9dcba6f33b76aa0/docs/fundamentals/systems/overlays/rationale.md).
24
+ For a detailed rationale, please consult [Rationale](https://github.com/ing-bank/lion/blob/b25478e4cc0cb51c4fda1eccadf5e630b679f53c/docs/fundamentals/systems/overlays/rationale.md).
25
25
 
26
26
  ```js preview-story
27
27
  export const main = () => html`
@@ -29,7 +29,7 @@ export const main = () => html`
29
29
  <button slot="invoker">Click me to open the overlay!</button>
30
30
  <div slot="content" class="demo-overlay">
31
31
  Hello! You can close this notification here:
32
- <button @click=${e => e.target.dispatchEvent(new Event('close-overlay', { bubbles: true }))}>
32
+ <button @click="${e => e.target.dispatchEvent(new Event('close-overlay', { bubbles: true }))}">
33
33
  ⨯
34
34
  </button>
35
35
  </div>
@@ -67,7 +67,7 @@ Global refers to overlays where the content is positioned in a global root node
67
67
 
68
68
  Overlays can be configured in many ways to suit your needs. We go in-depth into each option in the Overlay System - Configuration chapter.
69
69
 
70
- We also export a few [preset configuration objects](https://github.com/ing-bank/lion/blob/e6f2e59134860fafcd9716ada9dcba6f33b76aa0/docs/fundamentals/systems/overlays/configuration.md).
70
+ We also export a few [preset configuration objects](https://github.com/ing-bank/lion/blob/b25478e4cc0cb51c4fda1eccadf5e630b679f53c/docs/fundamentals/systems/overlays/configuration.md).
71
71
 
72
72
  - withModalDialogConfig
73
73
  - withDropdownConfig
@@ -152,13 +152,13 @@ The easiest way is declarative. This can be achieved by adding a `<slot name="ba
152
152
  export const backdrop = () => {
153
153
  const responsiveModalDialogConfig = { ...withModalDialogConfig() };
154
154
  return html`
155
- <demo-el-using-overlaymixin .config=${responsiveModalDialogConfig}>
155
+ <demo-el-using-overlaymixin .config="${responsiveModalDialogConfig}">
156
156
  <demo-overlay-backdrop slot="backdrop"></demo-overlay-backdrop>
157
157
  <button slot="invoker">Click me to open the overlay!</button>
158
158
  <div slot="content" class="demo-overlay">
159
159
  Hello! You can close this notification here:
160
160
  <button
161
- @click=${e => e.target.dispatchEvent(new Event('close-overlay', { bubbles: true }))}
161
+ @click="${e => e.target.dispatchEvent(new Event('close-overlay', { bubbles: true }))}"
162
162
  >
163
163
  ⨯
164
164
  </button>
@@ -176,12 +176,12 @@ export const backdropImperative = () => {
176
176
  const backdropNode = document.createElement('demo-overlay-backdrop');
177
177
  const responsiveModalDialogConfig = { ...withModalDialogConfig(), backdropNode };
178
178
  return html`
179
- <demo-el-using-overlaymixin .config=${responsiveModalDialogConfig}>
179
+ <demo-el-using-overlaymixin .config="${responsiveModalDialogConfig}">
180
180
  <button slot="invoker">Click me to open the overlay!</button>
181
181
  <div slot="content" class="demo-overlay">
182
182
  Hello! You can close this notification here:
183
183
  <button
184
- @click=${e => e.target.dispatchEvent(new Event('close-overlay', { bubbles: true }))}
184
+ @click="${e => e.target.dispatchEvent(new Event('close-overlay', { bubbles: true }))}"
185
185
  >
186
186
  ⨯
187
187
  </button>
@@ -231,13 +231,13 @@ Under the hood, the OverlayController listens to `animationend` event, only then
231
231
  export const backdropAnimation = () => {
232
232
  const responsiveModalDialogConfig = { ...withModalDialogConfig() };
233
233
  return html`
234
- <demo-el-using-overlaymixin .config=${responsiveModalDialogConfig}>
234
+ <demo-el-using-overlaymixin .config="${responsiveModalDialogConfig}">
235
235
  <button slot="invoker">Click me to open the overlay!</button>
236
236
  <demo-overlay-backdrop slot="backdrop"></demo-overlay-backdrop>
237
237
  <div slot="content" class="demo-overlay">
238
238
  Hello! You can close this notification here:
239
239
  <button
240
- @click=${e => e.target.dispatchEvent(new Event('close-overlay', { bubbles: true }))}
240
+ @click="${e => e.target.dispatchEvent(new Event('close-overlay', { bubbles: true }))}"
241
241
  >
242
242
  ⨯
243
243
  </button>
@@ -262,7 +262,7 @@ export const responsiveSwitching = () => {
262
262
  const responsiveBottomSheetConfig = { ...withBottomSheetConfig() };
263
263
  return html`
264
264
  <demo-el-using-overlaymixin
265
- .config=${responsiveBottomSheetConfig}
265
+ .config="${responsiveBottomSheetConfig}"
266
266
  @before-opened=${e => {
267
267
  if (window.innerWidth >= 600) {
268
268
  e.target.config = { ...withModalDialogConfig() };
@@ -275,7 +275,7 @@ export const responsiveSwitching = () => {
275
275
  <div slot="content" class="demo-overlay">
276
276
  Hello! You can close this notification here:
277
277
  <button
278
- @click=${e => e.target.dispatchEvent(new Event('close-overlay', { bubbles: true }))}
278
+ @click="${e => e.target.dispatchEvent(new Event('close-overlay', { bubbles: true }))}"
279
279
  >
280
280
  ⨯
281
281
  </button>
@@ -362,12 +362,12 @@ export const responsiveSwitching2 = () => {
362
362
  </select>
363
363
 
364
364
  <br />
365
- <demo-el-using-overlaymixin ${ref(overlayRef)} .config=${getConfig(selectRef.value?.value)}>
365
+ <demo-el-using-overlaymixin ${ref(overlayRef)} .config="${getConfig(selectRef.value?.value)}">
366
366
  <button slot="invoker">Click me to open the overlay!</button>
367
367
  <div slot="content" class="demo-overlay">
368
368
  Hello! You can close this notification here:
369
369
  <button
370
- @click=${e => e.target.dispatchEvent(new Event('close-overlay', { bubbles: true }))}
370
+ @click="${e => e.target.dispatchEvent(new Event('close-overlay', { bubbles: true }))}"
371
371
  >
372
372
  ⨯
373
373
  </button>
@@ -401,13 +401,13 @@ export const openedState = () => {
401
401
  <demo-el-using-overlaymixin
402
402
  ${ref(myRefs.overlay)}
403
403
  .opened="${appState.opened}"
404
- @opened-changed=${onOpenClosed}
404
+ @opened-changed="${onOpenClosed}"
405
405
  >
406
406
  <button slot="invoker">Overlay</button>
407
407
  <div slot="content" class="demo-overlay">
408
408
  Hello! You can close this notification here:
409
409
  <button
410
- @click=${e => e.target.dispatchEvent(new Event('close-overlay', { bubbles: true }))}
410
+ @click="${e => e.target.dispatchEvent(new Event('close-overlay', { bubbles: true }))}"
411
411
  >
412
412
  ⨯
413
413
  </button>
@@ -448,8 +448,8 @@ export const interceptingOpenClose = () => {
448
448
  </button>
449
449
  <demo-el-using-overlaymixin
450
450
  ${ref(myRefs.overlay)}
451
- @before-closed=${intercept}
452
- @before-opened=${intercept}
451
+ @before-closed="${intercept}"
452
+ @before-opened="${intercept}"
453
453
  >
454
454
  <button
455
455
  slot="invoker"
@@ -460,7 +460,7 @@ export const interceptingOpenClose = () => {
460
460
  </button>
461
461
  <div slot="content" class="demo-overlay">
462
462
  Hello! You can close this notification here:
463
- <button @click=${() => (myRefs.overlay.value.opened = false)}>⨯</button>
463
+ <button @click="${() => (myRefs.overlay.value.opened = false)}">⨯</button>
464
464
  </div>
465
465
  </demo-el-using-overlaymixin>
466
466
  `;
@@ -538,29 +538,29 @@ Below an example is shown with the `isBlocking` option, which makes use of the O
538
538
  export const overlayManager = () => {
539
539
  const hasBackdropConfig = { ...withModalDialogConfig(), hasBackdrop: true };
540
540
  return html`
541
- <demo-el-using-overlaymixin .config=${hasBackdropConfig}>
541
+ <demo-el-using-overlaymixin .config="${hasBackdropConfig}">
542
542
  <button slot="invoker">Click me to open the overlay!</button>
543
543
  <div slot="content" class="demo-overlay">
544
544
  Hello! You can close this notification here:
545
545
  <button
546
- @click=${e => e.target.dispatchEvent(new Event('close-overlay', { bubbles: true }))}
546
+ @click="${e => e.target.dispatchEvent(new Event('close-overlay', { bubbles: true }))}"
547
547
  >
548
548
  ⨯
549
549
  </button>
550
550
  <br />
551
- <button @click=${e => (document.querySelector('#secondOverlay').opened = true)}>
551
+ <button @click="${e => (document.querySelector('#secondOverlay').opened = true)}">
552
552
  Click me to open another overlay which is blocking
553
553
  </button>
554
554
  </div>
555
555
  </demo-el-using-overlaymixin>
556
556
  <demo-el-using-overlaymixin
557
557
  id="secondOverlay"
558
- .config=${{ ...withModalDialogConfig(), hasBackdrop: true, isBlocking: true }}
558
+ .config="${{ ...withModalDialogConfig(), hasBackdrop: true, isBlocking: true }}"
559
559
  >
560
560
  <div slot="content" class="demo-overlay demo-overlay--second">
561
561
  Hello! You can close this notification here:
562
562
  <button
563
- @click=${e => e.target.dispatchEvent(new Event('close-overlay', { bubbles: true }))}
563
+ @click="${e => e.target.dispatchEvent(new Event('close-overlay', { bubbles: true }))}"
564
564
  >
565
565
  ⨯
566
566
  </button>
@@ -580,13 +580,13 @@ Here is the example below
580
580
  export const localBackdrop = () => {
581
581
  const localBackdropConfig = { ...withDropdownConfig() };
582
582
  return html`
583
- <demo-el-using-overlaymixin .config=${localBackdropConfig}>
583
+ <demo-el-using-overlaymixin .config="${localBackdropConfig}">
584
584
  <demo-overlay-backdrop slot="backdrop"></demo-overlay-backdrop>
585
585
  <button slot="invoker">Click me to open the overlay!</button>
586
586
  <div slot="content" class="demo-overlay">
587
587
  Hello! You can close this notification here:
588
588
  <button
589
- @click=${e => e.target.dispatchEvent(new Event('close-overlay', { bubbles: true }))}
589
+ @click="${e => e.target.dispatchEvent(new Event('close-overlay', { bubbles: true }))}"
590
590
  >
591
591
  ⨯
592
592
  </button>
@@ -611,7 +611,7 @@ export const nestedOverlays = () => {
611
611
  <div slot="content" id="nestedContent" class="demo-overlay">
612
612
  Nested content
613
613
  <button
614
- @click=${e => e.target.dispatchEvent(new Event('close-overlay', { bubbles: true }))}
614
+ @click="${e => e.target.dispatchEvent(new Event('close-overlay', { bubbles: true }))}"
615
615
  >
616
616
  ⨯
617
617
  </button>
@@ -619,7 +619,7 @@ export const nestedOverlays = () => {
619
619
  <button slot="invoker" id="nestedInvoker">nested invoker button</button>
620
620
  </demo-el-using-overlaymixin>
621
621
  <button
622
- @click=${e => e.target.dispatchEvent(new Event('close-overlay', { bubbles: true }))}
622
+ @click="${e => e.target.dispatchEvent(new Event('close-overlay', { bubbles: true }))}"
623
623
  >
624
624
  ⨯
625
625
  </button>
@@ -684,15 +684,15 @@ export const LocalWithArrow = () => {
684
684
  <button slot="invoker">Top</button>
685
685
  <div slot="content">This is a tooltip with an arrow</div>
686
686
  </arrow-example>
687
- <arrow-example .config=${placementRightConfig}>
687
+ <arrow-example .config="${placementRightConfig}">
688
688
  <button slot="invoker">Right</button>
689
689
  <div slot="content">This is a tooltip with an arrow</div>
690
690
  </arrow-example>
691
- <arrow-example .config=${placementBottomConfig}>
691
+ <arrow-example .config="${placementBottomConfig}">
692
692
  <button slot="invoker">Bottom</button>
693
693
  <div slot="content">This is a tooltip with an arrow</div>
694
694
  </arrow-example>
695
- <arrow-example .config=${placementLeftConfig}>
695
+ <arrow-example .config="${placementLeftConfig}">
696
696
  <button slot="invoker">Left</button>
697
697
  <div slot="content">This is a tooltip with an arrow</div>
698
698
  </arrow-example>
@@ -52,8 +52,8 @@ export const getRequest = () => {
52
52
  --sb-action-logger-max-height: 300px;
53
53
  }
54
54
  </style>
55
- <button @click=${() => fetchHandler('pabu')}>Fetch Pabu</button>
56
- <button @click=${() => fetchHandler('naga')}>Fetch Naga</button>
55
+ <button @click="${() => fetchHandler('pabu')}">Fetch Pabu</button>
56
+ <button @click="${() => fetchHandler('naga')}">Fetch Naga</button>
57
57
  ${actionLogger}
58
58
  `;
59
59
  };
@@ -101,8 +101,8 @@ export const getJsonRequest = () => {
101
101
  --sb-action-logger-max-height: 300px;
102
102
  }
103
103
  </style>
104
- <button @click=${() => fetchHandler('pabu')}>Fetch Pabu</button>
105
- <button @click=${() => fetchHandler('naga')}>Fetch Naga</button>
104
+ <button @click="${() => fetchHandler('pabu')}">Fetch Pabu</button>
105
+ <button @click="${() => fetchHandler('naga')}">Fetch Naga</button>
106
106
  ${actionLogger}
107
107
  `;
108
108
  };
@@ -151,7 +151,7 @@ export const errorHandling = () => {
151
151
  --sb-action-logger-max-height: 300px;
152
152
  }
153
153
  </style>
154
- <button @click=${fetchHandler}>Fetch</button>
154
+ <button @click="${fetchHandler}">Fetch</button>
155
155
  ${actionLogger}
156
156
  `;
157
157
  };
@@ -239,8 +239,8 @@ export const cache = () => {
239
239
  --sb-action-logger-max-height: 300px;
240
240
  }
241
241
  </style>
242
- <button @click=${() => fetchHandler('pabu')}>Fetch Pabu</button>
243
- <button @click=${() => fetchHandler('naga')}>Fetch Naga</button>
242
+ <button @click="${() => fetchHandler('pabu')}">Fetch Pabu</button>
243
+ <button @click="${() => fetchHandler('naga')}">Fetch Naga</button>
244
244
  ${actionLogger}
245
245
  `;
246
246
  };
@@ -274,8 +274,8 @@ export const cacheActionOptions = () => {
274
274
  --sb-action-logger-max-height: 300px;
275
275
  }
276
276
  </style>
277
- <button @click=${() => fetchHandler('pabu')}>Fetch Pabu</button>
278
- <button @click=${() => fetchHandler('naga')}>Fetch Naga</button>
277
+ <button @click="${() => fetchHandler('pabu')}">Fetch Pabu</button>
278
+ <button @click="${() => fetchHandler('naga')}">Fetch Naga</button>
279
279
  ${actionLogger}
280
280
  `;
281
281
  };
@@ -321,7 +321,7 @@ export const cacheMaxAge = () => {
321
321
  --sb-action-logger-max-height: 300px;
322
322
  }
323
323
  </style>
324
- <button @click=${fetchHandler}>Fetch Pabu</button>
324
+ <button @click="${fetchHandler}">Fetch Pabu</button>
325
325
  ${actionLogger}
326
326
  `;
327
327
  };
@@ -355,8 +355,8 @@ export const changeCacheIdentifier = () => {
355
355
  --sb-action-logger-max-height: 300px;
356
356
  }
357
357
  </style>
358
- <button @click=${fetchHandler}>Fetch Pabu</button>
359
- <button @click=${changeUserHandler}>Change user</button>
358
+ <button @click="${fetchHandler}">Fetch Pabu</button>
359
+ <button @click="${changeUserHandler}">Change user</button>
360
360
  ${actionLogger}
361
361
  `;
362
362
  };
@@ -392,10 +392,10 @@ export const nonGETRequest = () => {
392
392
  --sb-action-logger-max-height: 300px;
393
393
  }
394
394
  </style>
395
- <button @click=${() => fetchHandler('pabu', 'GET')}>GET Pabu</button>
396
- <button @click=${() => fetchHandler('pabu', 'PATCH')}>PATCH Pabu</button>
397
- <button @click=${() => fetchHandler('naga', 'GET')}>GET Naga</button>
398
- <button @click=${() => fetchHandler('naga', 'PATCH')}>PATCH Naga</button>
395
+ <button @click="${() => fetchHandler('pabu', 'GET')}">GET Pabu</button>
396
+ <button @click="${() => fetchHandler('pabu', 'PATCH')}">PATCH Pabu</button>
397
+ <button @click="${() => fetchHandler('naga', 'GET')}">GET Naga</button>
398
+ <button @click="${() => fetchHandler('naga', 'PATCH')}">PATCH Naga</button>
399
399
  ${actionLogger}
400
400
  `;
401
401
  };
@@ -446,10 +446,10 @@ export const invalidateRules = () => {
446
446
  --sb-action-logger-max-height: 300px;
447
447
  }
448
448
  </style>
449
- <button @click=${() => fetchHandler('pabu', 'GET')}>GET Pabu</button>
450
- <button @click=${() => fetchHandler('pabu', 'PATCH')}>PATCH Pabu</button>
451
- <button @click=${() => fetchHandler('naga', 'GET')}>GET Naga</button>
452
- <button @click=${() => fetchHandler('naga', 'PATCH')}>PATCH Naga</button>
449
+ <button @click="${() => fetchHandler('pabu', 'GET')}">GET Pabu</button>
450
+ <button @click="${() => fetchHandler('pabu', 'PATCH')}">PATCH Pabu</button>
451
+ <button @click="${() => fetchHandler('naga', 'GET')}">GET Naga</button>
452
+ <button @click="${() => fetchHandler('naga', 'PATCH')}">PATCH Naga</button>
453
453
  ${actionLogger}
454
454
  `;
455
455
  };
@@ -112,17 +112,17 @@ export const customTitle = () => {
112
112
  const uid = Math.random().toString(36).substr(2, 10);
113
113
  return html`
114
114
  <button
115
- @click=${e => e.target.parentElement.querySelector(`#logger-${uid}`).log('Hello, World!')}
115
+ @click="${e => e.target.parentElement.querySelector(`#logger-${uid}`).log('Hello, World!')}"
116
116
  >
117
117
  Log
118
118
  </button>
119
- <sb-action-logger id="logger-${uid}" .title=${'Hello World'}></sb-action-logger>
119
+ <sb-action-logger id="logger-${uid}" .title="${'Hello World'}"></sb-action-logger>
120
120
  `;
121
121
  };
122
122
  ```
123
123
 
124
124
  ```html
125
- <sb-action-logger .title=${'Hello World'}></sb-action-logger>
125
+ <sb-action-logger .title="${'Hello World'}"></sb-action-logger>
126
126
  ```
127
127
 
128
128
  ## Rationale
@@ -9,7 +9,7 @@ Therefore, they may not have the same quality standards as our other packages.
9
9
 
10
10
  | Package | Description |
11
11
  | -------------------------------------- | ----------------------- |
12
- | [sb-action-logger](https://github.com/ing-bank/lion/blob/e6f2e59134860fafcd9716ada9dcba6f33b76aa0/docs/fundamentals/tools/helpers/action-logger.md) | Storybook action logger |
12
+ | [sb-action-logger](https://github.com/ing-bank/lion/blob/b25478e4cc0cb51c4fda1eccadf5e630b679f53c/docs/fundamentals/tools/helpers/action-logger.md) | Storybook action logger |
13
13
 
14
14
  ## Installation
15
15