@lion/ui 0.20.0 → 0.21.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/README.md +1 -1
  2. package/components/form-core/src/FormatMixin.js +10 -5
  3. package/components/form-core/test-helpers/mimicUserInput.js +1 -0
  4. package/components/form-core/test-suites/FormatMixin.suite.js +31 -14
  5. package/components/input-amount-dropdown/src/LionInputAmountDropdown.js +51 -8
  6. package/components/input-amount-dropdown/test/lion-input-amount-dropdown-integrations.test.js +5 -0
  7. package/components/input-amount-dropdown/test-suites/LionInputAmountDropdown.suite.js +1 -0
  8. package/components/input-datepicker/src/LionInputDatepicker.js +4 -0
  9. package/components/input-datepicker/test/lion-input-datepicker.test.js +55 -0
  10. package/components/input-range/src/LionInputRange.js +51 -8
  11. package/components/input-range/test/lion-input-range.test.js +114 -0
  12. package/components/input-tel/src/LionInputTel.js +1 -4
  13. package/components/input-tel-dropdown/test/LionInputTelDropdown.test.js +5 -1
  14. package/components/input-tel-dropdown/test-suites/LionInputTelDropdown--parentheses.suite.js +90 -0
  15. package/components/input-tel-dropdown/test-suites/types.ts +6 -0
  16. package/custom-elements.json +425 -66
  17. package/dist-types/components/form-core/src/FormatMixin.d.ts.map +1 -1
  18. package/dist-types/components/form-core/test-helpers/mimicUserInput.d.ts.map +1 -1
  19. package/dist-types/components/form-core/test-suites/FormatMixin.suite.d.ts +8 -0
  20. package/dist-types/components/form-core/test-suites/FormatMixin.suite.d.ts.map +1 -1
  21. package/dist-types/components/input-amount-dropdown/src/LionInputAmountDropdown.d.ts +24 -6
  22. package/dist-types/components/input-amount-dropdown/src/LionInputAmountDropdown.d.ts.map +1 -1
  23. package/dist-types/components/input-amount-dropdown/test-suites/LionInputAmountDropdown.suite.d.ts.map +1 -1
  24. package/dist-types/components/input-datepicker/src/LionInputDatepicker.d.ts +1 -0
  25. package/dist-types/components/input-datepicker/src/LionInputDatepicker.d.ts.map +1 -1
  26. package/dist-types/components/input-datepicker/test/lion-input-datepicker.test.d.ts.map +1 -1
  27. package/dist-types/components/input-range/src/LionInputRange.d.ts +11 -0
  28. package/dist-types/components/input-range/src/LionInputRange.d.ts.map +1 -1
  29. package/dist-types/components/input-tel/src/LionInputTel.d.ts.map +1 -1
  30. package/dist-types/components/input-tel-dropdown/test/LionInputTelDropdown.test.d.ts.map +1 -1
  31. package/dist-types/components/input-tel-dropdown/test-suites/LionInputTelDropdown--parentheses.suite.d.ts +11 -0
  32. package/dist-types/components/input-tel-dropdown/test-suites/LionInputTelDropdown--parentheses.suite.d.ts.map +1 -0
  33. package/dist-types/components/input-tel-dropdown/test-suites/types.d.ts +6 -0
  34. package/dist-types/components/input-tel-dropdown/test-suites/types.d.ts.map +1 -0
  35. package/dist-types/exports/input-tel-dropdown-test-suites.d.ts +1 -0
  36. package/dist-types/tsconfig.tsbuildinfo +1 -1
  37. package/docs/components/checkbox-group/api-table.md +4 -2
  38. package/docs/components/checkbox-group/overview.md +2 -2
  39. package/docs/components/collapsible/overview.md +1 -1
  40. package/docs/components/combobox/overview.md +1 -1
  41. package/docs/components/combobox/use-cases.md +1 -1
  42. package/docs/components/dialog/overview.md +1 -1
  43. package/docs/components/fieldset/overview.md +5 -5
  44. package/docs/components/form/overview.md +3 -3
  45. package/docs/components/form/use-cases.md +2 -2
  46. package/docs/components/icon/use-cases.md +1 -1
  47. package/docs/components/input/api-table.md +2 -1
  48. package/docs/components/input/overview.md +1 -1
  49. package/docs/components/input-amount/api-table.md +2 -1
  50. package/docs/components/input-amount/overview.md +3 -3
  51. package/docs/components/input-amount-dropdown/api-table.md +4 -3
  52. package/docs/components/input-date/api-table.md +2 -1
  53. package/docs/components/input-date/overview.md +3 -3
  54. package/docs/components/input-datepicker/api-table.md +2 -1
  55. package/docs/components/input-datepicker/overview.md +5 -5
  56. package/docs/components/input-email/api-table.md +2 -1
  57. package/docs/components/input-email/overview.md +2 -2
  58. package/docs/components/input-file/api-table.md +2 -1
  59. package/docs/components/input-file/overview.md +1 -1
  60. package/docs/components/input-iban/api-table.md +2 -1
  61. package/docs/components/input-iban/overview.md +2 -2
  62. package/docs/components/input-range/api-table.md +7 -1
  63. package/docs/components/input-range/overview.md +2 -2
  64. package/docs/components/input-range/use-cases.md +14 -0
  65. package/docs/components/input-stepper/api-table.md +2 -1
  66. package/docs/components/input-stepper/overview.md +1 -1
  67. package/docs/components/input-tel/api-table.md +2 -1
  68. package/docs/components/input-tel/overview.md +1 -1
  69. package/docs/components/input-tel/use-cases.md +6 -6
  70. package/docs/components/input-tel-dropdown/api-table.md +2 -1
  71. package/docs/components/input-tel-dropdown/overview.md +1 -1
  72. package/docs/components/listbox/api-table.md +2 -1
  73. package/docs/components/listbox/use-cases.md +1 -1
  74. package/docs/components/radio-group/api-table.md +2 -1
  75. package/docs/components/radio-group/overview.md +3 -3
  76. package/docs/components/select/api-table.md +2 -1
  77. package/docs/components/select/use-cases.md +1 -1
  78. package/docs/components/select-rich/use-cases.md +2 -2
  79. package/docs/components/switch/api-table.md +2 -1
  80. package/docs/components/tabs/examples.md +1 -1
  81. package/docs/components/textarea/api-table.md +2 -1
  82. package/docs/fundamentals/index.md +4 -4
  83. package/docs/fundamentals/node-tools/publish-docs/overview.md +3 -3
  84. package/docs/fundamentals/node-tools/rocket-preset-extend-lion-docs/overview.md +2 -2
  85. package/docs/fundamentals/rationales/accessibility.md +1 -1
  86. package/docs/fundamentals/systems/core/SlotMixin.md +1 -1
  87. package/docs/fundamentals/systems/core/overview.md +1 -1
  88. package/docs/fundamentals/systems/form/api-table.md +2 -1
  89. package/docs/fundamentals/systems/form/formatting-and-parsing.md +4 -4
  90. package/docs/fundamentals/systems/form/model-value.md +1 -1
  91. package/docs/fundamentals/systems/form/overview.md +28 -28
  92. package/docs/fundamentals/systems/form/validate.md +2 -2
  93. package/docs/fundamentals/systems/localize/overview.md +4 -4
  94. package/docs/fundamentals/systems/overlays/configuration.md +2 -2
  95. package/docs/fundamentals/systems/overlays/overview.md +5 -5
  96. package/docs/fundamentals/systems/overlays/use-cases.md +2 -2
  97. package/docs/fundamentals/tools/helpers/overview.md +1 -1
  98. package/docs/fundamentals/tools/singleton-manager/overview.md +4 -4
  99. package/docs/guides/how-to/create-a-custom-field.md +5 -5
  100. package/docs/guides/how-to/create-a-form.md +4 -4
  101. package/docs/guides/how-to/extend-a-native-input.md +2 -2
  102. package/docs/guides/how-to/index.md +1 -1
  103. package/docs/guides/index.md +8 -8
  104. package/docs/guides/principles/index.md +5 -5
  105. package/docs/guides/principles/styling.md +1 -1
  106. package/exports/input-tel-dropdown-test-suites.js +1 -0
  107. package/input-tel-dropdown-test-suites.js +1 -0
  108. package/package.json +1 -1
