nuxt-hs-ui 1.0.1

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 (54) hide show
  1. package/README.md +4 -0
  2. package/dist/module.cjs +5 -0
  3. package/dist/module.d.mts +8 -0
  4. package/dist/module.d.ts +8 -0
  5. package/dist/module.json +9 -0
  6. package/dist/module.mjs +92 -0
  7. package/dist/runtime/components/hs-fc/btn/index.vue +508 -0
  8. package/dist/runtime/components/hs-fc/btn/line-loading.vue +125 -0
  9. package/dist/runtime/components/hs-fc/hoge +0 -0
  10. package/dist/runtime/components/hs-ui/accordion.vue +93 -0
  11. package/dist/runtime/components/hs-ui/aspect-box.vue +78 -0
  12. package/dist/runtime/components/hs-ui/block-loading.vue +210 -0
  13. package/dist/runtime/components/hs-ui/card-item.vue +136 -0
  14. package/dist/runtime/components/hs-ui/card.vue +48 -0
  15. package/dist/runtime/components/hs-ui/container.vue +46 -0
  16. package/dist/runtime/components/hs-ui/dialog/index.type.d.ts +48 -0
  17. package/dist/runtime/components/hs-ui/dialog/index.type.js +57 -0
  18. package/dist/runtime/components/hs-ui/dialog/index.vue +353 -0
  19. package/dist/runtime/components/hs-ui/modal/bg.vue +90 -0
  20. package/dist/runtime/components/hs-ui/modal/index.vue +203 -0
  21. package/dist/runtime/components/hs-ui/modal/use-ui-modal.d.ts +20 -0
  22. package/dist/runtime/components/hs-ui/modal/use-ui-modal.js +74 -0
  23. package/dist/runtime/components/hs-ui/toast/index.type.d.ts +24 -0
  24. package/dist/runtime/components/hs-ui/toast/index.type.js +7 -0
  25. package/dist/runtime/components/hs-ui/toast/index.vue +355 -0
  26. package/dist/runtime/components/hs-ui/window-loader.vue +185 -0
  27. package/dist/runtime/components/v-test.vue +57 -0
  28. package/dist/runtime/composables/use-hs-form-focus.d.ts +10 -0
  29. package/dist/runtime/composables/use-hs-form-focus.js +29 -0
  30. package/dist/runtime/composables/use-hs-multi-lang.d.ts +9 -0
  31. package/dist/runtime/composables/use-hs-multi-lang.js +21 -0
  32. package/dist/runtime/composables/use-hs-ui-dialog.d.ts +22 -0
  33. package/dist/runtime/composables/use-hs-ui-dialog.js +43 -0
  34. package/dist/runtime/composables/use-hs-ui-toast.d.ts +20 -0
  35. package/dist/runtime/composables/use-hs-ui-toast.js +55 -0
  36. package/dist/runtime/composables/use-hs-ui-window-loader.d.ts +11 -0
  37. package/dist/runtime/composables/use-hs-ui-window-loader.js +21 -0
  38. package/dist/runtime/lib/class-style.d.ts +8 -0
  39. package/dist/runtime/lib/class-style.js +59 -0
  40. package/dist/runtime/lib/com.d.ts +14 -0
  41. package/dist/runtime/lib/com.js +25 -0
  42. package/dist/runtime/lib/multi-lang.d.ts +9 -0
  43. package/dist/runtime/lib/multi-lang.js +75 -0
  44. package/dist/runtime/lib/number.d.ts +16 -0
  45. package/dist/runtime/lib/number.js +101 -0
  46. package/dist/runtime/lib/prefix.d.ts +2 -0
  47. package/dist/runtime/lib/prefix.js +19 -0
  48. package/dist/runtime/lib/theme.d.ts +2 -0
  49. package/dist/runtime/lib/theme.js +21 -0
  50. package/dist/runtime/server/tsconfig.json +3 -0
  51. package/dist/runtime/style.css +1 -0
  52. package/dist/types.d.mts +17 -0
  53. package/dist/types.d.ts +17 -0
  54. package/package.json +82 -0
