@hashtagcms/admin-ui-kit 1.0.6 → 1.0.7

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.
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * HashtagCMS Admin UI Kit v1.0.7
2
+ * HashtagCms Admin UI Kit v1.0.7
3
3
  * Copyright (c) 2026 Marghoob Suleman
4
4
  * Link: https://hashtagcms.org
5
5
  * Licensed under MIT
@@ -65,6 +65,8 @@
65
65
 
66
66
  /*! ./utils */
67
67
 
68
+ /*! For license information please see index.umd.js.LICENSE.txt */
69
+
68
70
  /*! crypto */
69
71
 
70
72
  /*! crypto-js/aes */
@@ -79,6 +81,8 @@
79
81
 
80
82
  /*! lz-string/libs/lz-string */
81
83
 
84
+ /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
85
+
82
86
  /*!**********************!*\
83
87
  !*** ./src/index.js ***!
84
88
  \**********************/
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@hashtagcms/admin-ui-kit",
3
- "version": "1.0.6",
4
- "description": "The official Admin UI Kit for HashtagCMS, bundled with essential UI components, utility helpers, and design system styles.",
5
- "author": "HashtagCMS",
3
+ "version": "1.0.7",
4
+ "description": "The official Admin UI Kit for HashtagCms, bundled with essential UI components, utility helpers, and design system styles.",
5
+ "author": "HashtagCms",
6
6
  "license": "MIT",
7
7
  "publishConfig": {
8
8
  "access": "public"
@@ -22,7 +22,7 @@
22
22
  ],
23
23
  "scripts": {
24
24
  "test": "vitest run",
25
- "dev": "webpack --mode development --progress --color",
25
+ "dev": "webpack --mode development --progress --color",
26
26
  "build": "webpack --mode production --progress --color",
27
27
  "watch": "webpack --mode development --watch --progress --color",
28
28
  "playground": "vite --config vite.playground.config.js"
@@ -44,7 +44,7 @@
44
44
  "webpack-cli": "^5.1.0"
45
45
  },
