@hashtagcms/web-ui-kit 1.0.5

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 (123) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +164 -0
  3. package/bin/cli.js +139 -0
  4. package/package.json +51 -0
  5. package/src/themes/basic/fonts/FontAwesome.otf +0 -0
  6. package/src/themes/basic/fonts/fontawesome-webfont.eot +0 -0
  7. package/src/themes/basic/fonts/fontawesome-webfont.svg +2671 -0
  8. package/src/themes/basic/fonts/fontawesome-webfont.ttf +0 -0
  9. package/src/themes/basic/fonts/fontawesome-webfont.woff +0 -0
  10. package/src/themes/basic/fonts/fontawesome-webfont.woff2 +0 -0
  11. package/src/themes/basic/img/clouds.jpg +0 -0
  12. package/src/themes/basic/img/cms-box-1.png +0 -0
  13. package/src/themes/basic/img/cms-box-2.png +0 -0
  14. package/src/themes/basic/img/dfd.png +0 -0
  15. package/src/themes/basic/img/favicon.png +0 -0
  16. package/src/themes/basic/img/hasshtagcms-product-1.jpg +0 -0
  17. package/src/themes/basic/img/hasshtagcms-product-2.jpg +0 -0
  18. package/src/themes/basic/img/hasshtagcms-product-bg.jpg +0 -0
  19. package/src/themes/basic/img/hasshtagcms-product-with-text.jpg +0 -0
  20. package/src/themes/basic/img/hill.jpg +0 -0
  21. package/src/themes/basic/img/logo-transparent.png +0 -0
  22. package/src/themes/basic/img/logo-white-bg.jpg +0 -0
  23. package/src/themes/basic/img/qr-code.jpg +0 -0
  24. package/src/themes/basic/img/sunset.jpg +0 -0
  25. package/src/themes/basic/img/sunset2.jpg +0 -0
  26. package/src/themes/basic/img/user-default.jpg +0 -0
  27. package/src/themes/basic/js/app.js +9 -0
  28. package/src/themes/basic/sass/_basic.scss +410 -0
  29. package/src/themes/basic/sass/_variables.scss +12 -0
  30. package/src/themes/basic/sass/animate.css +1579 -0
  31. package/src/themes/basic/sass/app.scss +10 -0
  32. package/src/themes/basic/sass/font-awesome/HELP-US-OUT.txt +7 -0
  33. package/src/themes/basic/sass/font-awesome/css/font-awesome.css +2337 -0
  34. package/src/themes/basic/sass/font-awesome/css/font-awesome.min.css +4 -0
  35. package/src/themes/basic/sass/font-awesome/fonts/FontAwesome.otf +0 -0
  36. package/src/themes/basic/sass/font-awesome/fonts/fontawesome-webfont.eot +0 -0
  37. package/src/themes/basic/sass/font-awesome/fonts/fontawesome-webfont.svg +2671 -0
  38. package/src/themes/basic/sass/font-awesome/fonts/fontawesome-webfont.ttf +0 -0
  39. package/src/themes/basic/sass/font-awesome/fonts/fontawesome-webfont.woff +0 -0
  40. package/src/themes/basic/sass/font-awesome/fonts/fontawesome-webfont.woff2 +0 -0
  41. package/src/themes/basic/sass/font-awesome/scss/_animated.scss +34 -0
  42. package/src/themes/basic/sass/font-awesome/scss/_bordered-pulled.scss +25 -0
  43. package/src/themes/basic/sass/font-awesome/scss/_core.scss +12 -0
  44. package/src/themes/basic/sass/font-awesome/scss/_fixed-width.scss +6 -0
  45. package/src/themes/basic/sass/font-awesome/scss/_icons.scss +789 -0
  46. package/src/themes/basic/sass/font-awesome/scss/_larger.scss +13 -0
  47. package/src/themes/basic/sass/font-awesome/scss/_list.scss +19 -0
  48. package/src/themes/basic/sass/font-awesome/scss/_mixins.scss +60 -0
  49. package/src/themes/basic/sass/font-awesome/scss/_path.scss +15 -0
  50. package/src/themes/basic/sass/font-awesome/scss/_rotated-flipped.scss +20 -0
  51. package/src/themes/basic/sass/font-awesome/scss/_screen-reader.scss +5 -0
  52. package/src/themes/basic/sass/font-awesome/scss/_stacked.scss +20 -0
  53. package/src/themes/basic/sass/font-awesome/scss/_variables.scss +799 -0
  54. package/src/themes/basic/sass/font-awesome/scss/font-awesome.scss +18 -0
  55. package/src/themes/basic/views/_layout_/index.blade.php +73 -0
  56. package/src/themes/basic/views/_layout_/lottie.blade.php +50 -0
  57. package/src/themes/basic/views/_services_/index.blade.php +10 -0
  58. package/src/themes/basic/views/auth/login.blade.php +90 -0
  59. package/src/themes/basic/views/auth/passwords/email.blade.php +112 -0
  60. package/src/themes/basic/views/auth/passwords/reset.blade.php +63 -0
  61. package/src/themes/basic/views/auth/register.blade.php +73 -0
  62. package/src/themes/basic/views/auth/verify.blade.php +23 -0
  63. package/src/themes/basic/views/blog.blade.php +28 -0
  64. package/src/themes/basic/views/category-text.blade.php +1 -0
  65. package/src/themes/basic/views/contact.blade.php +64 -0
  66. package/src/themes/basic/views/copyright.blade.php +33 -0
  67. package/src/themes/basic/views/example/custom.blade.php +11 -0
  68. package/src/themes/basic/views/example/query.blade.php +36 -0
  69. package/src/themes/basic/views/example/queryservice.blade.php +38 -0
  70. package/src/themes/basic/views/example/service-later.blade.php +34 -0
  71. package/src/themes/basic/views/example/service.blade.php +24 -0
  72. package/src/themes/basic/views/example/urlservice.blade.php +27 -0
  73. package/src/themes/basic/views/footer.blade.php +31 -0
  74. package/src/themes/basic/views/header.blade.php +63 -0
  75. package/src/themes/basic/views/hero.blade.php +20 -0
  76. package/src/themes/basic/views/info.blade.php +46 -0
  77. package/src/themes/basic/views/our-speciality.blade.php +95 -0
  78. package/src/themes/basic/views/products.blade.php +20 -0
  79. package/src/themes/basic/views/profile.blade.php +88 -0
  80. package/src/themes/basic/views/seo.blade.php +31 -0
  81. package/src/themes/basic/views/social.blade.php +8 -0
  82. package/src/themes/basic/views/stories.blade.php +55 -0
  83. package/src/themes/basic/views/story-comments.blade.php +56 -0
  84. package/src/themes/basic/views/story.blade.php +103 -0
  85. package/src/themes/basic/views/subscribe.blade.php +23 -0
  86. package/src/themes/elegant/img/feature-ai.png +0 -0
  87. package/src/themes/elegant/img/feature-cloud.png +0 -0
  88. package/src/themes/elegant/img/hero-bg.png +0 -0
  89. package/src/themes/elegant/js/app.js +109 -0
  90. package/src/themes/elegant/sass/_elegant.scss +508 -0
  91. package/src/themes/elegant/sass/_variables.scss +42 -0
  92. package/src/themes/elegant/sass/app.scss +14 -0
  93. package/src/themes/elegant/views/_layout_/index.blade.php +73 -0
  94. package/src/themes/elegant/views/_layout_/lottie.blade.php +50 -0
  95. package/src/themes/elegant/views/_services_/index.blade.php +10 -0
  96. package/src/themes/elegant/views/auth/login.blade.php +90 -0
  97. package/src/themes/elegant/views/auth/passwords/email.blade.php +112 -0
  98. package/src/themes/elegant/views/auth/passwords/reset.blade.php +63 -0
  99. package/src/themes/elegant/views/auth/register.blade.php +73 -0
  100. package/src/themes/elegant/views/auth/verify.blade.php +23 -0
  101. package/src/themes/elegant/views/blog.blade.php +28 -0
  102. package/src/themes/elegant/views/category-text.blade.php +1 -0
  103. package/src/themes/elegant/views/contact.blade.php +64 -0
  104. package/src/themes/elegant/views/copyright.blade.php +33 -0
  105. package/src/themes/elegant/views/example/custom.blade.php +11 -0
  106. package/src/themes/elegant/views/example/query.blade.php +36 -0
  107. package/src/themes/elegant/views/example/queryservice.blade.php +38 -0
  108. package/src/themes/elegant/views/example/service-later.blade.php +34 -0
  109. package/src/themes/elegant/views/example/service.blade.php +24 -0
  110. package/src/themes/elegant/views/example/urlservice.blade.php +27 -0
  111. package/src/themes/elegant/views/footer.blade.php +31 -0
  112. package/src/themes/elegant/views/header.blade.php +63 -0
  113. package/src/themes/elegant/views/hero.blade.php +20 -0
  114. package/src/themes/elegant/views/info.blade.php +46 -0
  115. package/src/themes/elegant/views/our-speciality.blade.php +95 -0
  116. package/src/themes/elegant/views/products.blade.php +20 -0
  117. package/src/themes/elegant/views/profile.blade.php +88 -0
  118. package/src/themes/elegant/views/seo.blade.php +31 -0
  119. package/src/themes/elegant/views/social.blade.php +8 -0
  120. package/src/themes/elegant/views/stories.blade.php +55 -0
  121. package/src/themes/elegant/views/story-comments.blade.php +56 -0
  122. package/src/themes/elegant/views/story.blade.php +103 -0
  123. package/src/themes/elegant/views/subscribe.blade.php +23 -0