package/README.md ADDED
@@ -0,0 +1,4 @@
1
+
2
+ # Hare-Systems NUXT UI Pack
3
+
4
+ .....
@@ -0,0 +1,5 @@
1
+ module.exports = function(...args) {
2
+ return import('./module.mjs').then(m => m.default.call(this, ...args))
3
+ }
4
+ const _meta = module.exports.meta = require('./module.json')
5
+ module.exports.getMeta = () => Promise.resolve(_meta)
@@ -0,0 +1,8 @@
1
+ import * as _nuxt_schema from '@nuxt/schema';
2
+
3
+ interface ModuleOptions {
4
+ prefix: 'tw-' | '';
5
+ }
6
+ declare const _default: _nuxt_schema.NuxtModule<ModuleOptions>;
7
+
8
+ export { type ModuleOptions, _default as default };
@@ -0,0 +1,8 @@
1
+ import * as _nuxt_schema from '@nuxt/schema';
2
+
3
+ interface ModuleOptions {
4
+ prefix: 'tw-' | '';
5
+ }
6
+ declare const _default: _nuxt_schema.NuxtModule<ModuleOptions>;
7
+
8
+ export { type ModuleOptions, _default as default };
@@ -0,0 +1,9 @@
1
+ {
2
+ "name": "nuxt-hs-ui",
3
+ "configKey": "hsui",
4
+ "version": "1.0.1",
5
+ "builder": {
6
+ "@nuxt/module-builder": "0.7.1",
7
+ "unbuild": "2.0.0"
8
+ }
9
+ }
@@ -0,0 +1,92 @@
1
+ import { defineNuxtModule, createResolver, addComponentsDir, addImportsDir, installModule } from '@nuxt/kit';
2
+ import { defu } from 'defu';
3
+
4
+ const twConfig = {
5
+ prefix: "",
6
+ plugins: [
7
+ // plugin(function ({ addVariant }) {
8
+ // addVariant('hover', '@media(hover:hover){ &:where(:any-link, :enabled, summary):hover }');
9
+ // }),
10
+ ],
11
+ theme: {
12
+ // screens: {
13
+ // 400: '400px',
14
+ // 600: '600px',
15
+ // sm: '640px',
16
+ // md: '768px',
17
+ // 800: '800px',
18
+ // 1000: '1000px',
19
+ // lg: '1024px',
20
+ // 1200: '1200px',
21
+ // xl: '1280px',
22
+ // 1400: '1400px',
23
+ // '2xl': '1536px',
24
+ // 1600: '1600px',
25
+ // 1800: '1800px',
26
+ // },
27
+ fontFamily: {
28
+ // // en: ["'Archivo Black'", 'sans-serif'],
29
+ // body: ["'Noto Sans JP'", 'sans-serif'],
30
+ // // abel: ["'Abel'", 'sans-serif'],
31
+ },
32
+ extend: {
33
+ colors: {
34
+ fore1: "#0d2b13",
35
+ main0: "#192a61",
36
+ main1: "#1c03a2",
37
+ main2: "#4443ff",
38
+ main3: "#628cff",
39
+ accent1: "#ff8000",
40
+ accent2: "#ffac7c",
41
+ info: "#2badd5",
42
+ link: "#6200EE",
43
+ download: "#11691f",
44
+ success: "#2bb60c",
45
+ warn: "#EAB000",
46
+ error: "#d80329",
47
+ dark: "#224466",
48
+ back: "#EDF2F7"
49
+ }
50
+ }
51
+ }
52
+ };
53
+
54
+ const module = defineNuxtModule({
55
+ meta: {
56
+ name: "nuxt-hs-ui",
57
+ configKey: "hsui"
58
+ },
59
+ // Default configuration options of the Nuxt module
60
+ defaults: {
61
+ prefix: ""
62
+ },
63
+ async setup(options, nuxt) {
64
+ const { resolve } = createResolver(import.meta.url);
65
+ nuxt.options.runtimeConfig.public.hsui = defu(nuxt.options.runtimeConfig.public.hsui, {
66
+ prefix: options.prefix || ""
67
+ });
68
+ addComponentsDir({
69
+ path: resolve("runtime/components")
70
+ });
71
+ addImportsDir(resolve("runtime/composables"));
72
+ nuxt.options.css.push(resolve("runtime/style.css"));
73
+ await installModule("@nuxtjs/tailwindcss", {
74
+ // module configuration
75
+ exposeConfig: true,
76
+ config: {
77
+ ...twConfig,
78
+ ...options,
79
+ content: {
80
+ files: [
81
+ //
82
+ resolve("./runtime/components/**/*.{vue,mjs,ts}"),
83
+ resolve("./runtime/*.{mjs,js,ts}")
84
+ ]
85
+ }
86
+ }
87
+ });
88
+ await installModule("@pinia/nuxt");
89
+ }
90
+ });
91
+
92
+ export { module as default };
@@ -0,0 +1,508 @@
1
+ <script setup lang="ts">
2
+ /* ----------------------------------------------------------------------------
3
+ src\runtime\components\hs-fc\btn\index.vue
4
+ // ----------------------------------------------------------------------------
5
+ HsFcBtn
6
+ HsFcBtnHsFcBtn
7
+ ----------------------------------------------------------------------------- */
8
+
9
+ // [ vue ]
10
+ import { computed, ref } from 'vue';
11
+ // [ NUXT ]
12
+ import { useId } from '#imports';
13
+ // [ vueuse ]
14
+ import { useHsFormFocus } from '../../../composables/use-hs-form-focus';
15
+ // ----------------------------------------------------------------------------
16
+ // [ tailwind ]
17
+ import { extendTailwindMerge } from 'tailwind-merge';
18
+ import { type ClassType, ClassTypeToString } from '../../../lib/class-style';
19
+ import { GetPrefix, RemovePrefix } from '../../../lib/prefix';
20
+ // ----------------------------------------------------------------------------
21
+ import type { Theme } from '../../../lib/theme';
22
+ // ----------------------------------------------------------------------------
23
+
24
+ const twMerge = extendTailwindMerge({
25
+ prefix: GetPrefix(),
26
+ });
27
+
28
+ // ----------------------------------------------------------------------------
29
+
30
+ interface Props {
31
+ class?: ClassType;
32
+ classInner?: ClassType;
33
+ disabled?: boolean;
34
+ to?: string;
35
+ theme?: Theme;
36
+ variant?: 'outlined' | 'flat';
37
+ textWrap?: boolean;
38
+ textAlign?: 'left' | 'center' | 'right';
39
+ loading?: boolean;
40
+ }
41
+ const props = withDefaults(defineProps<Props>(), {
42
+ class: '',
43
+ classInner: '',
44
+ to: undefined,
45
+ theme: 'accent1',
46
+ variant: 'outlined',
47
+ disabled: false,
48
+ textWrap: false,
49
+ align: 'center',
50
+ loading: false,
51
+ textAlign: 'center',
52
+ });
53
+
54
+ type InputFocusEventArg = {
55
+ elm: HTMLElement;
56
+ id: string;
57
+ };
58
+ type Emits = {
59
+ id: [id: string];
60
+ ref: [element: HTMLElement];
61
+ focus: [e: InputFocusEventArg];
62
+ blur: [e: InputFocusEventArg];
63
+ };
64
+ const emit = defineEmits<Emits>();
65
+ // ----------------------------------------------------------------------------
66
+ const id = useId();
67
+ emit('id', id);
68
+ // ----------------------------------------------------------------------------
69
+ // ----------------------------------------------------------------------------
70
+ // Base Design
71
+ // -----
72
+ const baseClass = RemovePrefix([
73
+ //
74
+ 'relative',
75
+ 'tw-relative',
76
+ 'inline-flex',
77
+ 'tw-inline-flex',
78
+ 'items-center',
79
+ 'tw-items-center',
80
+ 'py-2',
81
+ 'tw-py-2',
82
+ 'px-3',
83
+ 'tw-px-3',
84
+ 'w-auto',
85
+ 'leading-[1.2em]',
86
+ 'tw-leading-[1.2em]',
87
+ 'tw-w-auto',
88
+ 'max-w-full',
89
+ 'tw-max-w-full',
90
+ 'text-ellipsis',
91
+ 'tw-text-ellipsis',
92
+ 'overflow-hidden',
93
+ 'tw-overflow-hidden',
94
+ 'disabled:opacity-50',
95
+ 'tw-disabled:opacity-50',
96
+ 'disabled:pointer-events-none',
97
+ 'tw-disabled:pointer-events-none',
98
+ ]);
99
+ const baseClassForm = RemovePrefix([
100
+ //
101
+ 'border',
102
+ 'tw-border',
103
+ 'border-[1px]',
104
+ 'tw-border-[1px]',
105
+ 'border-main1',
106
+ 'tw-border-main1',
107
+ 'min-h-[44px]',
108
+ 'tw-min-h-[44px]',
109
+ 'rounded',
110
+ 'tw-rounded',
111
+ // `bg-transparent`,
112
+ // `tw-bg-transparent`,
113
+ ]);
114
+ const variableStyle = computed(() => {
115
+ if (props.variant === 'outlined') {
116
+ return RemovePrefix([
117
+ //
118
+ 'border-[2px]',
119
+ 'tw-border-[2px]',
120
+ 'bg-white',
121
+ 'tw-bg-white',
122
+ ]);
123
+ }
124
+ return [];
125
+ });
126
+ const align = computed(() => {
127
+ if (props.textAlign === 'left') {
128
+ return RemovePrefix([
129
+ //
130
+ 'justify-start',
131
+ 'tw-justify-start',
132
+ ]);
133
+ }
134
+ if (props.textAlign === 'right') {
135
+ return RemovePrefix([
136
+ //
137
+ 'justify-end',
138
+ 'tw-justify-end',
139
+ ]);
140
+ }
141
+ return RemovePrefix([
142
+ //
143
+ 'justify-center',
144
+ 'tw-justify-center',
145
+ ]);
146
+ });
147
+ const classStyle = computed(() => {
148
+ return twMerge(baseClass, baseClassForm, ...variableStyle.value, ...align.value, ClassTypeToString(props.class));
149
+ });
150
+ // ----------------------------------------------------------------------------
151
+ // Innder Design
152
+ // -----
153
+ const textWrapClass = computed(() => {
154
+ if (props.textWrap) {
155
+ return 'break-all text-wrap';
156
+ }
157
+ return '';
158
+ });
159
+ const classThisInner = computed(() => {
160
+ return twMerge(
161
+ 'max-h-full max-w-full text-ellipsis overflow-hidden',
162
+ textWrapClass.value,
163
+ ClassTypeToString(props.classInner)
164
+ );
165
+ });
166
+ // ----------------------------------------------------------------------------
167
+ // focus, blur Event
168
+ const vFormFocus = useHsFormFocus();
169
+ const imputElm = ref<HTMLElement | null>(null);
170
+ const setRef = (e: any) => {
171
+ imputElm.value = e;
172
+ emit('ref', e);
173
+ };
174
+ const onFocus = () => {
175
+ if (props.disabled) return;
176
+ const elm = imputElm.value;
177
+ if (elm === null) return;
178
+ vFormFocus.state.id = id;
179
+ emit('focus', { elm: elm, id: id });
180
+ };
181
+ const onBlur = () => {
182
+ if (props.disabled) return;
183
+ const elm = imputElm.value;
184
+ if (elm === null) return;
185
+ if (vFormFocus.state.id === id) {
186
+ vFormFocus.state.id = '';
187
+ }
188
+ emit('blur', { elm: elm, id: id });
189
+ };
190
+ // ----------------------------------------------------------------------------
191
+ // disabled
192
+ const disabled = computed(() => {
193
+ if (props.disabled) return true;
194
+ if (props.loading) return true;
195
+ return false;
196
+ });
197
+ // ----------------------------------------------------------------------------
198
+ </script>
199
+ <template>
200
+ <button
201
+ v-if="props.to === undefined"
202
+ :ref="(e:any)=>setRef(e)"
203
+ type="button"
204
+ class="HsFcBtn"
205
+ :class="[classStyle, `theme-${props.theme}`, `variant-${props.variant}`]"
206
+ :disabled="disabled"
207
+ ontouchstart=""
208
+ @focus="onFocus()"
209
+ @blur="onBlur()"
210
+ >
211
+ <div class="HsFcBtn--hover HsFcBtn--overlay" />
212
+ <div class="HsFcBtn--active HsFcBtn--overlay" />
213
+ <div class="HsFcBtn--border" :class="[{ show: vFormFocus.state.id === id }]" />
214
+ <div :class="classThisInner"><slot /></div>
215
+ <HsFcBtnLineLoading class="HsFcBtn--loading" :show="props.loading" />
216
+ </button>
217
+ <NuxtLink
218
+ v-else
219
+ :ref="(e:any)=>setRef(e)"
220
+ :to="props.to"
221
+ :disabled="disabled"
222
+ ontouchstart=""
223
+ class="HsFcBtn"
224
+ :class="[classStyle, `theme-${props.theme}`, `variant-${props.variant}`]"
225
+ @focus="onFocus()"
226
+ @blur="onBlur()"
227
+ >
228
+ <div class="HsFcBtn--hover HsFcBtn--overlay" />
229
+ <div class="HsFcBtn--active HsFcBtn--overlay" />
230
+ <div class="HsFcBtn--border" :class="[{ show: vFormFocus.state.id === id }]" />
231
+ <div :class="classThisInner"><slot /></div>
232
+ <HsFcBtnLineLoading class="HsFcBtn--loading" :show="props.loading" />
233
+ </NuxtLink>
234
+ </template>
235
+ <style scoped>
236
+ @charset "UTF-8";
237
+ .HsFcBtn {
238
+ touch-action: manipulation;
239
+ appearance: none;
240
+ -webkit-appearance: none;
241
+ position: relative;
242
+ -webkit-tap-highlight-color: transparent;
243
+ }
244
+ .HsFcBtn:focus {
245
+ outline: none;
246
+ }
247
+ .HsFcBtn .HsFcBtn--loading {
248
+ z-index: 2;
249
+ }
250
+ .HsFcBtn .HsFcBtn--border {
251
+ position: absolute;
252
+ inset: 2px 2px 2px 2px;
253
+ border-style: solid;
254
+ border-width: 1px;
255
+ border-radius: 5px;
256
+ opacity: 0;
257
+ background-color: transparent;
258
+ }
259
+ .HsFcBtn .HsFcBtn--border.show {
260
+ opacity: 1;
261
+ }
262
+ .HsFcBtn * {
263
+ pointer-events: none !important;
264
+ user-select: none;
265
+ }
266
+ .HsFcBtn .HsFcBtn--overlay {
267
+ position: absolute;
268
+ inset: 0;
269
+ opacity: 0;
270
+ z-index: 1;
271
+ }
272
+ .HsFcBtn.variant-outlined .HsFcBtn--hover {
273
+ mix-blend-mode: multiply;
274
+ }
275
+ .HsFcBtn.variant-outlined .HsFcBtn--active {
276
+ mix-blend-mode: multiply;
277
+ }
278
+ .HsFcBtn.variant-outlined .HsFcBtn--border {
279
+ border-color: inherit;
280
+ }
281
+ .HsFcBtn.variant-flat .HsFcBtn--hover {
282
+ background-color: inherit;
283
+ mix-blend-mode: screen;
284
+ }
285
+ .HsFcBtn.variant-flat .HsFcBtn--active {
286
+ background-color: inherit;
287
+ mix-blend-mode: multiply;
288
+ mix-blend-mode: screen;
289
+ }
290
+ .HsFcBtn.variant-flat .HsFcBtn--border {
291
+ border-color: white;
292
+ }
293
+ @media (hover: hover) {
294
+ .HsFcBtn {
295
+ /* hover指定できるPCを想定したスタイル */
296
+ }
297
+ .HsFcBtn:not(:active):hover.variant-outlined .HsFcBtn--hover {
298
+ opacity: 0.2;
299
+ }
300
+ .HsFcBtn:not(:active):hover.variant-flat .HsFcBtn--hover {
301
+ opacity: 0.8;
302
+ }
303
+ .HsFcBtn:active.variant-outlined .HsFcBtn--active {
304
+ opacity: 0.5;
305
+ }
306
+ .HsFcBtn:active.variant-flat .HsFcBtn--active {
307
+ opacity: 0.4;
308
+ }
309
+ }
310
+ @media (hover: none) {
311
+ .HsFcBtn {
312
+ /* hoverが使えないタッチ端末を想定した装飾 */
313
+ }
314
+ .HsFcBtn .HsFcBtn--hover {
315
+ opacity: 0;
316
+ }
317
+ .HsFcBtn:active.variant-outlined .HsFcBtn--active {
318
+ opacity: 0.4;
319
+ }
320
+ .HsFcBtn:active.variant-flat .HsFcBtn--active {
321
+ opacity: 0.8;
322
+ }
323
+ }
324
+
325
+ .variant-flat.theme-main0 {
326
+ background-color: theme("colors.main0");
327
+ color: theme("colors.white");
328
+ }
329
+ .variant-flat.theme-main1 {
330
+ background-color: theme("colors.main1");
331
+ color: theme("colors.white");
332
+ }
333
+ .variant-flat.theme-main2 {
334
+ background-color: theme("colors.main2");
335
+ color: theme("colors.white");
336
+ }
337
+ .variant-flat.theme-main3 {
338
+ background-color: theme("colors.main3");
339
+ color: theme("colors.white");
340
+ }
341
+ .variant-flat.theme-accent1 {
342
+ background-color: theme("colors.accent1");
343
+ color: theme("colors.white");
344
+ }
345
+ .variant-flat.theme-accent2 {
346
+ background-color: theme("colors.accent2");
347
+ color: theme("colors.white");
348
+ }
349
+ .variant-flat.theme-info {
350
+ background-color: theme("colors.info");
351
+ color: theme("colors.white");
352
+ }
353
+ .variant-flat.theme-link {
354
+ background-color: theme("colors.link");
355
+ color: theme("colors.white");
356
+ }
357
+ .variant-flat.theme-download {
358
+ background-color: theme("colors.download");
359
+ color: theme("colors.white");
360
+ }
361
+ .variant-flat.theme-success {
362
+ background-color: theme("colors.success");
363
+ color: theme("colors.white");
364
+ }
365
+ .variant-flat.theme-warn {
366
+ background-color: theme("colors.warn");
367
+ color: theme("colors.white");
368
+ }
369
+ .variant-flat.theme-error {
370
+ background-color: theme("colors.error");
371
+ color: theme("colors.white");
372
+ }
373
+ .variant-flat.theme-white {
374
+ background-color: theme("colors.white");
375
+ color: theme("colors.main1");
376
+ }
377
+ .variant-flat.theme-white .HsFcBtn--border {
378
+ border-color: theme("colors.gray.600");
379
+ }
380
+ .variant-flat.theme-black {
381
+ background-color: theme("colors.black");
382
+ color: theme("colors.white");
383
+ }
384
+ .variant-flat.theme-dark {
385
+ background-color: theme("colors.dark");
386
+ color: theme("colors.white");
387
+ }
388
+ .variant-flat.theme-back {
389
+ background-color: theme("colors.back");
390
+ color: theme("colors.main1");
391
+ }
392
+ .variant-flat.theme-back .HsFcBtn--border {
393
+ border-color: theme("colors.gray.600");
394
+ }
395
+
396
+ .variant-outlined.theme-main0 {
397
+ border-color: theme("colors.main0");
398
+ color: theme("colors.main0");
399
+ }
400
+ .variant-outlined.theme-main0 .HsFcBtn--overlay {
401
+ background-color: theme("colors.main0");
402
+ }
403
+ .variant-outlined.theme-main1 {
404
+ border-color: theme("colors.main1");
405
+ color: theme("colors.main1");
406
+ }
407
+ .variant-outlined.theme-main1 .HsFcBtn--overlay {
408
+ background-color: theme("colors.main1");
409
+ }
410
+ .variant-outlined.theme-main2 {
411
+ border-color: theme("colors.main2");
412
+ color: theme("colors.main2");
413
+ }
414
+ .variant-outlined.theme-main2 .HsFcBtn--overlay {
415
+ background-color: theme("colors.main2");
416
+ }
417
+ .variant-outlined.theme-main3 {
418
+ border-color: theme("colors.main3");
419
+ color: theme("colors.main3");
420
+ }
421
+ .variant-outlined.theme-main3 .HsFcBtn--overlay {
422
+ background-color: theme("colors.main3");
423
+ }
424
+ .variant-outlined.theme-accent1 {
425
+ border-color: theme("colors.accent1");
426
+ color: theme("colors.accent1");
427
+ }
428
+ .variant-outlined.theme-accent1 .HsFcBtn--overlay {
429
+ background-color: theme("colors.accent1");
430
+ }
431
+ .variant-outlined.theme-accent2 {
432
+ border-color: theme("colors.accent2");
433
+ color: theme("colors.accent2");
434
+ }
435
+ .variant-outlined.theme-accent2 .HsFcBtn--overlay {
436
+ background-color: theme("colors.accent2");
437
+ }
438
+ .variant-outlined.theme-info {
439
+ border-color: theme("colors.info");
440
+ color: theme("colors.info");
441
+ }
442
+ .variant-outlined.theme-info .HsFcBtn--hover {
443
+ background-color: theme("colors.info");
444
+ }
445
+ .variant-outlined.theme-link {
446
+ border-color: theme("colors.link");
447
+ color: theme("colors.link");
448
+ }
449
+ .variant-outlined.theme-link .HsFcBtn--overlay {
450
+ background-color: theme("colors.link");
451
+ }
452
+ .variant-outlined.theme-download {
453
+ border-color: theme("colors.download");
454
+ color: theme("colors.download");
455
+ }
456
+ .variant-outlined.theme-download .HsFcBtn--overlay {
457
+ background-color: theme("colors.download");
458
+ }
459
+ .variant-outlined.theme-success {
460
+ border-color: theme("colors.success");
461
+ color: theme("colors.success");
462
+ }
463
+ .variant-outlined.theme-success .HsFcBtn--overlay {
464
+ background-color: theme("colors.success");
465
+ }
466
+ .variant-outlined.theme-warn {
467
+ border-color: theme("colors.warn");
468
+ color: theme("colors.warn");
469
+ }
470
+ .variant-outlined.theme-warn .HsFcBtn--overlay {
471
+ background-color: theme("colors.warn");
472
+ }
473
+ .variant-outlined.theme-error {
474
+ border-color: theme("colors.error");
475
+ color: theme("colors.error");
476
+ }
477
+ .variant-outlined.theme-error .HsFcBtn--overlay {
478
+ background-color: theme("colors.error");
479
+ }
480
+ .variant-outlined.theme-white {
481
+ border-color: theme("colors.white");
482
+ color: theme("colors.white");
483
+ }
484
+ .variant-outlined.theme-white .HsFcBtn--overlay {
485
+ background-color: theme("colors.black");
486
+ }
487
+ .variant-outlined.theme-black {
488
+ border-color: theme("colors.black");
489
+ color: theme("colors.black");
490
+ }
491
+ .variant-outlined.theme-black .HsFcBtn--overlay {
492
+ background-color: theme("colors.white");
493
+ }
494
+ .variant-outlined.theme-dark {
495
+ border-color: theme("colors.dark");
496
+ color: theme("colors.dark");
497
+ }
498
+ .variant-outlined.theme-dark .HsFcBtn--overlay {
499
+ background-color: theme("colors.dark");
500
+ }
501
+ .variant-outlined.theme-back {
502
+ border-color: theme("colors.back");
503
+ color: theme("colors.back");
504
+ }
505
+ .variant-outlined.theme-back .HsFcBtn--overlay {
506
+ background-color: theme("colors.back");
507
+ }
508
+ </style>