@iamproperty/components 2.7.9 → 2.9.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 (138) hide show
  1. package/README.md +136 -136
  2. package/assets/css/core.min.css +1 -1
  3. package/assets/css/core.min.css.map +1 -1
  4. package/assets/css/email.min.css +1 -1
  5. package/assets/css/email.min.css.map +1 -1
  6. package/assets/css/error.min.css +1 -1
  7. package/assets/css/error.min.css.map +1 -1
  8. package/assets/css/style.min.css +1 -1
  9. package/assets/css/style.min.css.map +1 -1
  10. package/assets/js/modules/accordion.js +32 -36
  11. package/assets/js/modules/alert.js +56 -56
  12. package/assets/js/modules/carousel.js +101 -101
  13. package/assets/js/modules/chart.js +216 -216
  14. package/assets/js/modules/drawer.js +15 -15
  15. package/assets/js/modules/form.js +158 -158
  16. package/assets/js/modules/helpers.js +119 -119
  17. package/assets/js/modules/modal.js +89 -89
  18. package/assets/js/modules/nav.js +26 -26
  19. package/assets/js/modules/table.js +584 -584
  20. package/assets/js/modules/testimonial.js +82 -82
  21. package/assets/js/modules/youtubevideo.js +145 -145
  22. package/assets/js/scripts.bundle.js +163 -94
  23. package/assets/js/scripts.bundle.js.map +1 -1
  24. package/assets/js/scripts.bundle.min.js +2 -2
  25. package/assets/js/scripts.bundle.min.js.map +1 -1
  26. package/assets/sass/_components.scss +14 -14
  27. package/assets/sass/_corefiles.scss +40 -40
  28. package/assets/sass/_fonts.scss +16 -16
  29. package/assets/sass/_forms.scss +9 -9
  30. package/assets/sass/_func.scss +12 -10
  31. package/assets/sass/_functions/functions.scss +141 -141
  32. package/assets/sass/_functions/mixins.scss +170 -170
  33. package/assets/sass/_functions/utilities.scss +250 -250
  34. package/assets/sass/_functions/variables.scss +466 -462
  35. package/assets/sass/_print.scss +61 -61
  36. package/assets/sass/components/accordion.scss +197 -197
  37. package/assets/sass/components/alert.scss +98 -98
  38. package/assets/sass/components/cardDeck.scss +107 -107
  39. package/assets/sass/components/carousel.scss +234 -234
  40. package/assets/sass/components/charts.scss +569 -569
  41. package/assets/sass/components/drawer.scss +46 -46
  42. package/assets/sass/components/header.scss +63 -63
  43. package/assets/sass/components/modal.scss +136 -136
  44. package/assets/sass/components/nav.scss +916 -820
  45. package/assets/sass/components/property-searchbar.scss +143 -143
  46. package/assets/sass/components/snapshot.scss +70 -70
  47. package/assets/sass/components/stepper.scss +164 -164
  48. package/assets/sass/components/tabs.scss +87 -87
  49. package/assets/sass/components/testimonial.scss +132 -132
  50. package/assets/sass/components/timeline.scss +95 -95
  51. package/assets/sass/core.scss +6 -6
  52. package/assets/sass/elements/buttons.scss +209 -209
  53. package/assets/sass/elements/card.scss +177 -177
  54. package/assets/sass/elements/container.scss +225 -225
  55. package/assets/sass/elements/forms.scss +194 -194
  56. package/assets/sass/elements/links.scss +96 -96
  57. package/assets/sass/elements/lists.scss +112 -112
  58. package/assets/sass/elements/panel.scss +161 -161
  59. package/assets/sass/elements/tables.scss +290 -290
  60. package/assets/sass/elements/tooltips.scss +84 -84
  61. package/assets/sass/elements/type.scss +136 -136
  62. package/assets/sass/email.scss +65 -65
  63. package/assets/sass/error.scss +4 -4
  64. package/assets/sass/foundations/brand.scss +72 -72
  65. package/assets/sass/foundations/circles.scss +74 -74
  66. package/assets/sass/foundations/icons.scss +72 -72
  67. package/assets/sass/foundations/media.scss +50 -50
  68. package/assets/sass/foundations/reboot.scss +130 -130
  69. package/assets/sass/foundations/root.scss +106 -104
  70. package/assets/sass/main.scss +7 -7
  71. package/assets/svg/icons.svg +598 -588
  72. package/assets/svg/logo.svg +42 -42
  73. package/assets/{js/main.js → ts/main.ts} +68 -78
  74. package/assets/ts/modules/accordion.ts +43 -0
  75. package/dist/components.common.js +113 -89
  76. package/dist/components.common.js.map +1 -1
  77. package/dist/components.css +1 -1
  78. package/dist/components.css.map +1 -1
  79. package/dist/components.umd.js +147 -123
  80. package/dist/components.umd.js.map +1 -1
  81. package/dist/components.umd.min.js +1 -1
  82. package/dist/components.umd.min.js.map +1 -1
  83. package/package.json +108 -103
  84. package/src/components/Accordion/Accordion.vue +22 -22
  85. package/src/components/Accordion/AccordionItem.vue +52 -52
  86. package/src/components/Accordion/README.md +34 -34
  87. package/src/components/Alert/Alert.vue +39 -39
  88. package/src/components/Alert/README.md +28 -28
  89. package/src/components/Banner/Banner.vue +38 -38
  90. package/src/components/Banner/README.md +23 -23
  91. package/src/components/CardDeck/CardDeck.vue +77 -77
  92. package/src/components/CardDeck/README.md +24 -24
  93. package/src/components/Carousel/Carousel.vue +85 -85
  94. package/src/components/Carousel/README.md +19 -19
  95. package/src/components/Chart/Chart.vue +88 -88
  96. package/src/components/Chart/README.md +17 -17
  97. package/src/components/Drawer/Drawer.vue +53 -53
  98. package/src/components/Drawer/README.md +22 -22
  99. package/src/components/Header/Header.vue +38 -38
  100. package/src/components/Header/README.md +27 -27
  101. package/src/components/Modal/Modal.vue +43 -43
  102. package/src/components/Modal/README.md +19 -19
  103. package/src/components/Nav/Nav.vue +212 -189
  104. package/src/components/Nav/README.md +22 -22
  105. package/src/components/NoteFeed/NoteFeed.vue +79 -79
  106. package/src/components/NoteFeed/README.md +16 -16
  107. package/src/components/PropertySearchbar/PropertySearchbar.vue +204 -204
  108. package/src/components/PropertySearchbar/README.md +25 -25
  109. package/src/components/Snapshot/README.md +20 -20
  110. package/src/components/Snapshot/Snapshot.vue +32 -32
  111. package/src/components/Stepper/README.md +32 -32
  112. package/src/components/Stepper/Step.vue +28 -28
  113. package/src/components/Stepper/Stepper.vue +33 -33
  114. package/src/components/Tabs/README.md +27 -27
  115. package/src/components/Tabs/Tab.vue +26 -26
  116. package/src/components/Tabs/Tabs.vue +75 -75
  117. package/src/components/Testimonial/README.md +25 -25
  118. package/src/components/Testimonial/Testimonial.vue +60 -60
  119. package/src/components/Timeline/README.md +18 -18
  120. package/src/components/Timeline/Timeline.vue +24 -24
  121. package/src/elements/Card/Card.vue +113 -113
  122. package/src/elements/Card/README.md +24 -24
  123. package/src/elements/FileUploads/FileUploads.vue +48 -48
  124. package/src/elements/FileUploads/README.md +24 -24
  125. package/src/elements/Input/Input.vue +268 -268
  126. package/src/elements/Input/README.md +19 -19
  127. package/src/elements/Table/README.md +62 -62
  128. package/src/elements/Table/Table.vue +126 -129
  129. package/src/foundations/Icon/Icon.vue +24 -24
  130. package/src/foundations/Icon/README.md +11 -11
  131. package/src/foundations/Logo/Logo.vue +39 -39
  132. package/src/foundations/Logo/README.md +20 -20
  133. package/src/foundations/YoutubeVideo/README.md +11 -11
  134. package/src/foundations/YoutubeVideo/YoutubeVideo.vue +24 -24
  135. package/src/helpers/strings.js +12 -12
  136. package/src/index.js +27 -27
  137. package/assets/.DS_Store +0 -0
  138. package/src/.DS_Store +0 -0
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Bootstrap v2.7.8
2
+ * Bootstrap v3.0.0
3
3
  * Copyright 2011-2022 [object Object]