46
46
  "dependencies": {
47
- "@hashtagcms/admin-sdk": "^1.0.2",
47
+ "@hashtagcms/admin-sdk": "file:../admin-sdk",
48
48
  "axios": "^1.6.0",
49
49
  "mitt": "^3.0.1",
50
50
  "motion": "^10.16.4",
@@ -1,6 +1,6 @@
1
1
  # @hashtagcms/components
2
2
 
3
- A collection of robust, reusable Vue.js components designed for building HashtagCMS admin interfaces. These components are optimized for server-side rendering integration (using `data-` attributes) and modern SPA capabilities.
3
+ A collection of robust, reusable Vue.js components designed for building HashtagCms admin interfaces. These components are optimized for server-side rendering integration (using `data-` attributes) and modern SPA capabilities.
4
4
 
5
5
  ## 📦 Installation
6
6
 
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@hashtagcms/components",
3
3
  "version": "1.0.0",
4
- "description": "Vue.js components for HashtagCMS",
5
- "author": "HashtagCMS",
4
+ "description": "Vue.js components for HashtagCms",
5
+ "author": "HashtagCms",
6
6
  "license": "MIT",
7
7
  "homepage": "https://hashtagcms.org",
8
8
  "repository": {
@@ -127,7 +127,7 @@ export default {
127
127
  };
128
128
  let onError = (error) => {
129
129
  let dm = "There is some error while uploading. Please try again.";
130
- this.showMsg(error.response.statusText || dm, true);
130
+ this.showMsg(error.response?.statusText || error.message || dm, true);
131
131
  this.resetForm();
132
132
  };
133
133
 
@@ -162,7 +162,7 @@ export default {
162
162
  this.acceptFileType.replace(/[^a-zA-Z,]/g, ""),
163
163
  );
164
164
 
165
- formData.append("_csrf", window.Laravel.csrfToken);
165
+ formData.append("_csrf", window.HashtagCms?.csrfToken || window.Laravel?.csrfToken);
166
166
 
167
167
  axios
168
168
  .post(url, formData, {
@@ -332,7 +332,7 @@
332
332
  <script>
333
333
  import AdminConfig from "@hashtagcms/helpers/admin-config";
334
334
 
335
- import { Toast, Modal, Loader } from "@hashtagcms/helpers/common";
335
+ import { Toast, Modal, Loader, safeErrorData } from "@hashtagcms/helpers/common";
336
336
  import Sortable from "sortablejs";
337
337
  import InfoPopup from "./info-popup.vue";
338
338
  import ModalBox from "./library/modal-box.vue";
@@ -581,7 +581,7 @@ export default {
581
581
  resolve(response);
582
582
  })
583
583
  .catch((error) => {
584
- reject(error.response);
584
+ reject(safeErrorData(error));
585
585
  })
586
586
  .finally(() => {
587
587
  Loader.hide(this);
@@ -1,53 +1,152 @@
1
1
  import "@hashtagcms/styles/src/app.scss";
2
- export { default as ActionBar } from "./action-bar.vue";
3
- export { default as CategoryPlatform } from "./category-platform.vue";
4
- export { default as CategorySettings } from "./category-settings.vue";
5
- export { default as CmsModuleDropdown } from "./cms-module-dropdown.vue";
6
- export { default as DownloadButton } from "./downlods.vue";
7
- export { default as FileUploader } from "./file-uploader.vue";
8
- export { default as FrontendModuleCreator } from "./frontend-module-creator.vue";
9
- export { default as GlobalSiteButton } from "./global-site-button.vue";
10
- export { default as Homepage } from "./homepage.vue";
11
- export { default as HtmlSlot } from "./html-slot.vue";
12
- export { default as ImageGallery } from "./image-gallery.vue";
13
- export { default as InfoBoxes } from "./info-boxes.vue";
14
- export { default as InfoPopup } from "./info-popup.vue";
15
- export { default as LanguageButton } from "./language-button.vue";
16
- export { default as LanguageCopier } from "./language-copier.vue";
17
- export { default as LeftNav } from "./left-nav.vue";
18
- export { default as MenuSorter } from "./menu-sorter.vue";
19
- export { default as ModuleCreator } from "./module-creator.vue";
20
- export { default as ModulePermission } from "./module-permission.vue";
21
- export { default as Pagination } from "./pagination.vue";
22
- export { default as PlatformButton } from "./platform-button.vue";
23
- export { default as SearchBar } from "./search-bar.vue";
24
- export { default as SiteButton } from "./site-button.vue";
25
- export { default as SiteCloner } from "./site-cloner.vue";
26
- export { default as SitewiseCopier } from "./sitewise-copier.vue";
27
- export { default as SitewiseData } from "./sitewise-data.vue";
28
- export { default as Sorter } from "./sorter.vue";
29
- export { default as TabularView } from "./tabular-view.vue";
30
- export { default as TitleBar } from "./title-bar.vue";
31
- export { default as TopNav } from "./top-nav.vue";
32
-
33
- // Library exports
34
- export { default as CopyPaste } from "./library/copy-paste.vue";
35
- export { default as InfoBox } from "./library/info-box.vue";
36
- export { default as LeftMenuShowHide } from "./library/left-menu-show-hide.vue";
37
- export { default as Loader } from "./library/loader.vue";
38
- export { default as ModalBox } from "./library/modal-box.vue";
39
- export { default as SplitButton } from "./library/split-button.vue";
40
- export { default as TimerButton } from "./library/timer-button.vue";
41
- export { default as ToastBox } from "./library/toast-box.vue";
2
+
3
+ import ActionBar from "./action-bar.vue";
4
+ import CategoryPlatform from "./category-platform.vue";
5
+ import CategorySettings from "./category-settings.vue";
6
+ import CmsModuleDropdown from "./cms-module-dropdown.vue";
7
+ import DownloadButton from "./downlods.vue";
8
+ import FileUploader from "./file-uploader.vue";
9
+ import FrontendModuleCreator from "./frontend-module-creator.vue";
10
+ import GlobalSiteButton from "./global-site-button.vue";
11
+ import Homepage from "./homepage.vue";
12
+ import HtmlSlot from "./html-slot.vue";
13
+ import ImageGallery from "./image-gallery.vue";
14
+ import InfoBoxes from "./info-boxes.vue";
15
+ import InfoPopup from "./info-popup.vue";
16
+ import LanguageButton from "./language-button.vue";
17
+ import LanguageCopier from "./language-copier.vue";
18
+ import LeftNav from "./left-nav.vue";
19
+ import MenuSorter from "./menu-sorter.vue";
20
+ import ModuleCreator from "./module-creator.vue";
21
+ import ModulePermission from "./module-permission.vue";
22
+ import Pagination from "./pagination.vue";
23
+ import PlatformButton from "./platform-button.vue";
24
+ import SearchBar from "./search-bar.vue";
25
+ import SiteButton from "./site-button.vue";
26
+ import SiteCloner from "./site-cloner.vue";
27
+ import SitewiseCopier from "./sitewise-copier.vue";
28
+ import SitewiseData from "./sitewise-data.vue";
29
+ import Sorter from "./sorter.vue";
30
+ import TabularView from "./tabular-view.vue";
31
+ import TitleBar from "./title-bar.vue";
32
+ import TopNav from "./top-nav.vue";
33
+
34
+ // Library imports
35
+ import CopyPaste from "./library/copy-paste.vue";
36
+ import InfoBox from "./library/info-box.vue";
37
+ import LeftMenuShowHide from "./library/left-menu-show-hide.vue";
38
+ import Loader from "./library/loader.vue";
39
+ import ModalBox from "./library/modal-box.vue";
40
+ import SplitButton from "./library/split-button.vue";
41
+ import TimerButton from "./library/timer-button.vue";
42
+ import ToastBox from "./library/toast-box.vue";
43
+
44
+ export {
45
+ ActionBar,
46
+ CategoryPlatform,
47
+ CategorySettings,
48
+ CmsModuleDropdown,
49
+ DownloadButton,
50
+ FileUploader,
51
+ FrontendModuleCreator,
52
+ GlobalSiteButton,
53
+ Homepage,
54
+ HtmlSlot,
55
+ ImageGallery,
56
+ InfoBoxes,
57
+ InfoPopup,
58
+ LanguageButton,
59
+ LanguageCopier,
60
+ LeftNav,
61
+ MenuSorter,
62
+ ModuleCreator,
63
+ ModulePermission,
64
+ Pagination,
65
+ PlatformButton,
66
+ SearchBar,
67
+ SiteButton,
68
+ SiteCloner,
69
+ SitewiseCopier,
70
+ SitewiseData,
71
+ Sorter,
72
+ TabularView,
73
+ TitleBar,
74
+ TopNav,
75
+ CopyPaste,
76
+ InfoBox,
77
+ LeftMenuShowHide,
78
+ Loader,
79
+ ModalBox,
80
+ SplitButton,
81
+ TimerButton,
82
+ ToastBox
83
+ };
42
84
 
43
85
  // Helpers
44
- export { AdminConfig } from "@hashtagcms/helpers/admin-config";
45
- export * from "@hashtagcms/helpers/common"; // Exports Toast, Storage, Fetcher, etc.
46
- export { Dashboard } from "@hashtagcms/helpers/dashboard";
47
- export { EditorHelper, PageManager } from "@hashtagcms/helpers/editor";
48
- export { ErrorMessage } from "@hashtagcms/helpers/error-message-handler";
49
- export { default as MapAPI } from "@hashtagcms/helpers/map";
50
- export { default as Form } from "@hashtagcms/helpers/form";
51
-
52
- // Package Version
53
- export const VERSION = __VERSION__;
86
+ import { AdminConfig } from "@hashtagcms/helpers/admin-config";
87
+ import * as common from "@hashtagcms/helpers/common";
88
+ import { Dashboard } from "@hashtagcms/helpers/dashboard";
89
+ import { EditorHelper, PageManager } from "@hashtagcms/helpers/editor";
90
+ import { ErrorMessage } from "@hashtagcms/helpers/error-message-handler";
91
+ import MapAPI from "@hashtagcms/helpers/map";
92
+ import Form from "@hashtagcms/helpers/form";
93
+
94
+ export { AdminConfig, Dashboard, EditorHelper, PageManager, ErrorMessage, MapAPI, Form };
95
+ export * from "@hashtagcms/helpers/common";
96
+
97
+ const HashtagCmsAdminUI = {
98
+ VERSION: __VERSION__,
99
+ ActionBar,
100
+ CategoryPlatform,
101
+ CategorySettings,
102
+ CmsModuleDropdown,
103
+ DownloadButton,
104
+ FileUploader,
105
+ FrontendModuleCreator,
106
+ GlobalSiteButton,
107
+ Homepage,
108
+ HtmlSlot,
109
+ ImageGallery,
110
+ InfoBoxes,
111
+ InfoPopup,
112
+ LanguageButton,
113
+ LanguageCopier,
114
+ LeftNav,
115
+ MenuSorter,
116
+ ModuleCreator,
117
+ ModulePermission,
118
+ Pagination,
119
+ PlatformButton,
120
+ SearchBar,
121
+ SiteButton,
122
+ SiteCloner,
123
+ SitewiseCopier,
124
+ SitewiseData,
125
+ Sorter,
126
+ TabularView,
127
+ TitleBar,
128
+ TopNav,
129
+ CopyPaste,
130
+ InfoBox,
131
+ LeftMenuShowHide,
132
+ Loader,
133
+ ModalBox,
134
+ SplitButton,
135
+ TimerButton,
136
+ ToastBox,
137
+ AdminConfig,
138
+ ...common,
139
+ Dashboard,
140
+ EditorHelper,
141
+ PageManager,
142
+ ErrorMessage,
143
+ MapAPI,
144
+ Form
145
+ };
146
+
147
+ // Global exposure
148
+ if (typeof window !== 'undefined') {
149
+ window.HashtagCmsAdminUI = HashtagCmsAdminUI;
150
+ }
151
+
152
+ export default HashtagCmsAdminUI;
@@ -49,7 +49,7 @@
49
49
  <hr />
50
50
  <div class="dropdown">
51
51
  <a
52
- title="Open HashtagCMS.org"
52
+ title="Open HashtagCms.org"
53
53
  :href="linkForHashtag"
54
54
  target="_blank"
55
55
  class="d-flex align-items-center text-light text-decoration-none"
@@ -56,7 +56,7 @@
56
56
  import AdminConfig from "@hashtagcms/helpers/admin-config";
57
57
 
58
58
  import Sortable from "sortablejs";
59
- import { Toast, Loader } from "@hashtagcms/helpers/common";
59
+ import { Toast, Loader, safeErrorData } from "@hashtagcms/helpers/common";
60
60
 
61
61
  import SplitButton from "./library/split-button.vue";
62
62
 
@@ -191,7 +191,7 @@ export default {
191
191
  this.onSuccess(response, controllerName);
192
192
  })
193
193
  .catch((error) => {
194
- this.onFailure(error.response);
194
+ this.onFailure(safeErrorData(error));
195
195
  })
196
196
  .finally(() => {
197
197
  Loader.hide(this);
@@ -203,7 +203,7 @@ export default {
203
203
  );
204
204
  },
205
205
  csrfToken() {
206
- return window.Laravel.csrfToken;
206
+ return window.HashtagCms?.csrfToken || window.Laravel?.csrfToken;
207
207
  },
208
208
  },
209
209
  methods: {
@@ -133,7 +133,7 @@ export default {
133
133
  })
134
134
  .catch((error) => {
135
135
  console.log("Error: ", error.response);
136
- $this.errorMsg = error.response.data.message;
136
+ $this.errorMsg = error.response ? error.response.data.message : error.message;
137
137
  this.loading(0);
138
138
  });
139
139
 
@@ -32,7 +32,7 @@
32
32
  <script>
33
33
  import AdminConfig from "@hashtagcms/helpers/admin-config";
34
34
 
35
- import { Toast, Loader } from "@hashtagcms/helpers/common";
35
+ import { Toast, Loader, safeErrorData } from "@hashtagcms/helpers/common";
36
36
  import SiteWiseData from "./sitewise-data.vue";
37
37
 
38
38
  export default {
@@ -99,7 +99,7 @@ export default {
99
99
  resolve(response);
100
100
  })
101
101
  .catch((error) => {
102
- reject(error.response);
102
+ reject(safeErrorData(error));
103
103
  });
104
104
  });
105
105
  },
@@ -129,8 +129,8 @@ export default {
129
129
  .then((response) => {
130
130
  this.populateData(response.data);
131
131
  })
132
- .catch((response) => {
133
- console.log(response);
132
+ .catch((error) => {
133
+ console.error('getBySite error:', safeErrorData(error));
134
134
  })
135
135
  .finally(() => {
136
136
  this.showHdeLoader(false);
@@ -160,8 +160,8 @@ export default {
160
160
  console.log(response);
161
161
  feedback(response);
162
162
  })
163
- .catch((response) => {
164
- console.log(response);
163
+ .catch((error) => {
164
+ console.error('actionAdd error:', safeErrorData(error));
165
165
  })
166
166
  .finally(() => {
167
167
  this.showHdeLoader(false);
@@ -206,8 +206,8 @@ export default {
206
206
  .then((response) => {
207
207
  feedback(response);
208
208
  })
209
- .catch((response) => {
210
- console.log(response);
209
+ .catch((error) => {
210
+ console.error('actionRemove error:', safeErrorData(error));
211
211
  })
212
212
  .finally(() => {
213
213
  this.showHdeLoader(false);
@@ -96,7 +96,7 @@
96
96
  <script>
97
97
  import AdminConfig from "@hashtagcms/helpers/admin-config";
98
98
 
99
- import { Loader, Toast } from "@hashtagcms/helpers/common";
99
+ import { Loader, Toast, safeErrorData, parseProp } from "@hashtagcms/helpers/common";
100
100
 
101
101
  export default {
102
102
  mounted() {
@@ -172,7 +172,7 @@ export default {
172
172
  resolve(response);
173
173
  })
174
174
  .catch((error) => {
175
- reject(error.response);
175
+ reject(safeErrorData(error));
176
176
  })
177
177
  .finally(() => {
178
178
  Loader.hide(this);
@@ -31,7 +31,7 @@
31
31
  import AdminConfig from "@hashtagcms/helpers/admin-config";
32
32
 
33
33
  import Sortable from "sortablejs";
34
- import { Toast } from "@hashtagcms/helpers/common";
34
+ import { Toast, safeErrorData } from "@hashtagcms/helpers/common";
35
35
  import Form from "@hashtagcms/helpers/form";
36
36
 
37
37
  export default {
@@ -167,7 +167,7 @@ export default {
167
167
  this.onSuccess(response);
168
168
  })
169
169
  .catch((error) => {
170
- this.onFailure(error.response);
170
+ this.onFailure(safeErrorData(error));
171
171
  });
172
172
  });
173
173
  },
@@ -1,6 +1,6 @@
1
1
  # @hashtagcms/helpers
2
2
 
3
- A utility toolbelt for HashtagCMS development. This package provides essential classes for API communication, form handling, configuration management, and event management.
3
+ A utility toolbelt for HashtagCms development. This package provides essential classes for API communication, form handling, configuration management, and event management.
4
4
 
5
5
  ## 📦 Installation
6
6
 
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@hashtagcms/helpers",
3
3
  "version": "1.0.0",
4
- "description": "Helper utilities for HashtagCMS",
5
- "author": "HashtagCMS",
4
+ "description": "Helper utilities for HashtagCms",
5
+ "author": "HashtagCms",
6
6
  "license": "MIT",
7
7
  "homepage": "https://hashtagcms.org",
8
8
  "repository": {
@@ -11,7 +11,9 @@ import {
11
11
  PasteFromClipboard,
12
12
  IsJson,
13
13
  LeftMenu,
14
- TitleCase
14
+ TitleCase,
15
+ parseProp,
16
+ safeErrorData
15
17
  } from "@hashtagcms/admin-sdk";
16
18
 
17
19
  // Initialize SDK LeftMenu with EventBus
@@ -28,7 +30,9 @@ export {
28
30
  PasteFromClipboard,
29
31
  IsJson,
30
32
  LeftMenu,
31
- TitleCase
33
+ TitleCase,
34
+ parseProp,
35
+ safeErrorData
32
36
  };
33
37
 
34
38
  /**
@@ -1,6 +1,6 @@
1
1
  # @hashtagcms/styles
2
2
 
3
- The core design system for HashtagCMS. This package contains the SASS/SCSS source files used to style the admin interface, compatible with the compiled CSS structure.
3
+ The core design system for HashtagCms. This package contains the SASS/SCSS source files used to style the admin interface, compatible with the compiled CSS structure.
4
4
 
5
5
  ## 📦 Installation
6
6
 
@@ -32,6 +32,6 @@ To override variables, import your custom variables _before_ importing this pack
32
32
  // Your overrides
33
33
  $primary-color: #3498db;
34
34
 
35
- // Import HashtagCMS styles
35
+ // Import HashtagCms styles
36
36
  @import "~@hashtagcms/styles/app";
37
37
  ```
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@hashtagcms/styles",
3
3
  "version": "1.0.0",
4
- "description": "Design system and styles for HashtagCMS",
5
- "author": "HashtagCMS",
4
+ "description": "Design system and styles for HashtagCms",
5
+ "author": "HashtagCms",
6
6
  "license": "MIT",
7
7
  "homepage": "https://hashtagcms.org",
8
8
  "repository": {