kmaterialize 2.0.0 → 2.3.3-1.0.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 (150) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +55 -91
  3. package/components/appbar/_navbar.old.scss +223 -0
  4. package/components/appbar/appbar.css +235 -0
  5. package/components/appbar/appbar.mjs +54 -0
  6. package/components/appbar/appbar.test.mjs +9 -0
  7. package/components/atomic/atomic.mjs +19 -0
  8. package/components/atomic/component.mjs +67 -0
  9. package/components/badge/_badges.scss +75 -0
  10. package/components/badge/badge.mjs +11 -0
  11. package/components/breadcrumb/_breadcrumb.scss +27 -0
  12. package/components/button/_buttons.scss +352 -0
  13. package/components/button/button.mjs +11 -0
  14. package/components/button/buttons.stories.ts +150 -0
  15. package/components/button/buttons.ts +282 -0
  16. package/components/button/examples.iso.js +18 -0
  17. package/components/button/fabSpec.js +65 -0
  18. package/components/button/test-button.mjs +16 -0
  19. package/components/card/_cards.scss +229 -0
  20. package/components/card/card.mjs +10 -0
  21. package/components/card/cards.ts +185 -0
  22. package/components/card/cardsSpec.js +269 -0
  23. package/components/carousel/_carousel.scss +93 -0
  24. package/components/carousel/_slider.scss +119 -0
  25. package/components/carousel/carousel.ts +693 -0
  26. package/components/carousel/carouselSpec.js +61 -0
  27. package/components/carousel/slider.ts +431 -0
  28. package/components/carousel/sliderSpec.js +99 -0
  29. package/components/checkbox/_checkboxes.scss +281 -0
  30. package/components/checkbox/checkbox.mdx +24 -0
  31. package/components/checkbox/checkbox.stories.ts +120 -0
  32. package/components/chip/chip.mjs +37 -0
  33. package/components/chip/chip.test.mjs +10 -0
  34. package/components/chip/chips.css +126 -0
  35. package/components/chip/chips.mdx +33 -0
  36. package/components/chip/chips.ts +440 -0
  37. package/components/chip/chipsSpec.js +165 -0
  38. package/components/chip/readme.md +323 -0
  39. package/components/collapsible/_collapsible.scss +82 -0
  40. package/components/collapsible/collapsible.ts +230 -0
  41. package/components/collapsible/collapsibleSpec.js +240 -0
  42. package/components/datepicker/_datepicker.scss +268 -0
  43. package/components/datepicker/datepicker.ts +1450 -0
  44. package/components/datepicker/datepickerSpec.js +162 -0
  45. package/components/dialog/_materialbox.scss +42 -0
  46. package/components/dialog/_modal.scss +79 -0
  47. package/components/dialog/materialbox.ts +446 -0
  48. package/components/dialog/materialboxSpec.js +37 -0
  49. package/components/dialog/modal.ts +111 -0
  50. package/components/dialog/modalSpec.js +83 -0
  51. package/components/dialog/readme.md +5 -0
  52. package/components/divider/readme.md +15 -0
  53. package/components/dropdown/_dropdown.scss +83 -0
  54. package/components/dropdown/dropdown.ts +653 -0
  55. package/components/dropdown/dropdownSpec.js +108 -0
  56. package/components/list/_collection.scss +114 -0
  57. package/components/list/_list.scss +6 -0
  58. package/components/list/list.mjs +58 -0
  59. package/components/list/list.test.mjs +16 -0
  60. package/components/loading/loading.mjs +26 -0
  61. package/components/loading/loading.test.mjs +10 -0
  62. package/components/navigation-bar/_old +582 -0
  63. package/components/navigation-bar/navigation-bar.mdx +20 -0
  64. package/components/navigation-bar/navigation-bar.stories.ts +39 -0
  65. package/components/navigation-drawer/_sidenav.scss +247 -0
  66. package/components/navigation-drawer/sidenav.ts +546 -0
  67. package/components/navigation-drawer/sidenavSpec.js +124 -0
  68. package/components/pagination/_pagination.scss +47 -0
  69. package/components/progress/_preloader.scss +416 -0
  70. package/components/radio-button/_radio-buttons.scss +112 -0
  71. package/components/radio-button/radio-buttons.mdx +28 -0
  72. package/components/radio-button/radio-buttons.stories.ts +51 -0
  73. package/components/search/autocomplete.ts +620 -0
  74. package/components/search/autocompleteSpec.js +321 -0
  75. package/components/slider/_range.scss +157 -0
  76. package/components/slider/range.ts +216 -0
  77. package/components/snackbar/_toast.scss +68 -0
  78. package/components/snackbar/toastSpec.js +132 -0
  79. package/components/snackbar/toasts.ts +312 -0
  80. package/components/switch/_switches.scss +121 -0
  81. package/components/tabs/_tabs.scss +171 -0
  82. package/components/tabs/tabs.mjs +31 -0
  83. package/components/tabs/tabs.ts +358 -0
  84. package/components/tabs/tabsSpec.js +180 -0
  85. package/components/textfield/_file-input.scss +41 -0
  86. package/components/textfield/_input-fields.scss +368 -0
  87. package/components/textfield/_select.scss +104 -0
  88. package/components/textfield/formfields.css +311 -0
  89. package/components/textfield/forms.ts +182 -0
  90. package/components/textfield/formsSpec.js +142 -0
  91. package/components/textfield/select.ts +472 -0
  92. package/components/textfield/selectSpec.js +390 -0
  93. package/components/textfield/textfield.mjs +29 -0
  94. package/components/textfield/textfield.test.mjs +10 -0
  95. package/components/timepicker/_timepicker.scss +362 -0
  96. package/components/timepicker/timepicker.ts +905 -0
  97. package/components/tooltip/_tooltip.scss +40 -0
  98. package/components/tooltip/tooltip.ts +380 -0
  99. package/components/tooltip/tooltipSpec.js +145 -0
  100. package/dist/css/materialize.colors.min.css +6 -0
  101. package/dist/css/materialize.css +7578 -6326
  102. package/dist/css/materialize.min.css +6 -13
  103. package/dist/css/materialize.min.css.map +1 -0
  104. package/dist/js/materialize.cjs.js +8410 -0
  105. package/dist/js/materialize.d.ts +2625 -0
  106. package/dist/js/materialize.js +8415 -12374
  107. package/dist/js/materialize.min.js +6 -6
  108. package/dist/js/materialize.mjs +8382 -0
  109. package/package.json +82 -47
  110. package/sass/_colors.scss +417 -0
  111. package/sass/_global.scss +490 -0
  112. package/sass/_grid.scss +172 -0
  113. package/sass/_table_of_contents.scss +28 -0
  114. package/sass/_tapTarget.scss +102 -0
  115. package/sass/_typography.scss +58 -0
  116. package/sass/_variables.scss +56 -0
  117. package/sass/materialize.scss +51 -0
  118. package/sass/mixins.module.scss +168 -0
  119. package/extras/noUiSlider/nouislider.css +0 -406
  120. package/extras/noUiSlider/nouislider.js +0 -2147
  121. package/extras/noUiSlider/nouislider.min.js +0 -1
  122. package/js/anime.min.js +0 -34
  123. package/js/autocomplete.js +0 -448
  124. package/js/buttons.js +0 -354
  125. package/js/cards.js +0 -40
  126. package/js/carousel.js +0 -717
  127. package/js/cash.js +0 -960
  128. package/js/characterCounter.js +0 -136
  129. package/js/chips.js +0 -481
  130. package/js/collapsible.js +0 -275
  131. package/js/component.js +0 -44
  132. package/js/datepicker.js +0 -975
  133. package/js/dropdown.js +0 -635
  134. package/js/forms.js +0 -275
  135. package/js/global.js +0 -444
  136. package/js/materialbox.js +0 -453
  137. package/js/modal.js +0 -382
  138. package/js/parallax.js +0 -138
  139. package/js/pushpin.js +0 -148
  140. package/js/range.js +0 -263
  141. package/js/scrollspy.js +0 -295
  142. package/js/select.js +0 -450
  143. package/js/sidenav.js +0 -580
  144. package/js/slider.js +0 -359
  145. package/js/tabs.js +0 -402
  146. package/js/tapTarget.js +0 -314
  147. package/js/timepicker.js +0 -647
  148. package/js/toasts.js +0 -310
  149. package/js/tooltip.js +0 -303
  150. package/js/waves.js +0 -335