4
4
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  */
@@ -8,14 +8,14 @@
8
8
  factory();
9
9
  })((function () { 'use strict';
10
10
 
11
- /**
12
- * Global helper functions to help maintain and enhance framework elements.
13
- * @module Helpers
11
+ /**
12
+ * Global helper functions to help maintain and enhance framework elements.
13
+ * @module Helpers
14
14
  */
15
15
 
16
- /**
17
- * Add global classes used by the CSS and later JavaScript.
18
- * @param {HTMLElement} body Dom element, this doesn't have to be the body but it is recommended.
16
+ /**
17
+ * Add global classes used by the CSS and later JavaScript.
18
+ * @param {HTMLElement} body Dom element, this doesn't have to be the body but it is recommended.
19
19
  */
20
20
  var addBodyClasses = body => {
21
21
  body.classList.add("js-enabled");
@@ -26,9 +26,9 @@
26
26
 
27
27
  return null;
28
28
  };
29
- /**
30
- * Add global events.
31
- * @param {HTMLElement} body Dom element, this doesn't have to be the body but it is recommended.
29
+ /**
30
+ * Add global events.
31
+ * @param {HTMLElement} body Dom element, this doesn't have to be the body but it is recommended.
32
32
  */
33
33
 
34
34
  var addGlobalEvents = body => {
@@ -40,9 +40,9 @@
40
40
  }, false);
41
41
  return null;
42
42
  };
43
- /**
44
- * Check if an element contains certain elements that needs enhancing with the JavaScript helpers, it is recommended to do this on the page body after the dom is loaded. Elements that are loaded via ajax should also run this function.
45
- * @param {HTMLElement} element Dom element, this doesn't have to be the body but it is recommended.
43
+ /**
44
+ * Check if an element contains certain elements that needs enhancing with the JavaScript helpers, it is recommended to do this on the page body after the dom is loaded. Elements that are loaded via ajax should also run this function.
45
+ * @param {HTMLElement} element Dom element, this doesn't have to be the body but it is recommended.
46
46
  */
47
47
 
48
48
  var checkElements = element => {
@@ -52,9 +52,9 @@
52
52
  tableWrap(table);
53
53
  });
