@finema/finework-layer 0.0.15 → 0.0.17

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.
package/app/app.config.ts CHANGED
@@ -1,297 +1,297 @@
1
- export default defineAppConfig({
2
- core: {
3
- is_thai_year: false,
4
- is_thai_month: false,
5
- date_format: 'dd MMM yyyy',
6
- month_format: 'MMM yyyy',
7
- date_time_format: 'dd/MM/yyyy HH:mm น.',
8
- color: '#335AFF',
9
- limit_per_page: 15,
10
- locale: 'en',
11
- },
12
- ui: {
13
- colors: {
14
- white: 'white',
15
- },
16
- dialog: {
17
- icons: {
18
- iconInfo: 'material-symbols:info-outline',
19
- iconConfirm: 'material-symbols:info-outline',
20
- },
21
- slots: {
22
- iconWrapper: 'rounded-full size-[48px] flex justify-center items-center',
23
- icon: 'size-6',
24
- base: [
25
- 'rounded-xl flex-col justify-start items-start space-x-0 bg-[url(/dialog-bg.png)] bg-no-repeat bg-top-left bg-size-[220px]',
26
- 'max-sm:top-auto max-sm:bottom-0 max-sm:left-0 max-sm:right-0 max-sm:translate-x-0 max-sm:translate-y-0 max-sm:w-full max-sm:max-w-full max-sm:rounded-b-none max-sm:rounded-t-xl',
27
- ],
28
- overlay: 'bg-black/50 backdrop-blur',
29
- description: 'whitespace-pre-line',
30
- wrapper: 'justify-start items-start',
31
- title: 'mt-4',
32
- buttonGroup: 'justify-center w-full mt-6',
33
- cancelButton: 'w-full justify-center',
34
- confirmButton: 'w-full justify-center',
35
- },
36
- variants: {
37
- color: {
38
- success: {
39
- icon: 'text-success',
40
- iconWrapper: 'bg-success/10',
41
- },
42
- info: {
43
- icon: 'text-info',
44
- iconWrapper: 'bg-info/10',
45
- },
46
- warning: {
47
- icon: 'text-warning',
48
- iconWrapper: 'bg-warning/10',
49
- },
50
- error: {
51
- icon: 'text-error',
52
- iconWrapper: 'bg-error/10',
53
- },
54
- loading: {
55
- icon: 'text-primary size-10',
56
- base: 'max-w-[400px] bg-none',
57
- wrapper: 'justify-center',
58
- },
59
- },
60
- confirm: {
61
- true: {},
62
- false: {},
63
- },
64
- },
65
- },
66
- slideover: {
67
- slots: {
68
- overlay: 'bg-black/50 backdrop-blur',
69
- },
70
- },
71
- toast: {
72
- slots: {
73
- root: 'rounded-xl',
74
- icon: 'size-8',
75
- },
76
- },
77
- card: {
78
- slots: {
79
- root: '!bg-white',
80
- header: 'text-lg font-bold',
81
- },
82
- variants: {
83
- variant: {
84
- soft: {
85
- root: 'bg-elevated/50 divide-y divide-default shadow-[0px_2px_14px_0px_rgba(0,0,0,0.06)]',
86
- },
87
- },
88
- },
89
- },
90
- switch: {
91
- slots: {
92
- base: 'cursor-pointer',
93
- label: 'cursor-pointer',
94
- },
95
- },
96
- breadcrumb: {
97
- variants: {
98
- active: {
99
- true: {
100
- link: 'text-black font-semibold',
101
- },
102
- },
103
- },
104
- },
105
- tabs: {
106
- slots: {
107
- label: 'whitespace-nowrap',
108
- list: 'relative flex p-1 group overflow-x-auto overflow-y-hidden scrollbar-hide',
109
- trigger: 'data-[state=active]:font-bold cursor-pointer whitespace-nowrap shrink-0',
110
- },
111
- defaultVariants: {
112
- size: 'xl',
113
- },
114
- },
115
- modal: {
116
- slots: {
117
- overlay: 'bg-black/50 backdrop-blur',
118
- title: 'text-xl font-bold',
119
- content: [
120
- 'divide-none overflow-visible flex flex-col',
121
- 'max-sm:top-auto max-sm:bottom-0 max-sm:left-0 max-sm:right-0 max-sm:translate-x-0 max-sm:translate-y-0 max-sm:w-full max-sm:max-w-full max-sm:h-auto max-sm:max-h-[90dvh] max-sm:rounded-b-none max-sm:rounded-t-lg',
122
- ],
123
- body: '!pt-0 overflow-y-auto flex-1 overflow-x-visible',
124
- footer: 'w-full',
125
- },
126
- variants: {
127
- fullscreen: {
128
- false: {
129
- content: 'overflow-visible',
130
- },
131
- },
132
- },
133
- },
134
- pagination: {
135
- slots: {
136
- first: 'disabled:hidden',
137
- prev: 'disabled:hidden',
138
- next: 'disabled:hidden',
139
- last: 'disabled:hidden',
140
- },
141
- },
142
- table: {
143
- slots: {
144
- root: 'rounded-t-md rounded-b-md bg-white',
145
- captionContainer: 'hidden',
146
- paginationInfo: 'text-gray-600',
147
- paginationContainer: 'items-center flex-col lg:flex-row gap-4',
148
- thead: 'bg-primary',
149
- th: 'text-[#222222] bg-white whitespace-nowrap',
150
- td: 'text-[#222222]',
151
- },
152
- variants: {
153
- pinned: {
154
- true: {
155
- th: 'sticky bg-gray-100 data-[pinned=left]:left-0 data-[pinned=right]:right-0 z-[100] ',
156
- td: 'sticky bg-gray-50 data-[pinned=left]:left-0 data-[pinned=right]:right-0 ',
157
- },
158
- },
159
- sticky: {
160
- true: {
161
- thead: 'sticky top-0 inset-x-0 bg-primary z-[1] backdrop-blur',
162
- tfoot: 'sticky bottom-0 inset-x-0 bg-white z-[1] backdrop-blur',
163
- },
164
- },
165
- },
166
- },
167
- formField: {
168
- slots: {
169
- label: 'font-bold',
170
- },
171
- },
172
- input: {
173
- variants: {
174
- size: {
175
- xl: {
176
- base: 'py-2.5 disabled:bg-[#F5F5F5] disabled:text-[#737373] disabled:cursor-not-allowed',
177
- },
178
- },
179
- },
180
- defaultVariants: {
181
- size: 'xl',
182
- },
183
- },
184
- inputNumber: {
185
- variants: {
186
- size: {
187
- xl: 'py-2.5 disabled:bg-[#F5F5F5] disabled:text-[#737373] disabled:cursor-not-allowed',
188
- },
189
- },
190
- defaultVariants: {
191
- size: 'xl',
192
- },
193
- },
194
- inputTags: {
195
- variants: {
196
- size: {
197
- xl: {
198
- base: 'py-2.5 disabled:bg-[#F5F5F5] disabled:text-[#737373] disabled:cursor-not-allowed w-full',
199
- },
200
- },
201
- },
202
- defaultVariants: {
203
- size: 'xl',
204
- },
205
- },
206
- dateTime: {
207
- slots: {
208
- clearIcon: 'size-6 mr-3',
209
- },
210
- },
211
- selectMenu: {
212
- slots: {
213
- base: 'cursor-pointer w-full',
214
- item: 'cursor-pointer max-sm:h-14',
215
- clearIcon: 'size-6',
216
- },
217
- variants: {
218
- size: {
219
- xl: {
220
- base: 'py-2.5 disabled:bg-[#F5F5F5] disabled:text-[#737373] disabled:cursor-not-allowed',
221
- },
222
- },
223
- },
224
- defaultVariants: {
225
- size: 'xl',
226
- },
227
- },
228
- textarea: {
229
- variants: {
230
- size: {
231
- xl: {
232
- base: 'py-2.5 disabled:bg-[#F5F5F5] disabled:text-[#737373] disabled:cursor-not-allowed',
233
- },
234
- },
235
- },
236
- defaultVariants: {
237
- size: 'xl',
238
- },
239
- },
240
- button: {
241
- slots: {
242
- base: ['rounded-lg cursor-pointer'],
243
- },
244
- variants: {
245
- size: {
246
- xl: {
247
- base: 'py-2.5 font-semibold',
248
- },
249
- },
250
- },
251
- compoundVariants: [
252
- {
253
- color: 'white',
254
- variant: 'solid',
255
- class: 'text-black',
256
- },
257
- ],
258
- defaultVariants: {
259
- size: 'xl',
260
- },
261
- },
262
- stepper: {
263
- variants: {
264
- size: {
265
- xs: {
266
- trigger: 'size-8',
267
- icon: 'size-6',
268
- title: 'text-base font-bold',
269
- description: 'text-sm',
270
- wrapper: 'mt-1.5',
271
- },
272
- },
273
- },
274
- defaultVariants: {
275
- size: 'xs',
276
- },
277
- },
278
- dropdownMenu: {
279
- slots: {
280
- content: 'cursor-pointer w-full',
281
- item: 'cursor-pointer max-sm:h-14',
282
- clearIcon: 'size-6',
283
- },
284
- variants: {
285
- size: {
286
- lg: {
287
- content: 'text-sm py-2.5 disabled:bg-[#F5F5F5] disabled:text-[#737373] disabled:cursor-not-allowed',
288
- },
289
- },
290
- },
291
- defaultVariants: {
292
- size: 'lg',
293
- },
294
- },
295
-
296
- },
297
- })
1
+ export default defineAppConfig({
2
+ core: {
3
+ is_thai_year: false,
4
+ is_thai_month: false,
5
+ date_format: 'dd MMM yyyy',
6
+ month_format: 'MMM yyyy',
7
+ date_time_format: 'dd/MM/yyyy HH:mm น.',
8
+ color: '#335AFF',
9
+ limit_per_page: 15,
10
+ locale: 'en',
11
+ },
12
+ ui: {
13
+ colors: {
14
+ white: 'white',
15
+ },
16
+ dialog: {
17
+ icons: {
18
+ iconInfo: 'material-symbols:info-outline',
19
+ iconConfirm: 'material-symbols:info-outline',
20
+ },
21
+ slots: {
22
+ iconWrapper: 'rounded-full size-[48px] flex justify-center items-center',
23
+ icon: 'size-6',
24
+ base: [
25
+ 'rounded-xl flex-col justify-start items-start space-x-0 bg-[url(/dialog-bg.png)] bg-no-repeat bg-top-left bg-size-[220px]',
26
+ 'max-sm:top-auto max-sm:bottom-0 max-sm:left-0 max-sm:right-0 max-sm:translate-x-0 max-sm:translate-y-0 max-sm:w-full max-sm:max-w-full max-sm:rounded-b-none max-sm:rounded-t-xl',
27
+ ],
28
+ overlay: 'bg-black/50 backdrop-blur',
29
+ description: 'whitespace-pre-line',
30
+ wrapper: 'justify-start items-start',
31
+ title: 'mt-4',
32
+ buttonGroup: 'justify-center w-full mt-6',
33
+ cancelButton: 'w-full justify-center',
34
+ confirmButton: 'w-full justify-center',
35
+ },
36
+ variants: {
37
+ color: {
38
+ success: {
39
+ icon: 'text-success',
40
+ iconWrapper: 'bg-success/10',
41
+ },
42
+ info: {
43
+ icon: 'text-info',
44
+ iconWrapper: 'bg-info/10',
45
+ },
46
+ warning: {
47
+ icon: 'text-warning',
48
+ iconWrapper: 'bg-warning/10',
49
+ },
50
+ error: {
51
+ icon: 'text-error',
52
+ iconWrapper: 'bg-error/10',
53
+ },
54
+ loading: {
55
+ icon: 'text-primary size-10',
56
+ base: 'max-w-[400px] bg-none',
57
+ wrapper: 'justify-center',
58
+ },
59
+ },
60
+ confirm: {
61
+ true: {},
62
+ false: {},
63
+ },
64
+ },
65
+ },
66
+ slideover: {
67
+ slots: {
68
+ overlay: 'bg-black/50 backdrop-blur',
69
+ },
70
+ },
71
+ toast: {
72
+ slots: {
73
+ root: 'rounded-xl',
74
+ icon: 'size-8',
75
+ },
76
+ },
77
+ card: {
78
+ slots: {
79
+ root: '!bg-white',
80
+ header: 'text-lg font-bold',
81
+ },
82
+ variants: {
83
+ variant: {
84
+ soft: {
85
+ root: 'bg-elevated/50 divide-y divide-default shadow-[0px_2px_14px_0px_rgba(0,0,0,0.06)]',
86
+ },
87
+ },
88
+ },
89
+ },
90
+ switch: {
91
+ slots: {
92
+ base: 'cursor-pointer',
93
+ label: 'cursor-pointer',
94
+ },
95
+ },
96
+ breadcrumb: {
97
+ variants: {
98
+ active: {
99
+ true: {
100
+ link: 'text-black font-semibold',
101
+ },
102
+ },
103
+ },
104
+ },
105
+ tabs: {
106
+ slots: {
107
+ label: 'whitespace-nowrap',
108
+ list: 'relative flex p-1 group overflow-x-auto overflow-y-hidden scrollbar-hide',
109
+ trigger: 'data-[state=active]:font-bold cursor-pointer whitespace-nowrap shrink-0',
110
+ },
111
+ defaultVariants: {
112
+ size: 'xl',
113
+ },
114
+ },
115
+ modal: {
116
+ slots: {
117
+ overlay: 'bg-black/50 backdrop-blur',
118
+ title: 'text-xl font-bold',
119
+ content: [
120
+ 'divide-none overflow-visible flex flex-col',
121
+ 'max-sm:top-auto max-sm:bottom-0 max-sm:left-0 max-sm:right-0 max-sm:translate-x-0 max-sm:translate-y-0 max-sm:w-full max-sm:max-w-full max-sm:h-auto max-sm:max-h-[90dvh] max-sm:rounded-b-none max-sm:rounded-t-lg',
122
+ ],
123
+ body: '!pt-0 overflow-y-auto flex-1 overflow-x-visible',
124
+ footer: 'w-full',
125
+ },
126
+ variants: {
127
+ fullscreen: {
128
+ false: {
129
+ content: 'overflow-visible',
130
+ },
131
+ },
132
+ },
133
+ },
134
+ pagination: {
135
+ slots: {
136
+ first: 'disabled:hidden',
137
+ prev: 'disabled:hidden',
138
+ next: 'disabled:hidden',
139
+ last: 'disabled:hidden',
140
+ },
141
+ },
142
+ table: {
143
+ slots: {
144
+ root: 'rounded-t-md rounded-b-md bg-white',
145
+ captionContainer: 'hidden',
146
+ paginationInfo: 'text-gray-600',
147
+ paginationContainer: 'items-center flex-col lg:flex-row gap-4',
148
+ thead: 'bg-primary',
149
+ th: 'text-[#222222] bg-white whitespace-nowrap',
150
+ td: 'text-[#222222]',
151
+ },
152
+ variants: {
153
+ pinned: {
154
+ true: {
155
+ th: 'sticky bg-gray-100 data-[pinned=left]:left-0 data-[pinned=right]:right-0 z-[100] ',
156
+ td: 'sticky bg-gray-50 data-[pinned=left]:left-0 data-[pinned=right]:right-0 ',
157
+ },
158
+ },
159
+ sticky: {
160
+ true: {
161
+ thead: 'sticky top-0 inset-x-0 bg-primary z-[1] backdrop-blur',
162
+ tfoot: 'sticky bottom-0 inset-x-0 bg-white z-[1] backdrop-blur',
163
+ },
164
+ },
165
+ },
166
+ },
167
+ formField: {
168
+ slots: {
169
+ label: 'font-bold',
170
+ },
171
+ },
172
+ input: {
173
+ variants: {
174
+ size: {
175
+ xl: {
176
+ base: 'py-2.5 disabled:bg-[#F5F5F5] disabled:text-[#737373] disabled:cursor-not-allowed',
177
+ },
178
+ },
179
+ },
180
+ defaultVariants: {
181
+ size: 'xl',
182
+ },
183
+ },
184
+ inputNumber: {
185
+ variants: {
186
+ size: {
187
+ xl: 'py-2.5 disabled:bg-[#F5F5F5] disabled:text-[#737373] disabled:cursor-not-allowed',
188
+ },
189
+ },
190
+ defaultVariants: {
191
+ size: 'xl',
192
+ },
193
+ },
194
+ inputTags: {
195
+ variants: {
196
+ size: {
197
+ xl: {
198
+ base: 'py-2.5 disabled:bg-[#F5F5F5] disabled:text-[#737373] disabled:cursor-not-allowed w-full',
199
+ },
200
+ },
201
+ },
202
+ defaultVariants: {
203
+ size: 'xl',
204
+ },
205
+ },
206
+ dateTime: {
207
+ slots: {
208
+ clearIcon: 'size-6 mr-3',
209
+ },
210
+ },
211
+ selectMenu: {
212
+ slots: {
213
+ base: 'cursor-pointer w-full',
214
+ item: 'cursor-pointer max-sm:h-14',
215
+ clearIcon: 'size-6',
216
+ },
217
+ variants: {
218
+ size: {
219
+ xl: {
220
+ base: 'py-2.5 disabled:bg-[#F5F5F5] disabled:text-[#737373] disabled:cursor-not-allowed',
221
+ },
222
+ },
223
+ },
224
+ defaultVariants: {
225
+ size: 'xl',
226
+ },
227
+ },
228
+ textarea: {
229
+ variants: {
230
+ size: {
231
+ xl: {
232
+ base: 'py-2.5 disabled:bg-[#F5F5F5] disabled:text-[#737373] disabled:cursor-not-allowed',
233
+ },
234
+ },
235
+ },
236
+ defaultVariants: {
237
+ size: 'xl',
238
+ },
239
+ },
240
+ button: {
241
+ slots: {
242
+ base: ['rounded-lg cursor-pointer'],
243
+ },
244
+ variants: {
245
+ size: {
246
+ xl: {
247
+ base: 'py-2.5 font-semibold',
248
+ },
249
+ },
250
+ },
251
+ compoundVariants: [
252
+ {
253
+ color: 'white',
254
+ variant: 'solid',
255
+ class: 'text-black',
256
+ },
257
+ ],
258
+ defaultVariants: {
259
+ size: 'xl',
260
+ },
261
+ },
262
+ stepper: {
263
+ variants: {
264
+ size: {
265
+ xs: {
266
+ trigger: 'size-8',
267
+ icon: 'size-6',
268
+ title: 'text-base font-bold',
269
+ description: 'text-sm',
270
+ wrapper: 'mt-1.5',
271
+ },
272
+ },
273
+ },
274
+ defaultVariants: {
275
+ size: 'xs',
276
+ },
277
+ },
278
+ dropdownMenu: {
279
+ slots: {
280
+ content: 'cursor-pointer w-full',
281
+ item: 'cursor-pointer max-sm:h-14',
282
+ clearIcon: 'size-6',
283
+ },
284
+ variants: {
285
+ size: {
286
+ lg: {
287
+ content: 'text-sm py-2.5 disabled:bg-[#F5F5F5] disabled:text-[#737373] disabled:cursor-not-allowed',
288
+ },
289
+ },
290
+ },
291
+ defaultVariants: {
292
+ size: 'lg',
293
+ },
294
+ },
295
+
296
+ },
297
+ })
package/app/app.vue CHANGED
@@ -1,10 +1,10 @@
1
- <template>
2
- <App
3
- :toaster="{
4
- position: 'top-right',
5
- progress: false,
6
- }"
7
- >
8
- <NuxtPage />
9
- </App>
10
- </template>
1
+ <template>
2
+ <App
3
+ :toaster="{
4
+ position: 'top-right',
5
+ progress: false,
6
+ }"
7
+ >
8
+ <NuxtPage />
9
+ </App>
10
+ </template>
@@ -1,29 +1,29 @@
1
- <template>
2
- <Button
3
- size="lg"
4
- variant="ghost"
5
- :icon="icon"
6
- :color="color"
7
- square
8
- :disabled="disabled"
9
- :loading="loading"
10
- :to="to"
11
- @click="$emit('click')"
12
- />
13
- </template>
14
-
15
- <script lang="ts" setup>
16
- defineEmits<{
17
- (e: 'click'): void
18
- }>()
19
-
20
- withDefaults(defineProps<{
21
- to?: string
22
- icon: string
23
- color?: 'neutral' | 'error' | 'primary' | 'success' | 'warning' | 'info'
24
- disabled?: boolean
25
- loading?: boolean
26
- }>(), {
27
- color: 'neutral',
28
- })
29
- </script>
1
+ <template>
2
+ <Button
3
+ size="lg"
4
+ variant="ghost"
5
+ :icon="icon"
6
+ :color="color"
7
+ square
8
+ :disabled="disabled"
9
+ :loading="loading"
10
+ :to="to"
11
+ @click="$emit('click')"
12
+ />
13
+ </template>
14
+
15
+ <script lang="ts" setup>
16
+ defineEmits<{
17
+ (e: 'click'): void
18
+ }>()
19
+
20
+ withDefaults(defineProps<{
21
+ to?: string
22
+ icon: string
23
+ color?: 'neutral' | 'error' | 'primary' | 'success' | 'warning' | 'info'
24
+ disabled?: boolean
25
+ loading?: boolean
26
+ }>(), {
27
+ color: 'neutral',
28
+ })
29
+ </script>