@@ -0,0 +1,55 @@
1
+ @php
2
+ $results = $data['results'];
3
+ $hasData = count($results) > 0;
4
+ @endphp
5
+
6
+ <section class="section-blogs">
7
+ <div class="container">
8
+ <div class="row">
9
+ <div class="col-lg-9 col-6">
10
+ @if($hasData)
11
+ @foreach($results as $index=>$story)
12
+ <div class="card shadow blog">
13
+ <div class="card-body">
14
+ <div>
15
+ <div class="pull-right">
16
+ <span class="blog-date shadow-common">
17
+ <span class="fa fa-calendar-o icon"></span>
18
+ <span class="text">{{getFormattedDate($story['createdAt'])}}
19
+ </span>
20
+ </span>
21
+ </div>
22
+ <h2><a href="{{htcms_get_path($story['categoryLinkRewrite'].'/'.$story['linkRewrite'])}}">{{$story['title']}}</a></h2>
23
+ </div>
24
+ {!! $story['description'] !!}
25
+
26
+ <p class="more">
27
+ <a href="{{htcms_get_path($story['categoryLinkRewrite'].'/'.$story['linkRewrite'])}}">Read More</a>
28
+ </p>
29
+ </div>
30
+ <div class="card-footer">
31
+ <div class="pull-left author">
32
+ @if(!empty($story['author'])) Author: {{$story['author']}} @endif &nbsp;
33
+ </div>
34
+ <div class="pull-right">
35
+ <span class="fa fa-comment-o"></span> {{$story['commentsCount'] ?? 0}} Comments
36
+ </div>
37
+ </div>
38
+ </div>
39
+ @endforeach
40
+ @else
41
+ <div class="card shadow blog">
42
+ <div class="card-body">
43
+ There is no post for now.
44
+ </div>
45
+ </div>
46
+ @endif
47
+ </div>
48
+ <div class="col-lg-3 col-6">
49
+ <div style="border: 1px solid #c3c3c3; background: #f3f3f3; width: 350px; height: 250px; padding:5px">
50
+ Ad Content
51
+ </div>
52
+ </div>
53
+ </div>
54
+ </div>
55
+ </section>
@@ -0,0 +1,56 @@
1
+ @if(isset($isBlogHome) && $isBlogHome == 1)
2
+
3
+ @else
4
+ @php
5
+ $commentsCount = isset($data) ? sizeof($data) : 0;
6
+ $hasComments = $commentsCount > 0;
7
+ @endphp
8
+ <section class="section-comments">
9
+ <div class="container">
10
+ @if($hasComments)
11
+ <hr/>
12
+ <fieldset>
13
+ <legend>
14
+ <h3>Comments <span class="badge badge-dark">{{$commentsCount}}</span></h3>
15
+ </legend>
16
+ <div class="row mb-3 mt-3">
17
+ <div class="col-lg-12 text-right mt-1">
18
+
19
+ </div>
20
+ </div>
21
+ @foreach($data as $comment)
22
+ <div class="row">
23
+ <div class="col-lg-2 mb-5 text-center image-column">
24
+ <div class="rounded-circle image" style="width:75px;height:75px">
25
+ @php
26
+ $email = md5($comment['email']);
27
+ @endphp
28
+ <img src="https://www.gravatar.com/avatar/{{$email}}?d=&s=75}}" />
29
+ </div>
30
+ <span class="author">
31
+ {{$comment['name']}}
32
+ </span>
33
+ <span class="said">said on</span>
34
+ <span class="date"><span class="fa fa-calendar-o"></span> {{getFormattedDate($comment['created_at'])}}</span>
35
+ </div>
36
+ <div class="col-lg-6">
37
+ <div style="" class="" role="tooltip" x-placement="right">
38
+ <div class="arrow" style="top: 16px;"></div>
39
+ <h3 class="popover-header"></h3>
40
+ <div class="popover-body">{{$comment['comment']}}
41
+ </div>
42
+ </div>
43
+ </div>
44
+ </div>
45
+ @endforeach
46
+ </fieldset>
47
+ @else
48
+ <legend style="margin-bottom: 100px; display: none">
49
+ <span class="first-text">
50
+ Be the first to write a comment.
51
+ </span>
52
+ </legend>
53
+ @endif
54
+ </div>
55
+ </section>
56
+ @endif
@@ -0,0 +1,103 @@
1
+
2
+ <section class="section-blogs">
3
+ <div class="container">
4
+ @if(isset($data) && count($data) > 0)
5
+ @php
6
+ $data = $data[0];
7
+ $hasContent = true;
8
+ $categoryId = $data['category_id'];
9
+ $contentId = $data['id'];
10
+
11
+ $storyObj = htcms_get_shared_data('MODULE_STORY');
12
+ $title = isset($storyObj) ? $storyObj[0]['name'] : htcms_get_category_info('name');
13
+ @endphp
14
+ <h1>{{$title}}</h1>
15
+ {!! $data['page_content'] !!}
16
+ @else
17
+ @php
18
+ $hasContent = false;
19
+ @endphp
20
+
21
+ @endif
22
+ </div>
23
+ </section>
24
+
25
+ @php
26
+ $user = auth()->user();
27
+ if($user != null) {
28
+ $name = $user->name. " ".$user->last_name;
29
+ $email = $user->email;
30
+ } else {
31
+ $name = "";
32
+ $email = "";
33
+ }
34
+ $name = old("name", $name);
35
+ $email = old("email", $email);
36
+ $comment = old("comment");
37
+ $sessionResults = session('results');
38
+ $successMessage = $sessionResults['message'] ?? "";
39
+ @endphp
40
+
41
+
42
+ @if($hasContent)
43
+ @if($data['enable_comments'] == 1)
44
+ <section class="section-comments">
45
+ <div class="container">
46
+ <h2>Post Comments</h2>
47
+ <form class="comment-form relative" action="/comment/saveComment" method="post">
48
+ @csrf
49
+ <input type="hidden" name="category_id" value="{{$categoryId}}" />
50
+ <input type="hidden" name="page_id" value="{{$contentId}}" />
51
+ <div class="row mb-3">
52
+ <div class="col-sm-2">
53
+ <label for="_htcms_form_comment_name_">Name</label>
54
+ </div>
55
+ <div class="col-sm-10">
56
+ <input id="_htcms_form_comment_name_" name="name" type="text" class="form-control" required placeholder="Please enter your name" value="{{$name}}" />
57
+ </div>
58
+ <div class="text text-danger"></div>
59
+ </div>
60
+ <div class="row mb-3">
61
+ <div class="col-sm-2">
62
+ <label for="_htcms_form_comment_email_">Email</label>
63
+ </div>
64
+ <div class="col-sm-10">
65
+ <input id="_htcms_form_comment_email_" type="email" name="email" class="form-control" required placeholder="Please enter your email " value="{{$email}}" />
66
+ </div>
67
+ <div class="text text-danger"></div>
68
+ </div>
69
+ <div class="row mb-3">
70
+ <div class="col-sm-2">
71
+ <label for="_htcms_form_comment_comment_">Comment</label>
72
+ </div>
73
+ <div class="col-sm-10">
74
+ <textarea id="_htcms_form_comment_comment_" name="comment" class="form-control" rows="7">{{$comment}}</textarea>
75
+ <div class="text text-danger"></div>
76
+ </div>
77
+ </div>
78
+ <div class="row mb-3">
79
+ <div class="col-sm-2">
80
+
81
+ </div>
82
+ <div class="col-sm-10 text-center">
83
+ <button class="btn btn-lg btn-outline-secondary mb-1" type="submit">Submit</button>
84
+ <div class="alert text-success">
85
+ {{$successMessage}}
86
+ </div>
87
+
88
+ @if ($errors->any())
89
+ <div class="alert alert-danger">
90
+ <ul>
91
+ @foreach ($errors->all() as $error)
92
+ <li>{{ $error }}</li>
93
+ @endforeach
94
+ </ul>
95
+ </div>
96
+ @endif
97
+ </div>
98
+ </div>
99
+ </form>
100
+ </div>
101
+ </section>
102
+ @endif
103
+ @endif
@@ -0,0 +1,23 @@
1
+ <section class="section-subscribe">
2
+ <div class="container">
3
+ <div class="row justify-content-center">
4
+ <div class="col-lg-6 text-center">
5
+ <h2 class="newsletter-title">{{____("hashtagcms::modules.Subscribe to our newsletter")}}</h2>
6
+ <p class="newsletter-subtitle">{{____("hashtagcms::modules.Please leave us your email address. We will update you.")}}</p>
7
+ <form data-form="newsletter-form" class="newsletter-form relative newsletter-form" action="/common/newsletter" method="post" onsubmit="return HashtagCms.Newsletter.newsletterNow(this)">
8
+ <div class="row">
9
+ <div class="col-8" style="padding: 0; margin: 0">
10
+ <input type="email" name="email" class="form-control input " placeholder="{{____("hashtagcms::auth.E-Mail Address")}}" required>
11
+ </div>
12
+ <div class="col-4">
13
+ <button class="btn btn-lg btn-primary btn-block newsletter" type="submit">{{____("hashtagcms::auth.Submit")}}</button>
14
+ </div>
15
+ <div class="alert col-12 mt-2" data-message-holder="newsletter-message-holder" style="display: none; background-color: lightyellow; color:#000">
16
+ <span class="message" data-class="newsletter-message"></span> <span data-class="newsletter-close" title="Close" class="pull-right pointer hand" style="background-color: #5f5f5f; color:#fff;padding:1px 5px">x</span>
17
+ </div>
18
+ </div>
19
+ </form>
20
+ </div>
21
+ </div>
22
+ </div>
23
+ </section> <!-- end Newsletter -->
@@ -0,0 +1,109 @@
1
+ import { Analytics, Newsletter, AppConfig } from "@hashtagcms/web-sdk";
2
+
3
+
4
+ window.HashtagCms = { configData: {} };
5
+ window.HashtagCms.Newsletter = new Newsletter();
6
+ window.HashtagCms.Subscribe = window.HashtagCms.Newsletter; // Legacy support
7
+ window.HashtagCms.Analytics = new Analytics();
8
+ window.HashtagCms.AppConfig = new AppConfig();
9
+
10
+ /**
11
+ * Elegant Theme - Modern Tech Aesthetic
12
+ *
13
+ * Features:
14
+ * - Smooth scroll animations
15
+ * - Parallax effects
16
+ * - Modern card interactions
17
+ * - Dynamic Navbar
18
+ */
19
+
20
+ class ElegantTheme {
21
+ constructor() {
22
+ this.initNewsletter();
23
+ this.initSmoothScroll();
24
+ this.initParallax();
25
+ this.initCardAnimations();
26
+ this.initNavbar();
27
+ console.log('Elegant Theme loaded');
28
+ }
29
+
30
+ initNewsletter() {
31
+ // Newsletter is already initialized globally as window.HashtagCms.Newsletter
32
+ }
33
+
34
+ initNavbar() {
35
+ const navbar = document.querySelector('.navbar');
36
+ if (navbar) {
37
+ window.addEventListener('scroll', () => {
38
+ if (window.scrollY > 50) {
39
+ navbar.classList.add('scrolled');
40
+ } else {
41
+ navbar.classList.remove('scrolled');
42
+ }
43
+ });
44
+ // Initial check
45
+ if (window.scrollY > 50) {
46
+ navbar.classList.add('scrolled');
47
+ }
48
+ }
49
+ }
50
+
51
+ initSmoothScroll() {
52
+ document.querySelectorAll('a[href^="#"]').forEach(anchor => {
53
+ anchor.addEventListener('click', function (e) {
54
+ const href = this.getAttribute('href');
55
+ if (href && href !== '#' && href !== '#!') {
56
+ e.preventDefault();
57
+ const target = document.querySelector(href);
58
+ if (target) {
59
+ target.scrollIntoView({
60
+ behavior: 'smooth',
61
+ block: 'start'
62
+ });
63
+ }
64
+ }
65
+ });
66
+ });
67
+ }
68
+
69
+ initParallax() {
70
+ const parallaxElements = document.querySelectorAll('.parallax');
71
+
72
+ if (parallaxElements.length > 0) {
73
+ window.addEventListener('scroll', () => {
74
+ const scrolled = window.pageYOffset;
75
+
76
+ parallaxElements.forEach(element => {
77
+ const speed = element.dataset.speed || 0.5;
78
+ element.style.transform = `translateY(${scrolled * speed}px)`;
79
+ });
80
+ });
81
+ }
82
+ }
83
+
84
+ initCardAnimations() {
85
+ const cards = document.querySelectorAll('.feature-card, .tech-card, .card'); // Added generic .card
86
+
87
+ if (cards.length > 0) {
88
+ const observer = new IntersectionObserver((entries) => {
89
+ entries.forEach(entry => {
90
+ if (entry.isIntersecting) {
91
+ entry.target.classList.add('animate-in');
92
+ observer.unobserve(entry.target); // Only animate once
93
+ }
94
+ });
95
+ }, {
96
+ threshold: 0.1
97
+ });
98
+
99
+ cards.forEach(card => observer.observe(card));
100
+ }
101
+ }
102
+ }
103
+
104
+ // Initialize theme when DOM is ready
105
+ if (document.readyState === 'loading') {
106
+ document.addEventListener('DOMContentLoaded', () => new ElegantTheme());
107
+ } else {
108
+ new ElegantTheme();
109
+ }