54
54
  };
55
- /**
56
- * Wrap tables with a table wrapper div to help maintain its responsive design.
57
- * @param {HTMLElement} table Dom table element
55
+ /**
56
+ * Wrap tables with a table wrapper div to help maintain its responsive design.
57
+ * @param {HTMLElement} table Dom table element
58
58
  */
59
59
 
60
60
  var tableWrap = table => {
@@ -63,9 +63,9 @@
63
63
  table.outerHTML = "<div class=\"table__wrapper\">".concat(tableHTML, "</div>");
64
64
  }
65
65
  };
66
- /**
67
- * Creates data attributes to be used by the CSS for mobile views.
68
- * @param {HTMLElement} table Dom table element
66
+ /**
67
+ * Creates data attributes to be used by the CSS for mobile views.
68
+ * @param {HTMLElement} table Dom table element
69
69
  */
70
70
 
71
71
  var tableStacked = table => {
@@ -529,35 +529,36 @@
529
529
  }
530
530
  };
531
531
 
532
- function accordion(accordionElement) {
533
- // Fetch all the details element.
534
- if (!accordionElement.classList.contains('accordion--keep-open')) {
535
- var details = accordionElement.querySelectorAll(":scope > details"); // Add the onclick listeners.
536
-
537
- details.forEach(targetDetail => {
538
- targetDetail.addEventListener("click", () => {
539
- // Close all the details that are not targetDetail.
540
- details.forEach(detail => {
541
- if (detail !== targetDetail) {
542
- detail.removeAttribute("open");
543
- }
544
- });
545
- });
546
- });
547
- }
548
-
549
- if (window.location.hash && document.querySelector(window.location.hash + ':not([open]) summary')) {
550
- var detail = document.querySelector(window.location.hash + ' summary');
551
- detail.click();
552
- }
553
-
554
- window.addEventListener('hashchange', function () {
555
- if (window.location.hash && document.querySelector(window.location.hash + ' summary')) {
556
- var _detail = document.querySelector(window.location.hash + ' summary');
557
-
558
- _detail.click();
559
- }
560
- });
532
+ function accordion(accordionElement) {
533
+ // Fetch all the details element.
534
+ if (!accordionElement.classList.contains('accordion--keep-open')) {
535
+ var details_1 = accordionElement.querySelectorAll(":scope > details");
536
+ // Add the onclick listeners.
537
+ details_1.forEach(function (targetDetail) {
538
+ targetDetail.addEventListener("click", function () {
539
+ // Close all the details that are not targetDetail.
540
+ details_1.forEach(function (detail) {
541
+ if (detail !== targetDetail) {
542
+ detail.removeAttribute("open");
543
+ }
544
+ });
545
+ });
546
+ });
547
+ }
548
+ if (window.location.hash && document.querySelector(window.location.hash + ':not([open]) summary')) {
549
+ var detail = document.querySelector(window.location.hash + ' summary');
550
+ if (detail instanceof HTMLElement) {
551
+ detail.click();
552
+ }
553
+ }
554
+ window.addEventListener('hashchange', function () {
555
+ if (window.location.hash && document.querySelector(window.location.hash + ' summary')) {
556
+ var detail = document.querySelector(window.location.hash + ' summary');
557
+ if (detail instanceof HTMLElement) {
558
+ detail.click();
559
+ }
560
+ }
561
+ });
561
562
  }
562
563
 
563
564
  function testimonial(testimonialElement) {
@@ -795,11 +796,11 @@
795
796
  }, false);