@@ -0,0 +1,90 @@
1
+ /**
2
+ * The tests suites for the components that have `this.formatCountryCodeStyle = 'parentheses';`
3
+ */
4
+
5
+ import { LionInputTelDropdown } from '@lion/ui/input-tel-dropdown.js';
6
+ import { PhoneUtilManager } from '@lion/ui/input-tel.js';
7
+ import { sendKeys, selectOption } from '@web/test-runner-commands';
8
+ import {
9
+ expect,
10
+ defineCE,
11
+ unsafeStatic,
12
+ fixture as _fixture,
13
+ html,
14
+ waitUntil,
15
+ } from '@open-wc/testing';
16
+
17
+ /**
18
+ * @typedef {import('lit').TemplateResult} TemplateResult
19
+ * @typedef {import('./types.js').TelDropdownConfig} TelDropdownConfig
20
+ */
21
+
22
+ const fixture = /** @type {(arg: string | TemplateResult) => Promise<LionInputTelDropdown>} */ (
23
+ _fixture
24
+ );
25
+
26
+ /**
27
+ * @type {TelDropdownConfig}
28
+ */
29
+ const telDropdownConfig = {
30
+ getTelDropdownInvokerEl: el => el.querySelector('select'),
31
+ selectNlOption: async () => {
32
+ await selectOption({ selector: 'select', value: 'NL' });
33
+ },
34
+ };
35
+
36
+ /**
37
+ * @param {{ klass:LionInputTelDropdown, config: TelDropdownConfig }} config
38
+ */
39
+
40
+ export function runInputTelDropdownParenthesesSuite(
41
+ // @ts-ignore
42
+ { klass, config } = { klass: LionInputTelDropdown, config: telDropdownConfig },
43
+ ) {
44
+ // @ts-ignore
45
+ const tagName = defineCE(/** @type {* & HTMLElement} */ (class extends klass {}));
46
+ const tag = unsafeStatic(tagName);
47
+
48
+ describe('LionInputTelDropdown suite with `parentheses`', () => {
49
+ /**
50
+ * @type {LionInputTelDropdown}
51
+ */
52
+ let el;
53
+ beforeEach(async () => {
54
+ // Wait till PhoneUtilManager has been loaded
55
+ await PhoneUtilManager.loadComplete;
56
+ el = await fixture(html` <${tag} format-country-code-style="parentheses"></${tag}> `);
57
+ await el.updateComplete;
58
+ });
59
+
60
+ describe('Dropdown value is in sync with text input', () => {
61
+ it('should set correct active region when selecting a country from dropdown ', async () => {
62
+ const dropdownInvoker = config.getTelDropdownInvokerEl(el);
63
+ // @ts-ignore
64
+ await waitUntil(() => dropdownInvoker?.checkVisibility());
65
+ await config.selectNlOption(el);
66
+ expect(el.activeRegion).to.equal('NL');
67
+ });
68
+
69
+ it('updates dropdown value', async () => {
70
+ const dropdown = config.getTelDropdownInvokerEl(el);
71
+ // @ts-ignore
72
+ await waitUntil(() => dropdown?.checkVisibility());
73
+ const input = el.querySelector('input');
74
+ expect(input).to.exist;
75
+ // @ts-ignore
76
+ input.value = '';
77
+ // @ts-ignore
78
+ input.focus();
79
+ // @ts-ignore
80
+ await sendKeys({
81
+ type: '(+91) 99',
82
+ });
83
+ await sendKeys({ press: 'Backspace' });
84
+ // @ts-ignore
85
+ expect(input.value).to.equal('(+91) 9');
86
+ expect(el.activeRegion).to.equal('IN');
87
+ });
88
+ });
89
+ });
90
+ }
@@ -0,0 +1,6 @@
1
+ import { LionInputTelDropdown } from '@lion/ui/input-tel-dropdown.js';
2
+
3
+ export type TelDropdownConfig = {
4
+ getTelDropdownInvokerEl: (el: LionInputTelDropdown) => HTMLElement | null;
5
+ selectNlOption: (el: LionInputTelDropdown) => Promise<void>;
6
+ };