ui-admin-lib 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 (57) hide show
  1. package/README.md +477 -0
  2. package/dist/components/AdminPanel/AdminPanel.d.ts +27 -0
  3. package/dist/components/AdminPanel/AdminPanel.d.ts.map +1 -0
  4. package/dist/components/Badge/Badge.d.ts +10 -0
  5. package/dist/components/Badge/Badge.d.ts.map +1 -0
  6. package/dist/components/CRUD/CrudForm.d.ts +26 -0
  7. package/dist/components/CRUD/CrudForm.d.ts.map +1 -0
  8. package/dist/components/CRUD/CrudList.d.ts +18 -0
  9. package/dist/components/CRUD/CrudList.d.ts.map +1 -0
  10. package/dist/components/Card/Card.d.ts +11 -0
  11. package/dist/components/Card/Card.d.ts.map +1 -0
  12. package/dist/components/Form/Button.d.ts +10 -0
  13. package/dist/components/Form/Button.d.ts.map +1 -0
  14. package/dist/components/Form/Checkbox.d.ts +7 -0
  15. package/dist/components/Form/Checkbox.d.ts.map +1 -0
  16. package/dist/components/Form/Input.d.ts +9 -0
  17. package/dist/components/Form/Input.d.ts.map +1 -0
  18. package/dist/components/Form/Label.d.ts +8 -0
  19. package/dist/components/Form/Label.d.ts.map +1 -0
  20. package/dist/components/Form/LoginForm.d.ts +10 -0
  21. package/dist/components/Form/LoginForm.d.ts.map +1 -0
  22. package/dist/components/Form/Radio.d.ts +7 -0
  23. package/dist/components/Form/Radio.d.ts.map +1 -0
  24. package/dist/components/Form/Select.d.ts +16 -0
  25. package/dist/components/Form/Select.d.ts.map +1 -0
  26. package/dist/components/Form/Textarea.d.ts +9 -0
  27. package/dist/components/Form/Textarea.d.ts.map +1 -0
  28. package/dist/components/Layout/Content.d.ts +8 -0
  29. package/dist/components/Layout/Content.d.ts.map +1 -0
  30. package/dist/components/Layout/Header.d.ts +9 -0
  31. package/dist/components/Layout/Header.d.ts.map +1 -0
  32. package/dist/components/Layout/PageLayout.d.ts +10 -0
  33. package/dist/components/Layout/PageLayout.d.ts.map +1 -0
  34. package/dist/components/Layout/Sidebar.d.ts +9 -0
  35. package/dist/components/Layout/Sidebar.d.ts.map +1 -0
  36. package/dist/components/Loading/Loading.d.ts +9 -0
  37. package/dist/components/Loading/Loading.d.ts.map +1 -0
  38. package/dist/components/Modal/Modal.d.ts +13 -0
  39. package/dist/components/Modal/Modal.d.ts.map +1 -0
  40. package/dist/components/Navigation/Breadcrumbs.d.ts +14 -0
  41. package/dist/components/Navigation/Breadcrumbs.d.ts.map +1 -0
  42. package/dist/components/Navigation/Menu.d.ts +16 -0
  43. package/dist/components/Navigation/Menu.d.ts.map +1 -0
  44. package/dist/components/Navigation/Tabs.d.ts +17 -0
  45. package/dist/components/Navigation/Tabs.d.ts.map +1 -0
  46. package/dist/components/Table/DataTable.d.ts +20 -0
  47. package/dist/components/Table/DataTable.d.ts.map +1 -0
  48. package/dist/components/Toast/Toast.d.ts +19 -0
  49. package/dist/components/Toast/Toast.d.ts.map +1 -0
  50. package/dist/index.cjs.js +30 -0
  51. package/dist/index.d.ts +51 -0
  52. package/dist/index.d.ts.map +1 -0
  53. package/dist/index.esm.js +1459 -0
  54. package/dist/styles.css +1 -0
  55. package/dist/utils/crud.d.ts +28 -0
  56. package/dist/utils/crud.d.ts.map +1 -0
  57. package/package.json +64 -0
