kmaterialize 2.0.0 → 2.3.3-1.0.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 (156) 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/colors.module.css +74 -0
  118. package/sass/materialize.scss +51 -0
  119. package/sass/mixins.module.scss +168 -0
  120. package/sass/pulse.css +35 -0
  121. package/sass/theme.module.css +140 -0
  122. package/sass/tokens.module.css +272 -0
  123. package/sass/transitions.css +10 -0
  124. package/sass/typography.module.css +150 -0
  125. package/extras/noUiSlider/nouislider.css +0 -406
  126. package/extras/noUiSlider/nouislider.js +0 -2147
  127. package/extras/noUiSlider/nouislider.min.js +0 -1
  128. package/js/anime.min.js +0 -34
  129. package/js/autocomplete.js +0 -448
  130. package/js/buttons.js +0 -354
  131. package/js/cards.js +0 -40
  132. package/js/carousel.js +0 -717
  133. package/js/cash.js +0 -960
  134. package/js/characterCounter.js +0 -136
  135. package/js/chips.js +0 -481
  136. package/js/collapsible.js +0 -275
  137. package/js/component.js +0 -44
  138. package/js/datepicker.js +0 -975
  139. package/js/dropdown.js +0 -635
  140. package/js/forms.js +0 -275
  141. package/js/global.js +0 -444
  142. package/js/materialbox.js +0 -453
  143. package/js/modal.js +0 -382
  144. package/js/parallax.js +0 -138
  145. package/js/pushpin.js +0 -148
  146. package/js/range.js +0 -263
  147. package/js/scrollspy.js +0 -295
  148. package/js/select.js +0 -450
  149. package/js/sidenav.js +0 -580
  150. package/js/slider.js +0 -359
  151. package/js/tabs.js +0 -402
  152. package/js/tapTarget.js +0 -314
  153. package/js/timepicker.js +0 -647
  154. package/js/toasts.js +0 -310
  155. package/js/tooltip.js +0 -303
  156. 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
+ });