@ldmjs/ui 2.1.4 → 2.1.6

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.
@@ -48,15 +48,66 @@ body {
48
48
  flex: 1 1 auto;
49
49
 
50
50
  .v-tabs {
51
+ .v-btn.v-tab {
52
+ width: 100%;
53
+ .v-btn__content {
54
+ justify-content: flex-start;
55
+ width: 100%;
56
+ }
57
+ }
51
58
  .v-slide-group__prev {
52
59
  display: none;
53
60
  }
54
61
  .v-slide-group__next {
55
62
  display: none;
56
63
  }
64
+ .v-slide-group__content {
65
+ flex-flow: column nowrap;
66
+ height: 100% !important;
67
+ width: 100% !important;
68
+
69
+ .v-btn__content {
70
+ text-overflow: ellipsis;
71
+ display: inline-flex;
72
+ justify-content: flex-start;
73
+ gap: 4px;
74
+ white-space: nowrap;
75
+ overflow: hidden;
76
+ }
77
+ }
78
+ }
79
+
80
+ .ld-tab-header {
81
+ font-family: var(--medium);
57
82
  }
58
83
  }
59
84
  }
85
+
86
+ // --------- small
87
+
88
+ &.ld-tabs--small {
89
+ .ld-tab-header {
90
+ font-size: var(--text-body-s);
91
+ height: var(--tabs-s) !important;
92
+ }
93
+ .v-btn.v-tab {
94
+ font-size: var(--text-body-s);
95
+ height: var(--tabs-s) !important;
96
+ }
97
+ }
98
+
99
+ // --------- large
100
+
101
+ &.ld-tabs--large {
102
+ .ld-tab-header {
103
+ font-size: var(--text-body-m);
104
+ height: var(--tabs-l) !important;
105
+ }
106
+ .v-btn.v-tab {
107
+ font-size: var(--text-body-m);
108
+ height: var(--tabs-l) !important;
109
+ }
110
+ }
60
111
  }
61
112
 
62
113
  // --------- horizontal
@@ -73,6 +124,42 @@ body {
73
124
  .v-slide-group__next {
74
125
  display: flex;
75
126
  }
127
+
128
+ .v-tab {
129
+ &.v-btn {
130
+ border-width: 0 0 2px 0;
131
+ border-style: solid;
132
+ border-color: transparent;
133
+ min-width: 80px;
134
+ padding: 0 12px;
135
+
136
+ &:hover {
137
+ border-color: var(--grey-l-3);
138
+ color: var(--text);
139
+ }
140
+
141
+ &.v-tab--selected {
142
+ border-color: var(--primary);
143
+ color: var(--primary);
144
+
145
+ &.v-btn--disabled {
146
+ border-color: var(--grey-l-2);
147
+ }
148
+ }
149
+
150
+ &:after {
151
+ content: '';
152
+ position: absolute;
153
+ top: 0;
154
+ left: 0;
155
+ display: block;
156
+ width: 100%;
157
+ border-radius: var(--border-radius);
158
+ border: 2px solid var(--focus);
159
+ opacity: 0;
160
+ }
161
+ }
162
+ }
76
163
  }
77
164
  }
78
165
  }