@@ -0,0 +1 @@
1
+ .admin-button{display:inline-flex;align-items:center;justify-content:center;padding:8px 16px;font-size:14px;font-weight:400;line-height:1.5715;white-space:nowrap;text-align:center;cursor:pointer;border:1px solid var(--admin-border-color);border-radius:var(--admin-border-radius);background:var(--admin-bg-light);transition:all .3s;-webkit-user-select:none;user-select:none;touch-action:manipulation}.admin-button:disabled{cursor:not-allowed;opacity:.6}.admin-button-primary{color:#fff;background:var(--admin-primary);border-color:var(--admin-primary)}.admin-button-primary:hover:not(:disabled){background:var(--admin-primary-hover);border-color:var(--admin-primary-hover)}.admin-button-primary:active:not(:disabled){background:var(--admin-primary-active);border-color:var(--admin-primary-active)}.admin-button-success{color:#fff;background:var(--admin-success);border-color:var(--admin-success)}.admin-button-danger{color:#fff;background:var(--admin-error);border-color:var(--admin-error)}.admin-button-ghost{background:transparent;border-color:var(--admin-border-color)}.admin-input{width:100%;padding:8px 12px;font-size:14px;line-height:1.5715;color:var(--admin-text-primary);background-color:var(--admin-bg-light);border:1px solid var(--admin-border-color);border-radius:var(--admin-border-radius);transition:all .3s}.admin-input:focus{outline:none;border-color:var(--admin-primary);box-shadow:0 0 0 2px #1890ff33}.admin-input:disabled{cursor:not-allowed;opacity:.6;background-color:var(--admin-bg)}.admin-input-error{border-color:var(--admin-error)}.admin-input-error:focus{border-color:var(--admin-error);box-shadow:0 0 0 2px #ff4d4f33}.admin-select{width:100%;padding:8px 12px;font-size:14px;line-height:1.5715;color:var(--admin-text-primary);background-color:var(--admin-bg-light);border:1px solid var(--admin-border-color);border-radius:var(--admin-border-radius);cursor:pointer;transition:all .3s}.admin-select:focus{outline:none;border-color:var(--admin-primary);box-shadow:0 0 0 2px #1890ff33}.admin-select:disabled{cursor:not-allowed;opacity:.6;background-color:var(--admin-bg)}.admin-textarea{width:100%;padding:8px 12px;font-size:14px;line-height:1.5715;color:var(--admin-text-primary);background-color:var(--admin-bg-light);border:1px solid var(--admin-border-color);border-radius:var(--admin-border-radius);transition:all .3s;resize:vertical;font-family:inherit}.admin-textarea:focus{outline:none;border-color:var(--admin-primary);box-shadow:0 0 0 2px #1890ff33}.admin-textarea:disabled{cursor:not-allowed;opacity:.6;background-color:var(--admin-bg)}.admin-checkbox{position:relative;display:inline-flex;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none}.admin-checkbox-input{position:absolute;opacity:0;width:0;height:0}.admin-checkbox-box{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border:1px solid var(--admin-border-color);border-radius:var(--admin-border-radius);background:var(--admin-bg-light);transition:all .3s}.admin-checkbox-input:checked+.admin-checkbox-box{background:var(--admin-primary);border-color:var(--admin-primary)}.admin-checkbox-input:checked+.admin-checkbox-box:after{content:"✓";color:#fff;font-size:12px;line-height:1}.admin-checkbox-label{margin-left:8px;font-size:14px;color:var(--admin-text-primary)}.admin-radio{position:relative;display:inline-flex;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none}.admin-radio-input{position:absolute;opacity:0;width:0;height:0}.admin-radio-box{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border:1px solid var(--admin-border-color);border-radius:50%;background:var(--admin-bg-light);transition:all .3s}.admin-radio-input:checked+.admin-radio-box{border-color:var(--admin-primary)}.admin-radio-input:checked+.admin-radio-box:after{content:"";width:8px;height:8px;border-radius:50%;background:var(--admin-primary)}.admin-radio-label{margin-left:8px;font-size:14px;color:var(--admin-text-primary)}.admin-card{background:var(--admin-bg-light);border-radius:var(--admin-border-radius);box-shadow:var(--admin-box-shadow);padding:24px}.admin-card-header{margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid var(--admin-border-color)}.admin-card-title{margin:0;font-size:16px;font-weight:500;color:var(--admin-text-primary)}.admin-card-body{color:var(--admin-text-primary)}.admin-card-footer{margin-top:16px;padding-top:16px;border-top:1px solid var(--admin-border-color)}.admin-table{width:100%;border-collapse:collapse;background:var(--admin-bg-light)}.admin-table thead{background:var(--admin-bg)}.admin-table th{padding:12px 16px;text-align:left;font-weight:500;font-size:14px;color:var(--admin-text-primary);border-bottom:1px solid var(--admin-border-color)}.admin-table td{padding:12px 16px;font-size:14px;color:var(--admin-text-primary);border-bottom:1px solid var(--admin-border-color)}.admin-table tbody tr:hover{background:var(--admin-bg-hover)}.admin-table tbody tr:last-child td{border-bottom:none}.admin-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1000}.admin-modal{background:var(--admin-bg-light);border-radius:var(--admin-border-radius);box-shadow:0 6px 16px #00000014,0 3px 6px -4px #0000001f;max-width:520px;width:90%;max-height:90vh;display:flex;flex-direction:column}.admin-modal-header{padding:16px 24px;border-bottom:1px solid var(--admin-border-color);display:flex;align-items:center;justify-content:space-between}.admin-modal-title{margin:0;font-size:16px;font-weight:500;color:var(--admin-text-primary)}.admin-modal-close{background:none;border:none;font-size:18px;cursor:pointer;color:var(--admin-text-secondary);padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center}.admin-modal-close:hover{color:var(--admin-text-primary)}.admin-modal-body{padding:24px;overflow-y:auto;flex:1}.admin-modal-footer{padding:10px 16px;border-top:1px solid var(--admin-border-color);display:flex;justify-content:flex-end;gap:8px}.admin-page-layout{display:flex;flex-direction:column;height:100vh;background:var(--admin-bg)}.admin-header{height:var(--admin-header-height);background:var(--admin-bg-light);border-bottom:1px solid var(--admin-border-color);display:flex;align-items:center;padding:0 24px;box-shadow:0 2px 8px #0000000f}.admin-header-logo{font-size:20px;font-weight:600;color:var(--admin-text-primary);margin-right:32px}.admin-header-content{flex:1;display:flex;align-items:center;justify-content:space-between}.admin-sidebar{width:var(--admin-sidebar-width);background:var(--admin-bg-light);border-right:1px solid var(--admin-border-color);overflow-y:auto}.admin-content{flex:1;overflow-y:auto;padding:24px;background:var(--admin-bg)}.admin-layout-with-sidebar{display:flex;flex:1;overflow:hidden}.admin-badge{display:inline-flex;align-items:center;padding:2px 8px;font-size:12px;line-height:1.5;border-radius:10px;background:var(--admin-border-color);color:var(--admin-text-primary)}.admin-badge-primary{background:var(--admin-primary);color:#fff}.admin-badge-success{background:var(--admin-success);color:#fff}.admin-badge-warning{background:var(--admin-warning);color:#fff}.admin-badge-error{background:var(--admin-error);color:#fff}.admin-toast{position:fixed;top:24px;right:24px;z-index:1100;min-width:300px;max-width:400px}.admin-toast-item{background:var(--admin-bg-light);border-radius:var(--admin-border-radius);box-shadow:var(--admin-box-shadow);padding:16px;margin-bottom:16px;display:flex;align-items:flex-start;animation:slideIn .3s ease-out}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.admin-toast-success{border-left:4px solid var(--admin-success)}.admin-toast-error{border-left:4px solid var(--admin-error)}.admin-toast-warning{border-left:4px solid var(--admin-warning)}.admin-toast-info{border-left:4px solid var(--admin-info)}.admin-toast-content{flex:1}.admin-toast-title{font-size:14px;font-weight:500;margin:0 0 4px;color:var(--admin-text-primary)}.admin-toast-message{font-size:14px;margin:0;color:var(--admin-text-secondary)}.admin-toast-close{background:none;border:none;font-size:16px;cursor:pointer;color:var(--admin-text-secondary);padding:0;margin-left:12px}.admin-loading{display:inline-flex;align-items:center;justify-content:center}.admin-loading-spinner{width:20px;height:20px;border:2px solid var(--admin-border-color);border-top-color:var(--admin-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.admin-loading-text{margin-left:8px;font-size:14px;color:var(--admin-text-secondary)}.admin-breadcrumbs{display:flex;align-items:center;font-size:14px;color:var(--admin-text-secondary)}.admin-breadcrumbs-item{color:var(--admin-text-secondary);text-decoration:none}.admin-breadcrumbs-item:hover{color:var(--admin-primary)}.admin-breadcrumbs-item-active{color:var(--admin-text-primary)}.admin-breadcrumbs-separator{margin:0 8px;color:var(--admin-border-color)}.admin-tabs{border-bottom:1px solid var(--admin-border-color)}.admin-tabs-list{display:flex;margin:0;padding:0;list-style:none}.admin-tabs-item{padding:12px 16px;font-size:14px;color:var(--admin-text-secondary);cursor:pointer;border-bottom:2px solid transparent;transition:all .3s;-webkit-user-select:none;user-select:none}.admin-tabs-item:hover{color:var(--admin-primary)}.admin-tabs-item-active{color:var(--admin-primary);border-bottom-color:var(--admin-primary);font-weight:500}.admin-tabs-content{padding:16px 0}.admin-menu{list-style:none;margin:0;padding:0}.admin-menu-item{padding:12px 24px;font-size:14px;color:var(--admin-text-primary);cursor:pointer;transition:all .3s;border-left:3px solid transparent}.admin-menu-item:hover{background:var(--admin-bg-hover)}.admin-menu-item-active{background:#1890ff1a;border-left-color:var(--admin-primary);color:var(--admin-text-primary)}.admin-menu-link{color:var(--admin-text-primary);text-decoration:none;display:block}.admin-label{display:block;margin-bottom:8px;font-size:14px;font-weight:500;color:var(--admin-text-primary)}.admin-label-required:after{content:" *";color:var(--admin-error)}.admin-login-form{background:var(--admin-bg-light);padding:40px;border-radius:var(--admin-border-radius);box-shadow:var(--admin-box-shadow)}:root{--admin-primary: #1890ff;--admin-primary-hover: #40a9ff;--admin-primary-active: #096dd9;--admin-success: #52c41a;--admin-warning: #faad14;--admin-error: #ff4d4f;--admin-info: #1890ff;--admin-text-primary: rgba(0, 0, 0, .85);--admin-text-secondary: rgba(0, 0, 0, .65);--admin-text-disabled: rgba(0, 0, 0, .25);--admin-border-color: #d9d9d9;--admin-border-radius: 4px;--admin-box-shadow: 0 2px 8px rgba(0, 0, 0, .15);--admin-bg: #f0f2f5;--admin-bg-light: #ffffff;--admin-bg-hover: #fafafa;--admin-sidebar-width: 256px;--admin-header-height: 64px}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Утилиты для работы с CRUD операциями через API
3
+ */
4
+ export interface CrudConfig<T = any> {
5
+ baseUrl: string;
6
+ getListUrl?: (params?: any) => string;
7
+ getDetailUrl?: (id: string | number) => string;
8
+ getCreateUrl?: () => string;
9
+ getUpdateUrl?: (id: string | number) => string;
10
+ getDeleteUrl?: (id: string | number) => string;
11
+ transformRequest?: (data: Partial<T>) => any;
12
+ transformResponse?: (data: any) => T;
13
+ headers?: Record<string, string>;
14
+ }
15
+ export declare class CrudService<T = any> {
16
+ private config;
17
+ constructor(config: CrudConfig<T>);
18
+ private request;
19
+ getList(params?: any): Promise<{
20
+ data: T[];
21
+ total?: number;
22
+ }>;
23
+ getDetail(id: string | number): Promise<T>;
24
+ create(data: Partial<T>): Promise<T>;
25
+ update(id: string | number, data: Partial<T>): Promise<T>;
26
+ delete(id: string | number): Promise<void>;
27
+ }
28
+ //# sourceMappingURL=crud.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crud.d.ts","sourceRoot":"","sources":["../../src/utils/crud.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,UAAU,CAAC,CAAC,GAAG,GAAG;IACjC,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,MAAM,CAAA;IACrC,YAAY,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,KAAK,MAAM,CAAA;IAC9C,YAAY,CAAC,EAAE,MAAM,MAAM,CAAA;IAC3B,YAAY,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,KAAK,MAAM,CAAA;IAC9C,YAAY,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,KAAK,MAAM,CAAA;IAC9C,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,CAAA;IAC5C,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,CAAA;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACjC;AAED,qBAAa,WAAW,CAAC,CAAC,GAAG,GAAG;IAC9B,OAAO,CAAC,MAAM,CAAyB;gBAE3B,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;YAcnB,OAAO;IAiBf,OAAO,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAoB7D,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAM1C,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAUpC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAUzD,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAMjD"}
package/package.json ADDED
@@ -0,0 +1,64 @@
1
+ {
2
+ "name": "ui-admin-lib",
3
+ "version": "1.0.0",
4
+ "description": "UI библиотека для создания административных панелей на React",
5
+ "main": "./dist/index.js",
6
+ "module": "./dist/index.esm.js",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "import": "./dist/index.esm.js",
11
+ "require": "./dist/index.js",
12
+ "types": "./dist/index.d.ts"
13
+ },
14
+ "./styles": "./dist/styles.css"
15
+ },
16
+ "files": [
17
+ "dist",
18
+ "README.md"
19
+ ],
20
+ "scripts": {
21
+ "dev": "vite",
22
+ "build": "vite build",
23
+ "preview": "vite preview",
24
+ "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0",
25
+ "demo": "cd demo && npm install && npm run dev",
26
+ "demo:build": "cd demo && npm install && npm run build"
27
+ },
28
+ "peerDependencies": {
29
+ "react": "^18.0.0",
30
+ "react-dom": "^18.0.0"
31
+ },
32
+ "devDependencies": {
33
+ "@types/react": "^18.2.43",
34
+ "@types/react-dom": "^18.2.17",
35
+ "@typescript-eslint/eslint-plugin": "^6.14.0",
36
+ "@typescript-eslint/parser": "^6.14.0",
37
+ "@vitejs/plugin-react": "^4.2.1",
38
+ "eslint": "^8.55.0",
39
+ "eslint-plugin-react-hooks": "^4.6.0",
40
+ "eslint-plugin-react-refresh": "^0.4.5",
41
+ "react": "^18.2.0",
42
+ "react-dom": "^18.2.0",
43
+ "typescript": "^5.2.2",
44
+ "vite": "^5.0.8",
45
+ "vite-plugin-dts": "^3.6.4"
46
+ },
47
+ "keywords": [
48
+ "react",
49
+ "admin",
50
+ "crud",
51
+ "admin-panel",
52
+ "dashboard",
53
+ "ui-library",
54
+ "typescript",
55
+ "react-components"
56
+ ],
57
+ "author": "",
58
+ "license": "MIT",
59
+ "repository": {
60
+ "type": "git",
61
+ "url": ""
62
+ }
63
+ }
64
+