@@ -0,0 +1,108 @@
1
+ describe('Dropdown Plugin:', () => {
2
+ const fixture = `<div class="row">
3
+ <div class="input-field col s12">
4
+ <a id="dropdownActivator" class='dropdown-trigger btn' href='#' data-target='dropdown1'>Drop Me!</a>
5
+
6
+ <ul id='dropdown1' class='dropdown-content'>
7
+ <li><a href="#!">one</a></li>
8
+ <li><a href="#!">two</a></li>
9
+ <li class="divider"></li>
10
+ <li><a href="#!">three</a></li>
11
+ </ul>
12
+
13
+ <a id="dropdownBubble" class='dropdown-trigger btn' href='#' data-target='dropdown2'>
14
+ <i class="material-icons left">arrow_drop_down</i>
15
+ <span>Event Bubble!</span>
16
+ </a>
17
+
18
+ <ul id='dropdown2' class='dropdown-content'>
19
+ <li><a href="#!">one</a></li>
20
+ <li><a href="#!">two</a></li>
21
+ <li class="divider"></li>
22
+ <li><a href="#!">three</a></li>
23
+ </ul>
24
+
25
+ <a id="dropdownDestroyTrigger" class='dropdown-trigger btn' href='#' data-target='dropdownDestroy'>
26
+ <i class="material-icons left">arrow_drop_down</i>
27
+ <span>Drop Me!</span>
28
+ </a>
29
+
30
+ <ul id='dropdownDestroy' class='dropdown-content'>
31
+ <li><a href="#!">one</a></li>
32
+ <li><a href="#!">two</a></li>
33
+ <li class="divider"></li>
34
+ <li><a href="#!">three</a></li>
35
+ </ul>
36
+ </div>
37
+ </div>`;
38
+
39
+ beforeEach(() => {
40
+ XloadHtml(fixture);
41
+ M.Dropdown.init(document.querySelectorAll('.dropdown-trigger'), {
42
+ inDuration: 0,
43
+ outDuration: 0
44
+ });
45
+ });
46
+ afterEach(() => XunloadFixtures());
47
+
48
+ describe('Dropdown', () => {
49
+ let normalDropdown;
50
+
51
+ it('should open and close programmatically', (done) => {
52
+ const dropdown1 = document.querySelector('#dropdown1');
53
+ normalDropdown = document.querySelector('#dropdownActivator');
54
+ expect(dropdown1).toBeHidden('Should be hidden before dropdown is opened.');
55
+ M.Dropdown.getInstance(normalDropdown).open();
56
+ //setTimeout(() => {
57
+ expect(dropdown1).toBeVisible('Should be shown after dropdown is opened.');
58
+ M.Dropdown.getInstance(normalDropdown).close();
59
+ setTimeout(() => {
60
+ expect(dropdown1).toBeHidden('Should be hidden after dropdown is closed.');
61
+ done();
62
+ }, 5); // 400
63
+ //}, 400);
64
+ });
65
+
66
+ it('should close dropdown on document click if programmatically opened', (done) => {
67
+ const dropdown1 = document.querySelector('#dropdown1');
68
+ normalDropdown = document.querySelector('#dropdownActivator');
69
+ expect(dropdown1).toBeHidden('Should be hidden before dropdown is opened.');
70
+ M.Dropdown.getInstance(normalDropdown).open();
71
+ setTimeout(() => {
72
+ expect(dropdown1).toBeVisible('Should be shown after dropdown is opened.');
73
+ click(document.body);
74
+ setTimeout(() => {
75
+ expect(dropdown1).toBeHidden('Should be hidden after dropdown is closed.');
76
+ done();
77
+ }, 5); // 400
78
+ }, 5); // 400
79
+ });
80
+
81
+ it('should bubble events correctly', (done) => {
82
+ const dropdown2 = document.querySelector('#dropdown2');
83
+ normalDropdown = document.querySelector('#dropdownBubble');
84
+ expect(dropdown2).toBeHidden('Should be hidden before dropdown is opened.');
85
+ click(normalDropdown.querySelector('i'));
86
+ setTimeout(() => {
87
+ expect(dropdown2).toBeVisible('Should be shown after dropdown is opened.');
88
+ click(document.body);
89
+ setTimeout(() => {
90
+ expect(dropdown2).toBeHidden('Should be hidden after dropdown is closed.');
91
+ done();
92
+ }, 5); // 400
93
+ }, 5); // 400
94
+ });
95
+
96
+ it('hovered should destroy itself', (done) => {
97
+ const dropdownTrigger = document.querySelector('#dropdownDestroyTrigger');
98
+ M.Dropdown.getInstance(dropdownTrigger).destroy();
99
+ M.Dropdown.init(dropdownTrigger, { hover: true });
100
+ expect(() => {
101
+ M.Dropdown.getInstance(dropdownTrigger).destroy();
102
+ }).not.toThrow();
103
+ //setTimeout(() => {
104
+ done();
105
+ //}, 400);
106
+ });
107
+ });
108
+ });
@@ -0,0 +1,114 @@
1
+ @use '../../sass/variables' as *;
2
+
3
+ .collection {
4
+ padding-left: 0;
5
+ list-style-type: none;
6
+ margin: $element-top-margin 0 $element-bottom-margin 0;
7
+ border: 1px solid var(--md-sys-color-outline-variant);
8
+ border-radius: 2px;
9
+ overflow: hidden;
10
+ position: relative;
11
+
12
+ .collection-item {
13
+ background-color: transparent;
14
+ line-height: 1.5rem;
15
+ padding: 10px 20px;
16
+ margin: 0;
17
+ border-bottom: 1px solid var(--md-sys-color-outline-variant);
18
+
19
+ // Avatar Collection
20
+ &.avatar {
21
+ min-height: 84px;
22
+ padding-left: 72px;
23
+ position: relative;
24
+
25
+ // Don't style circles inside preloader classes.
26
+ &:not(.circle-clipper) > .circle,
27
+ :not(.circle-clipper) > .circle {
28
+ position: absolute;
29
+ width: 42px;
30
+ height: 42px;
31
+ overflow: hidden;
32
+ left: 15px;
33
+ display: inline-block;
34
+ vertical-align: middle;
35
+ }
36
+
37
+ i.circle {
38
+ font-size: 18px;
39
+ line-height: 42px;
40
+ color: #fff;
41
+ background-color: var(--md-sys-color-shadow-light);
42
+ text-align: center;
43
+ }
44
+
45
+
46
+ .title {
47
+ font-size: 16px;
48
+ }
49
+
50
+ p {
51
+ margin: 0;
52
+ }
53
+
54
+ .secondary-content {
55
+ position: absolute;
56
+ top: 16px;
57
+ right: 16px;
58
+ }
59
+ }
60
+
61
+ &:last-child {
62
+ border-bottom: none;
63
+ }
64
+
65
+ &.active {
66
+ background-color: var(--md-sys-color-primary);
67
+ color: var(--md-sys-color-on-primary);
68
+
69
+ .secondary-content {
70
+ color: var(--md-sys-color-on-primary);
71
+ }
72
+ }
73
+ }
74
+
75
+ a.collection-item {
76
+ display: block;
77
+ transition: .25s;
78
+ color: var(--md-sys-color-primary);
79
+
80
+ &:not(.active) {
81
+ &:hover {
82
+ background-color: rgba(0, 0, 0, 0.04);
83
+ }
84
+ }
85
+ }
86
+
87
+ &.with-header {
88
+ .collection-header {
89
+ background-color: transparent;
90
+ border-bottom: 1px solid var(--md-sys-color-outline-variant);
91
+ padding: 10px 20px;
92
+ }
93
+
94
+ .collection-item {
95
+ padding-left: 30px;
96
+ }
97
+
98
+ .collection-item.avatar {
99
+ padding-left: 72px;
100
+ }
101
+ }
102
+
103
+ }
104
+
105
+ // Made less specific to allow easier overriding
106
+ .secondary-content {
107
+ float: right;
108
+ color: var(--md-sys-color-primary);
109
+ }
110
+
111
+ .collapsible .collection {
112
+ margin: 0;
113
+ border: none;
114
+ }
@@ -0,0 +1,6 @@
1
+ .list {
2
+ }
3
+
4
+ .list-item {
5
+ display: flex;
6
+ }
@@ -0,0 +1,58 @@
1
+ import { Component } from '../atomic/component.mjs';
2
+
3
+ class ListItem extends Component {
4
+ #id;
5
+ #text;
6
+ #image;
7
+
8
+ constructor(options) {
9
+ super(options);
10
+ this.addClassname('list-item');
11
+ }
12
+
13
+ setId(id) {
14
+ this.#id = id;
15
+ return this;
16
+ }
17
+
18
+ setText(text) {
19
+ this.#text = text;
20
+ return this;
21
+ }
22
+
23
+ setImage(image) {
24
+ this.#image = image;
25
+ return this;
26
+ }
27
+
28
+ toHTML() {
29
+ let html = '';
30
+ if (this.#image) html += `<img src="${this.#image}" alt=""/>`;
31
+ html += this.#text;
32
+ this.setChildren(html);
33
+ return super.toHTML();
34
+ }
35
+ }
36
+
37
+ class List extends Component {
38
+ #items = [];
39
+
40
+ constructor(options) {
41
+ super(options);
42
+ this.addClassname('list');
43
+ }
44
+
45
+ addItem(item) {
46
+ if (!(item instanceof ListItem)) throw new Error('item has to be of type ListItem');
47
+ this.#items.push(item);
48
+ return this;
49
+ }
50
+
51
+ toHTML() {
52
+ const html = this.#items.map((item) => item.toHTML()).join('');
53
+ this.setChildren(html);
54
+ return super.toHTML();
55
+ }
56
+ }
57
+
58
+ export { ListItem, List };
@@ -0,0 +1,16 @@
1
+ import { describe, expect, test } from 'vitest';
2
+ import { List, ListItem } from './list.mjs';
3
+
4
+ describe('list', () => {
5
+ const testData = ['HP Pavilion dv6-6013cl', 'Dell XPS 15 (Sandy Bridge)', 'Lenovo ThinkPad X220'];
6
+
7
+ test('create html', () => {
8
+ const list = new List();
9
+ testData.map((raw) => {
10
+ const item = new ListItem().setText(raw);
11
+ list.addItem(item);
12
+ });
13
+ //console.log(list.toHTML());
14
+ expect(list.toHTML()).toContain('Pavilion');
15
+ });
16
+ });
@@ -0,0 +1,26 @@
1
+ import { Component } from '../atomic/component.mjs';
2
+
3
+ class LoadingIndicator extends Component {
4
+ constructor(options) {
5
+ super(options);
6
+ this.addClassname('preloader-wrapper active');
7
+ }
8
+
9
+ toHTML() {
10
+ const html = `<div class="spinner-layer spinner-blue-only">
11
+ <div class="circle-clipper left">
12
+ <div class="circle"></div>
13
+ </div>
14
+ <div class="gap-patch">
15
+ <div class="circle"></div>
16
+ </div>
17
+ <div class="circle-clipper right">
18
+ <div class="circle"></div>
19
+ </div>
20
+ </div>`;
21
+ this.setChildren(html);
22
+ return super.toHTML();
23
+ }
24
+ }
25
+
26
+ export { LoadingIndicator };
@@ -0,0 +1,10 @@
1
+ import { describe, expect, test } from 'vitest';
2
+ import { LoadingIndicator } from './loading.mjs';
3
+
4
+ describe('loading', () => {
5
+ test('create html', () => {
6
+ const loading = new LoadingIndicator();
7
+ //console.log(list.toHTML());
8
+ expect(loading.toHTML()).toContain('circle');
9
+ });
10
+ });