796
797
  }
797
798
 
798
- /**
799
- * Integrate YouTube videos as a way of hosting videos without the overhead and worry surrounding hosting vides. i.e. file sizes, performance and accessibility.
799
+ /**
800
+ * Integrate YouTube videos as a way of hosting videos without the overhead and worry surrounding hosting vides. i.e. file sizes, performance and accessibility.
800
801
  */
801
802
  class youtubeVideo {
802
- /** @param {HTMLElement} embed dom element */
803
+ /** @param {Element} embed dom element */
803
804
  constructor(embed) {
804
805
  var createEmbed = this.createEmbed; // If the scripts is already loaded then lets just create the embed
805
806
 
@@ -818,10 +819,10 @@
818
819
  this.loadScripts(embed, this.createEmbed);
819
820
  }
820
821
  }
821
- /**
822
- * Load the YouTube scripts before trying to create the embed
823
- * @param {HTMLElement} embed dom element
824
- * @param {Function} createEmbed function to create the embed after script loaded.
822
+ /**
823
+ * Load the YouTube scripts before trying to create the embed
824
+ * @param {HTMLElement} embed dom element
825
+ * @param {Function} createEmbed function to create the embed after script loaded.
825
826
  */
826
827
 
827
828
 
@@ -859,9 +860,9 @@
859
860
  image.src = "https://youtube.com/favicon.ico";