@@ -135,43 +222,12 @@ body {
135
222
  display: flex !important;
136
223
  font-family: var(--medium);
137
224
  letter-spacing: 0 !important;
138
- min-width: 80px;
139
- padding: 0 12px;
140
225
 
141
226
  &.v-btn {
142
227
  position: relative;
143
- border-width: 0 0 2px 0;
144
- border-style: solid;
145
- border-color: transparent;
146
228
  color: var(--grey-d-3);
147
229
  transition: all 0.1s;
148
230
 
149
- &:after {
150
- content: '';
151
- position: absolute;
152
- top: 0;
153
- left: 0;
154
- display: block;
155
- width: 100%;
156
- border-radius: var(--border-radius);
157
- border: 2px solid var(--focus);
158
- opacity: 0;
159
- }
160
-
161
- &:hover {
162
- border-color: var(--grey-l-3);
163
- color: var(--text);
164
- }
165
-
166
- &.v-tab--selected {
167
- border-color: var(--primary);
168
- color: var(--primary);
169
-
170
- &.v-btn--disabled {
171
- border-color: var(--grey-l-2);
172
- }
173
- }
174
-
175
231
  &.v-btn--disabled {
176
232
  color: var(--grey-l-2);
177
233
  }
@@ -187,128 +243,40 @@ body {
187
243
  width: 100%;
188
244
  }
189
245
 
190
- .vertical-window.v-window {
191
- padding: 10px 12px;
192
- border-bottom: 1px solid var(--grey-l-5);
193
- border-right: 1px solid var(--grey-l-5);
194
- border-top: 1px solid var(--grey-l-5);
246
+ .v-tabs-bar {
247
+ flex: none;
248
+ height: fit-content;
249
+ height: -moz-max-content;
250
+ max-height: fit-content;
251
+ max-height: -moz-max-content;
252
+ z-index: 1;
253
+ }
195
254
 
196
- &--no-padding {
197
- padding: 0 !important;
198
- }
255
+ .v-window-item {
256
+ height: 100%;
199
257
  }
200
258
 
201
- // :deep() {
202
- // .ld-tabs {
203
- // .v-tabs {
204
- // &--vertical {
205
- // background: var(--grey-l-6);
206
-
207
- // .v-tab {
208
- // justify-content: flex-start;
209
- // border: 1px solid var(--grey-l-5);
210
- // border-bottom: none;
211
- // border-radius: 0 !important;
212
- // text-transform: none !important;
213
- // width: 100%;
214
- // min-width: auto !important;
215
-
216
- // &--selected {
217
- // background-color: var(--white);
218
- // border-right-color: transparent;
219
- // }
220
- // }
221
-
222
- // .v-tab:last-child {
223
- // border-bottom: 1px solid var(--grey-l-5) !important;
224
- // }
225
-
226
- // .v-slide-group__content {
227
- // flex-flow: column nowrap;
228
- // height: 100% !important;
229
- // width: 100% !important;
230
-
231
- // .v-btn__content {
232
- // text-overflow: ellipsis;
233
- // display: inline-flex;
234
- // justify-content: flex-start;
235
- // gap: 4px;
236
- // white-space: nowrap;
237
- // overflow: hidden;
238
- // }
239
- // }
240
- // }
241
- // }
242
-
243
- // .v-tabs.v-tabs--vertical.no-header {
244
- // .v-tab:first-child {
245
- // border-top: none;
246
- // }
247
- // }
248
-
249
-
250
- // }
251
- // .v-window {
252
- // &.mobile {
253
- // .tg-field {
254
- // & > .v-row {
255
- // & > .v-col {
256
- // flex: 1 0 0 !important;
257
- // }
258
- // }
259
- // .text-viewer-wrapper {
260
- // .v-col {
261
- // flex: 1 0 0 !important;
262
- // }
263
- // }
264
- // }
265
- // }
266
- // }
267
-
268
- // .v-slide-group--vertical {
269
- // border-color: var(--grey-l-5);
270
- // border: 1px;
271
- // }
272
-
273
- // .v-slide-group--vertical .v-tab__slider {
274
- // width: 0px;
275
- // }
276
-
277
- // .v-tabs-bar {
278
- // flex: none;
279
- // height: fit-content;
280
- // height: -moz-max-content;
281
- // max-height: fit-content;
282
- // max-height: -moz-max-content;
283
- // z-index: 1;
284
- // }
285
-
286
- // .v-window-item {
287
- // height: 100%;
288
- // }
289
-
290
- // .ld-tabs-mobile {
291
- // &.hide-tabs {
292
- // .v-tab {
293
- // display: none !important;
294
- // }
295
- // }
296
-
297
- // &.hide-body {
298
- // .v-slide-group {
299
- // width: 100% !important;
300
- // }
301
- // .v-window {
302
- // display: none !important;
303
- // }
304
- // }
305
- // }
306
- // .v-tabs-mobile {
307
- // .v-slide-group__content {
308
- // .v-btn__content {
309
- // display: block !important;
310
- // }
311
- // }
312
- // }
313
- // }
259
+ .ld-tabs-mobile {
260
+ &.hide-tabs {
261
+ .v-tab {
262
+ display: none !important;
263
+ }
264
+ }
265
+
266
+ &.hide-body {
267
+ .v-slide-group {
268
+ width: 100% !important;
269
+ }
270
+ .v-window {
271
+ display: none !important;
272
+ }
273
+ }
274
+ }
275
+ .v-tabs-mobile {
276
+ .v-slide-group__content {
277
+ .v-btn__content {
278
+ display: block !important;
279
+ }
280
+ }
281
+ }
314
282
  }
@@ -40,6 +40,7 @@
40
40
 
41
41
  @use 'vuetify' with (
42
42
  $color-pack: false,
43
+ $body-font-family: "Roboto Regular",
43
44
  );
44
45
 
45
46
  body {
@@ -68,8 +69,8 @@ body {
68
69
  }
69
70
 
70
71
  .v-card {
71
- &.v-card--variant-elevated {
72
- box-shadow: var(--shadow-xl);
72
+ &.v-card--variant-elevated:not(.elevation-0) {
73
+ box-shadow: var(--shadow-xl) !important;
73
74
  }
74
75
  }
75
76
  }
@@ -86,6 +87,7 @@ body {
86
87
  .v-list-item {
87
88
  color: var(--grey-d-3);
88
89
  transition: all 0.1s;
90
+ min-height: var(--input-s);
89
91
  &:hover {
90
92
  background-color: var(--grey-l-6);
91
93
  color: var(--text);
@@ -101,6 +103,7 @@ body {
101
103
  .v-list-item__content {
102
104
  .v-list-item-title {
103
105
  font-family: var(--regular);
106
+ font-size: var(--text-body-s);
104
107
  font-weight: 500;
105
108
  }
106
109
  .v-list-item-subtitle {
@@ -7,6 +7,7 @@ export interface IDialogProps {
7
7
  size?: string;
8
8
  width?: string | number;
9
9
  height?: string | number;
10
+ css?: string;
10
11
  align?: 'left' | 'right';
11
12
  }
12
13
 
@@ -69,12 +70,14 @@ export interface IModalInfo {
69
70
  cancelTitle?: string;
70
71
  okResult?: number | string | boolean | IModalResult<IViewModel<number | string>>;
71
72
  cancelResult?: number | string | boolean | IModalResult<IViewModel<number | string>>;
73
+ settedResult?: boolean;
72
74
  hideFooter?: boolean;
73
75
  size?: DialogSize;
74
76
  width?: number | string;
75
77
  height?: number | string;
76
78
  fullHeight?: boolean;
77
79
  align?: 'left' | 'right';
80
+ css?: string;
78
81
  closable?: boolean;
79
82
  expandable?: boolean;
80
83
  minimizable?: boolean;
@@ -127,81 +130,63 @@ export class Dialog {
127
130
  public content?: string,
128
131
  public pressEnterAsOk?: boolean,
129
132
  public pressEscAsCancel?: boolean,
130
- public hostObject?: IHostObject
133
+ public hostObject?: IHostObject,
134
+ public size?: 's' | 'm' | 'l',
135
+ public width?: string | number,
136
+ public height?: string | number,
137
+ public css?: string,
138
+ public align?: 'left' | 'right'
131
139
  ) {}
132
140
  }
133
141
 
142
+ export class InteractiveDialog extends Dialog {
143
+ loading: boolean;
144
+ fullHeight: boolean;
145
+ closable: boolean;
146
+ hideFooter: boolean;
147
+ constructor(data: IInterativeDialogProps) {}
148
+ }
149
+
134
150
  export class AlertDialog extends Dialog {
135
- constructor(data: {
136
- title: string;
137
- content: string;
138
- pressEnterAsOk?: boolean;
139
- pressEscAsCancel?: boolean;
140
- hostObject?: IHostObject;
141
- });
151
+ constructor(data: IDialogProps) {}
142
152
  }
143
153
 
144
154
  export class PromptDialog extends Dialog {
145
- width?: string;
146
- constructor(data: {
147
- title: string;
148
- width?: string;
149
- pressEnterAsOk?: boolean;
150
- pressEscAsCancel?: boolean;
151
- hostObject?: IHostObject;
152
- });
155
+ constructor(data: IDialogProps);
153
156
  }
154
157
 
155
- export class ConfirmDialog extends Dialog {
156
- okTitle?: string;
157
- cancelTitle?: string;
158
+ export class ConfirmDialog extends InteractiveDialog {
158
159
  okResult?: number | string | boolean;
159
160
  cancelResult?: number | string | boolean;
160
- constructor(data: {
161
- title: string;
162
- text: string;
163
- okTitle?: string;
164
- cancelTitle?: string;
165
- okResult?: number | string | boolean;
166
- cancelResult?: number | string | boolean;
167
- pressEnterAsOk?: boolean;
168
- pressEscAsCancel?: boolean;
169
- hostObject?: IHostObject;
170
- });
161
+ constructor(
162
+ data: IInterativeDialogProps & {
163
+ okResult?: number | string | boolean;
164
+ cancelResult?: number | string | boolean;
165
+ }
166
+ ) {}
171
167
  }
172
168
 
173
- export class InfoDialog extends Dialog {
169
+ export class InfoDialog extends InteractiveDialog {
174
170
  component: string;
175
171
  componentProps: Record<string, unknown>;
176
- width?: string;
177
- height?: string;
178
172
  fullHeight?: boolean;
179
- loading?: boolean;
180
- closable?: boolean;
181
173
  hideFooter?: boolean;
182
174
  minimizable?: boolean;
183
175
  description?: string;
184
176
  help?: boolean;
185
- constructor(data: {
186
- title: string;
187
- component: string;
188
- componentProps: Record<string, unknown>;
189
- width?: string;
190
- height?: string;
191
- fullHeight?: boolean;
192
- loading?: boolean;
193
- closable?: boolean;
194
- hideFooter?: boolean;
195
- minimizable?: boolean;
196
- description?: string;
197
- pressEnterAsOk?: boolean;
198
- pressEscAsCancel?: boolean;
199
- hostObject?: IHostObject;
200
- help?: boolean;
201
- });
177
+ constructor(
178
+ data: IInterativeDialogProps & {
179
+ component: string;
180
+ componentProps: Record<string, unknown>;
181
+ fullHeight?: boolean;
182
+ minimizable?: boolean;
183
+ description?: string;
184
+ help?: boolean;
185
+ }
186
+ );
202
187
  }
203
188
 
204
- export class SelectDialog<T> extends Dialog {
189
+ export class SelectDialog<T> extends InteractiveDialog {
205
190
  component: string;
206
191
  componentProps: {
207
192
  disabledItems: Array<T | number | string>;
@@ -219,53 +204,32 @@ export class SelectDialog<T> extends Dialog {
219
204
  multiselect?: boolean;
220
205
  [key: string]: unknown;
221
206
  };
222
- loading?: boolean;
223
- fullHeight?: boolean;
224
- width?: string | number;
225
- height?: string | number;
226
207
  selectAsOk?: boolean;
227
- okTitle?: string;
228
- cancelTitle?: string;
229
208
  help?: boolean;
230
- constructor(data: {
231
- title: string;
232
- component: string;
233
- componentProps: {
234
- disabledItems: Array<T | number | string>;
235
- selectedItems: Array<T | number | string>;
236
- searchable?: boolean;
237
- searchFields?: Array<string>;
238
- isTree?: boolean;
239
- multiselect?: boolean;
240
- [key: string]: unknown;
241
- };
242
- loading?: boolean;
243
- fullHeight?: boolean;
244
- width?: string | number;
245
- height?: string | number;
246
- selectAsOk?: boolean;
247
- okTitle?: string;
248
- cancelTitle?: string;
249
- pressEnterAsOk?: boolean;
250
- pressEscAsCancel?: boolean;
251
- hostObject?: IHostObject;
252
- help?: boolean;
253
- });
209
+ constructor(
210
+ data: IInterativeDialogProps & {
211
+ component: string;
212
+ componentProps: {
213
+ disabledItems: Array<T | number | string>;
214
+ selectedItems: Array<T | number | string>;
215
+ searchable?: boolean;
216
+ searchFields?: Array<string>;
217
+ isTree?: boolean;
218
+ multiselect?: boolean;
219
+ [key: string]: unknown;
220
+ };
221
+ selectAsOk?: boolean;
222
+ help?: boolean;
223
+ }
224
+ );
254
225
  }
255
226
 
256
- export class CreateEditDialog<T> extends Dialog {
227
+ export class CreateEditDialog<T> extends InteractiveDialog {
257
228
  component: string;
258
229
  componentProps: {
259
230
  model: T;
260
231
  [key: string]: unknown;
261
232
  };
262
- loading?: boolean;
263
- fullHeight?: boolean;
264
- width?: string | number;
265
- height?: string | number;
266
- hideFooter?: boolean;
267
- darkTitle?: boolean;
268
- closable?: boolean;
269
233
  expandable?: boolean;
270
234
  minimizable?: boolean;
271
235
  collapsedSize?: {
@@ -281,43 +245,30 @@ export class CreateEditDialog<T> extends Dialog {
281
245
  expanded?: boolean;
282
246
  description?: string;
283
247
  noModal?: boolean;
284
- okTitle?: string;
285
- cancelTitle?: string;
286
248
  help?: boolean;
287
- constructor(data: {
288
- title: string;
289
- component: string;
290
- componentProps: {
291
- model: T;
292
- [key: string]: unknown;
293
- };
294
- loading?: boolean;
295
- fullHeight?: boolean;
296
- width?: string | number;
297
- height?: string | number;
298
- hideFooter?: boolean;
299
- darkTitle?: boolean;
300
- closable?: boolean;
301
- expandable?: boolean;
302
- minimizable?: boolean;
303
- collapsedSize?: {
304
- width: string | number;
305
- height: string | number;
306
- noModal?: boolean;
307
- };
308
- expandedSize?: {
309
- width: string | number;
310
- height: string | number;
249
+ constructor(
250
+ data: IInterativeDialogProps & {
251
+ component: string;
252
+ componentProps: {
253
+ model: T;
254
+ [key: string]: unknown;
255
+ };
256
+ expandable?: boolean;
257
+ minimizable?: boolean;
258
+ collapsedSize?: {
259
+ width: string | number;
260
+ height: string | number;
261
+ noModal?: boolean;
262
+ };
263
+ expandedSize?: {
264
+ width: string | number;
265
+ height: string | number;
266
+ noModal?: boolean;
267
+ };
268
+ expanded?: boolean;
269
+ description?: string;
311
270
  noModal?: boolean;
312
- };
313
- expanded?: boolean;
314
- description?: string;
315
- noModal?: boolean;
316
- okTitle?: string;
317
- cancelTitle?: string;
318
- pressEnterAsOk?: boolean;
319
- pressEscAsCancel?: boolean;
320
- hostObject?: IHostObject;
321
- help?: boolean;
322
- });
271
+ help?: boolean;
272
+ }
273
+ );
323
274
  }
@@ -0,0 +1,9 @@
1
+ export interface IDefaults {
2
+ global: Record<string, unknown>;
3
+ VToolbar: Record<string, unknown>;
4
+ VTooltip: Record<string, unknown>;
5
+ VContainer: Record<string, unknown>;
6
+ VBtn: Record<string, unknown>;
7
+ VList: Record<string, unknown>;
8
+ VMenu: Record<string, unknown>;
9
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ldmjs/ui",
3
- "version": "2.1.4",
3
+ "version": "2.1.6",
4
4
  "description": "ldm ui",
5
5
  "main": "dist/index.js",
6
6
  "engines": {
@@ -32,7 +32,9 @@
32
32
  "@babel/plugin-transform-typescript": "7.28.0",
33
33
  "@babel/preset-env": "7.28.3",
34
34
  "@babel/preset-typescript": "7.27.1",
35
+ "@ldmjs/datatable": "2.0.2",
35
36
  "@ldmjs/editor": "2.0.0",
37
+ "@ldmjs/treeview": "2.0.3",
36
38
  "@popperjs/core": "2.11.8",
37
39
  "@types/babel__core": "7.20.5",
38
40
  "@types/babel__plugin-transform-runtime": "7.9.5",
@@ -100,9 +102,7 @@
100
102
  "webpack-plugin-vuetify": "3.1.2"
101
103
  },
102
104
  "dependencies": {
103
- "@ldmjs/core": "2.0.1",
104
- "@ldmjs/datatable": "2.0.1",
105
- "@ldmjs/treeview": "2.0.3"
105
+ "@ldmjs/core": "2.0.1"
106
106
  },
107
107
  "volta": {
108
108
  "node": "22.15.0",