860
861
  });
861
862
  }
862
- /**
863
- * Create the YouTube embed after the user has clicked on it.
864
- * @param {HTMLElement} embed dom element
863
+ /**
864
+ * Create the YouTube embed after the user has clicked on it.
865
+ * @param {HTMLElement} embed dom element
865
866
  */
866
867
 
867
868
 
@@ -875,7 +876,7 @@
875
876
  var randLetter = String.fromCharCode(65 + Math.floor(Math.random() * 26));
876
877
  link_id = randLetter + Date.now();
877
878
  target.setAttribute('id', link_id);
878
- } // This function creates an <iframe> (and YouTube player) after the API code downloads.
879
+ } // This function creates an <iframe> (and YouTube player) after the API code downloads.
879
880
 
880
881
 
881
882
  function onYouTubeIframeAPIReady() {
@@ -918,50 +919,118 @@
918
919
 
919
920
  }
920
921
 
921
- // Bootstrap modules
922
+ var modal = element => {
923
+ var links = element.querySelectorAll('.modal__outer a, .modal__outer button');
924
+ var firstLink = links[0];
925
+ var lastLink = links[links.length - 1];
926
+ var modalID = element.getAttribute('id');
922
927
 
923
- document.addEventListener("DOMContentLoaded", function () {
924
- addBodyClasses(document.body);
925
- addGlobalEvents();
926
- checkElements(document.body);
927
- console.log('test.js'); // ANav
928
+ var closeModal = function closeModal() {
929
+ var button = document.querySelector('[href="' + window.location.hash + '"]');
930
+ button.focus();
931
+ window.location.hash = "close";
932
+ history.replaceState("", document.title, window.location.pathname + window.location.search); // If there is more than one video lets make sure there is only one playing at a time.
928
933
 
929
- Array.from(document.querySelectorAll('.nav')).forEach((arrayElement, index) => {
930
- navbar(arrayElement);
931
- }); // Advanced tables
934
+ if (typeof window.player != "undefined" && typeof window.player.pauseVideo == "function") window.player.pauseVideo();
935
+ }; // Trap the tab focus inside
932
936
 
933
- Array.from(document.querySelectorAll('.table__wrapper')).forEach((arrayElement, index) => {
934
- table(arrayElement);
935
- }); // Accordions
936
937
 
937
- Array.from(document.querySelectorAll('.accordion')).forEach((arrayElement, index) => {
938
- accordion(arrayElement);
939
- }); // Testimonial
938
+ element.addEventListener('keydown', function (e) {
939
+ if (e.key === "Tab" && e.shiftKey && document.activeElement == firstLink) {
940
+ e.preventDefault();
941
+ lastLink.focus();
942
+ } else if (e.key === "Tab" && !e.shiftKey && document.activeElement == lastLink) {
943
+ e.preventDefault();
944
+ firstLink.focus();
945
+ }
946
+ }); // ESC will close the open modal
940
947
 
941
- Array.from(document.querySelectorAll('.testimonial')).forEach((arrayElement, index) => {
942
- testimonial(arrayElement);
943
- }); // Carousel
948
+ document.addEventListener("keydown", function (e) {
949
+ if (e.key === "Escape" && document.querySelector('.modal:target')) closeModal();
950
+ });
951
+ element.addEventListener('click', function (e) {
952
+ for (var target = e.target; target && target != this; target = target.parentNode) {
953
+ // Close links will close the model by default but we want to remove the hash link also
954
+ if (target.matches('[href="#close"]')) {
955
+ e.preventDefault();
956
+ closeModal();
957
+ break;
958
+ } // Dock the modal to the right or left to make the content behind readable
959
+ else if (target.matches('.modal__dock--right')) {
960
+ e.preventDefault();
961
+ if (!element.classList.contains('modal--left')) element.classList.add('modal--right');
962
+ element.classList.remove('modal--left');
963
+ break;
964
+ } else if (target.matches('.modal__dock--left')) {
965
+ e.preventDefault();
966
+ if (!element.classList.contains('modal--right')) element.classList.add('modal--left');
967
+ element.classList.remove('modal--right');
968
+ break;
969
+ }
970
+ }
971
+ });
944
972
 
945
- Array.from(document.querySelectorAll('.carousel')).forEach((arrayElement, index) => {
946
- carousel(arrayElement);
947
- }); // Form
973
+ function locationHashChanged() {
974
+ if (location.hash === '#' + modalID) {
975
+ console.log("Modal is now open");
976
+ var videoButton = document.querySelector('.modal:target .modal__inner > .youtube-embed:first-child:last-child a');
977
+ console.log(videoButton);
948
978
 
949
- Array.from(document.querySelectorAll('form')).forEach((arrayElement, index) => {
950
- form(arrayElement);
951
- }); // Modal
979
+ if (videoButton) {
980
+ videoButton.click();
981
+ }
982
+ }
983
+ }
952
984
 
953
- Array.from(document.querySelectorAll('.modal')).forEach((arrayElement, index) => {
954
- modal(arrayElement);
955
- }); // YouTube videos
985
+ window.onhashchange = locationHashChanged;
986
+ };
956
987
 
957
- Array.from(document.querySelectorAll('.youtube-embed')).forEach((arrayElement, index) => {
958
- new youtubeVideo(arrayElement);
959
- });
960
- window.addEventListener('hashchange', function () {
961
- var hash = location.hash.replace('#', '');
962
- var label = document.querySelector("label[for=\"".concat(hash, "\"]"));
963
- if (label) label.click();
964
- }, false);
988
+ // Modules
989
+ // Attach classes to dom elements
990
+ document.addEventListener("DOMContentLoaded", function () {
991
+ addBodyClasses(document.body);
992
+ addGlobalEvents();
993
+ checkElements(document.body);
994
+ console.log('test.js');
995
+ // ANav
996
+ Array.from(document.querySelectorAll('.nav')).forEach(function (arrayElement, index) {
997
+ navbar(arrayElement);
998
+ });
999
+ // Advanced tables
1000
+ Array.from(document.querySelectorAll('.table__wrapper')).forEach(function (arrayElement, index) {
1001
+ table(arrayElement);
1002
+ });
1003
+ // Accordions
1004
+ Array.from(document.querySelectorAll('.accordion')).forEach(function (arrayElement, index) {
1005
+ accordion(arrayElement);
1006
+ });
1007
+ // Testimonial
1008
+ Array.from(document.querySelectorAll('.testimonial')).forEach(function (arrayElement, index) {
1009
+ testimonial(arrayElement);
1010
+ });
1011
+ // Carousel
1012
+ Array.from(document.querySelectorAll('.carousel')).forEach(function (arrayElement, index) {
1013
+ carousel(arrayElement);
1014
+ });
1015
+ // Form
1016
+ Array.from(document.querySelectorAll('form')).forEach(function (arrayElement, index) {
1017
+ form(arrayElement);
1018
+ });
1019
+ // Modal
1020
+ Array.from(document.querySelectorAll('.modal')).forEach(function (arrayElement, index) {
1021
+ modal(arrayElement);
1022
+ });
1023
+ // YouTube videos
1024
+ Array.from(document.querySelectorAll('.youtube-embed')).forEach(function (arrayElement, index) {
1025
+ new youtubeVideo(arrayElement);
1026
+ });
1027
+ window.addEventListener('hashchange', function () {
1028
+ var hash = location.hash.replace('#', '');
1029
+ var label = document.querySelector("label[for=\"".concat(hash, "\"]"));
1030
+ if (label instanceof HTMLElement) {
1031
+ label.click();
1032
+ }
1033
+ }, false);
965
1034
  });
966
1035
 
967
1036
  }));