@digitalwalletcorp/vue-core 1.1.0 → 1.2.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.
- package/README.md +20 -9
- package/lib/accordion-fieldset.cjs +1 -1
- package/lib/accordion-fieldset.d.cts +25 -0
- package/lib/accordion-fieldset.js +1 -1
- package/lib/{accordion-fieldset.vue_vue_type_style_index_0_lang-tzJhLHyT.js → accordion-fieldset.vue_vue_type_style_index_0_lang-Cf4czDXz.js} +11 -11
- package/lib/accordion-fieldset.vue_vue_type_style_index_0_lang-DoM5QjpJ.cjs +1 -0
- package/lib/accordion-section.cjs +1 -1
- package/lib/accordion-section.d.cts +34 -0
- package/lib/accordion-section.js +1 -1
- package/lib/{accordion-section.vue_vue_type_style_index_0_lang-BBEywIH3.cjs → accordion-section.vue_vue_type_style_index_0_lang-CFDdUEnn.cjs} +1 -1
- package/lib/{accordion-section.vue_vue_type_style_index_0_lang-DAlUN0wH.js → accordion-section.vue_vue_type_style_index_0_lang-Gvjjx02P.js} +1 -1
- package/lib/components-C63HJoCn.cjs +1 -0
- package/lib/{components-xNQBXMzx.js → components-q4Cf97bO.js} +7 -7
- package/lib/components.d.cts +9 -0
- package/lib/global.d.cts +7 -0
- package/lib/hourglass-loading.d.cts +23 -0
- package/lib/index.cjs +1 -1
- package/lib/index.d.cts +3 -0
- package/lib/index.js +7 -7
- package/lib/internal/tab-group-context.d.cts +16 -0
- package/lib/internal/use-shrinkable.d.cts +12 -0
- package/lib/label-button.cjs +1 -1
- package/lib/label-button.d.cts +30 -0
- package/lib/label-button.js +1 -1
- package/lib/label-button.vue_vue_type_style_index_0_lang-D7ZgfZOL.cjs +1 -0
- package/lib/{label-button.vue_vue_type_script_setup_true_lang-CoHrTUSs.js → label-button.vue_vue_type_style_index_0_lang-DqRYddVt.js} +12 -12
- package/lib/label-icon.cjs +1 -1
- package/lib/label-icon.d.cts +30 -0
- package/lib/label-icon.js +1 -1
- package/lib/{label-icon.vue_vue_type_style_index_0_lang-C2URq6GP.cjs → label-icon.vue_vue_type_style_index_0_lang-D9Cimu20.cjs} +1 -1
- package/lib/{label-icon.vue_vue_type_style_index_0_lang-bQFkQ_gC.js → label-icon.vue_vue_type_style_index_0_lang-me52HE2V.js} +1 -1
- package/lib/nuxt.cjs +1 -1
- package/lib/nuxt.d.cts +10 -0
- package/lib/nuxt.js +1 -1
- package/lib/page-section.cjs +1 -1
- package/lib/page-section.d.cts +34 -0
- package/lib/page-section.js +1 -1
- package/lib/{page-section.vue_vue_type_style_index_0_lang-bvQeBjUP.cjs → page-section.vue_vue_type_style_index_0_lang-DEAkTLxd.cjs} +1 -1
- package/lib/{page-section.vue_vue_type_style_index_0_lang-4MLb_sDZ.js → page-section.vue_vue_type_style_index_0_lang-DpVQe_rV.js} +1 -1
- package/lib/page-title.cjs +1 -1
- package/lib/page-title.d.cts +20 -0
- package/lib/page-title.js +1 -1
- package/lib/{page-title.vue_vue_type_style_index_0_lang-DcmGICoo.cjs → page-title.vue_vue_type_style_index_0_lang-BqIsIks5.cjs} +1 -1
- package/lib/{page-title.vue_vue_type_style_index_0_lang-CzfdMzXf.js → page-title.vue_vue_type_style_index_0_lang-ChZot85K.js} +1 -1
- package/lib/register.cjs +1 -1
- package/lib/register.d.cts +9 -0
- package/lib/register.js +1 -1
- package/lib/style.css +1 -1
- package/lib/tab-content.d.cts +39 -0
- package/lib/tab-group.cjs +1 -1
- package/lib/tab-group.d.cts +44 -0
- package/lib/tab-group.js +1 -1
- package/lib/{tab-group.vue_vue_type_style_index_0_lang-CjnBkvvZ.js → tab-group.vue_vue_type_style_index_0_lang-C84mDEOC.js} +1 -1
- package/lib/{tab-group.vue_vue_type_style_index_0_lang-CwVGYZAo.cjs → tab-group.vue_vue_type_style_index_0_lang-CMaufRJV.cjs} +1 -1
- package/lib/types/label-preset.d.cts +12 -0
- package/package.json +28 -12
- package/src/accordion-fieldset.vue +7 -2
- package/src/accordion-section.vue +11 -1
- package/src/label-button.vue +32 -1
- package/src/label-icon.vue +2 -2
- package/src/page-section.vue +2 -2
- package/src/page-title.vue +5 -5
- package/src/tab-content.vue +7 -7
- package/src/tab-group.vue +27 -16
- package/lib/accordion-fieldset.vue_vue_type_style_index_0_lang-Dd8HXuVm.cjs +0 -1
- package/lib/components-YAonMRcW.cjs +0 -1
- package/lib/label-button.vue_vue_type_script_setup_true_lang-DqhdCgmJ.cjs +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";const e=require("vue"),n=require("@digitalwalletcorp/vue-svg-icons"),r=require("./label-icon.vue_vue_type_style_index_0_lang-
|
|
1
|
+
"use strict";const e=require("vue"),n=require("@digitalwalletcorp/vue-svg-icons"),r=require("./label-icon.vue_vue_type_style_index_0_lang-D9Cimu20.cjs"),a={class:"dwui-page-section"},i={class:"dwui-page-section-content"},p=e.defineComponent({__name:"page-section",props:{title:{},icon:{default:"diamond"},iconVariant:{},iconColor:{},titleClass:{type:[Boolean,null,String,Object,Array]},titleStyle:{type:[Boolean,null,String,Object,Array]}},setup(l){const o=l,s={diamond:{component:n.SvgDiamond,shape:!0,color:"#1a44b6"},circle:{component:n.SvgCircle,shape:!0,color:"#e78b2f"},square:{component:n.SvgSquare,shape:!0,color:"#d13a2b"},pushpin:{component:n.SvgPushpin,shape:!1},"round-pushpin":{component:n.SvgRoundPushpin,shape:!1}},c=e.computed(()=>{const t=s[o.icon];return{component:t.component,props:t.shape?{variant:o.iconVariant,color:o.iconColor??t.color}:{}}});return(t,u)=>(e.openBlock(),e.createElementBlock("section",a,[o.title!=null?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["dwui-page-section-title",o.titleClass]),style:e.normalizeStyle(o.titleStyle)},[e.createVNode(r._sfc_main,null,{icon:e.withCtx(()=>[e.renderSlot(t.$slots,"icon",{},()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(c.value.component),e.normalizeProps(e.guardReactiveProps(c.value.props)),null,16))])]),default:e.withCtx(()=>[e.createTextVNode(" "+e.toDisplayString(o.title),1)]),_:3})],6)):e.createCommentVNode("",!0),e.createElementVNode("div",i,[e.renderSlot(t.$slots,"default")])]))}});exports._sfc_main=p;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { defineComponent as i, computed as p, openBlock as t, createElementBlock as r, normalizeStyle as m, normalizeClass as u, createVNode as d, withCtx as a, createTextVNode as S, toDisplayString as h, renderSlot as l, createBlock as _, resolveDynamicComponent as g, normalizeProps as f, guardReactiveProps as v, createCommentVNode as y, createElementVNode as C } from "vue";
|
|
2
2
|
import { SvgRoundPushpin as V, SvgPushpin as b, SvgSquare as B, SvgCircle as N, SvgDiamond as P } from "@digitalwalletcorp/vue-svg-icons";
|
|
3
|
-
import { _ as k } from "./label-icon.vue_vue_type_style_index_0_lang-
|
|
3
|
+
import { _ as k } from "./label-icon.vue_vue_type_style_index_0_lang-me52HE2V.js";
|
|
4
4
|
const w = { class: "dwui-page-section" }, E = { class: "dwui-page-section-content" }, $ = /* @__PURE__ */ i({
|
|
5
5
|
__name: "page-section",
|
|
6
6
|
props: {
|
package/lib/page-title.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./page-title.vue_vue_type_style_index_0_lang-
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./page-title.vue_vue_type_style_index_0_lang-BqIsIks5.cjs");exports.default=e._sfc_main;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
interface Props {
|
|
2
|
+
/** タイトルの文字 */
|
|
3
|
+
title: string;
|
|
4
|
+
}
|
|
5
|
+
interface Slots {
|
|
6
|
+
/** タイトルの文字の前に表示するアイコン */
|
|
7
|
+
icon?(): unknown;
|
|
8
|
+
/** タイトルバーの右側に表示する内容 */
|
|
9
|
+
default?(): unknown;
|
|
10
|
+
}
|
|
11
|
+
type __VLS_Slots = Slots;
|
|
12
|
+
declare const __VLS_base: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
13
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
14
|
+
declare const _default: typeof __VLS_export;
|
|
15
|
+
export default _default;
|
|
16
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
17
|
+
new (): {
|
|
18
|
+
$slots: S;
|
|
19
|
+
};
|
|
20
|
+
};
|
package/lib/page-title.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";const e=require("vue"),l=require("./label-icon.vue_vue_type_style_index_0_lang-
|
|
1
|
+
"use strict";const e=require("vue"),l=require("./label-icon.vue_vue_type_style_index_0_lang-D9Cimu20.cjs"),c={class:"dwui-page-title"},i={key:0,class:"dwui-page-title-actions"},a=e.defineComponent({__name:"page-title",props:{title:{}},setup(n){const s=n,t=e.useSlots();return(o,r)=>(e.openBlock(),e.createElementBlock("section",c,[e.createVNode(l._sfc_main,{class:"dwui-page-title-label"},e.createSlots({default:e.withCtx(()=>[e.createTextVNode(" "+e.toDisplayString(s.title),1)]),_:2},[t.icon!=null?{name:"icon",fn:e.withCtx(()=>[e.renderSlot(o.$slots,"icon")]),key:"0"}:void 0]),1024),t.default!=null?(e.openBlock(),e.createElementBlock("span",i,[e.renderSlot(o.$slots,"default")])):e.createCommentVNode("",!0)]))}});exports._sfc_main=a;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { defineComponent as c, useSlots as r, openBlock as o, createElementBlock as s, createVNode as p, createSlots as d, withCtx as l, createTextVNode as u, toDisplayString as _, renderSlot as n, createCommentVNode as m } from "vue";
|
|
2
|
-
import { _ as f } from "./label-icon.vue_vue_type_style_index_0_lang-
|
|
2
|
+
import { _ as f } from "./label-icon.vue_vue_type_style_index_0_lang-me52HE2V.js";
|
|
3
3
|
const g = { class: "dwui-page-title" }, h = {
|
|
4
4
|
key: 0,
|
|
5
5
|
class: "dwui-page-title-actions"
|
package/lib/register.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./components-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./components-C63HJoCn.cjs");function r(e){for(const[o,n]of Object.entries(t.components))e.component(o,n)}exports.registerComponents=r;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { App } from 'vue';
|
|
2
|
+
import * as components from './components.cjs';
|
|
3
|
+
type VueCoreComponents = typeof components;
|
|
4
|
+
declare module 'vue' {
|
|
5
|
+
interface GlobalComponents extends VueCoreComponents {
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
export declare function registerComponents(app: App): void;
|
|
9
|
+
export {};
|
package/lib/register.js
CHANGED
package/lib/style.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
:where(.dwui-label-icon){display:inline-block}:where(.dwui-label-icon>.dwui-label){display:inline-block}:where(.dwui-label-icon>.dwui-label:not(:first-child)){margin-left:var(--dwui-label-icon
|
|
1
|
+
:where(.dwui-label-icon){display:inline-block}:where(.dwui-label-icon>.dwui-label){display:inline-block}:where(.dwui-label-icon>.dwui-label:not(:first-child)){margin-left:var(--dwui-gap-label-icon, .25em)}:where(.dwui-accordion-fieldset){position:relative}:where(.dwui-accordion-toggle){display:inline-flex;align-items:center;gap:4px;margin-left:4px;padding:0;border:none;background:none;color:inherit;cursor:pointer}:where(.dwui-accordion-toggle:disabled){opacity:.6;cursor:not-allowed}:where(.dwui-accordion-toggle:focus-visible){outline:var(--dwui-width-focus-ring, 2px) solid var(--dwui-outline-color-focus-ring, Highlight);outline-offset:var(--dwui-offset-focus-ring, 2px)}:where(.dwui-accordion-contents){position:relative;width:fit-content;padding:2px;overflow:hidden;opacity:1}:where(.dwui-accordion-contents.dwui-expanded){transition:all .3s linear}:where(.dwui-accordion-contents.dwui-shrunk){height:auto;max-height:70px;opacity:.75;transition:all .3s linear}:where(.dwui-accordion-section){position:relative}:where(.dwui-accordion-section-contents){position:relative;width:fit-content;overflow:hidden}:where(.dwui-accordion-section-contents.dwui-expanded){transition:all .3s linear}:where(.dwui-accordion-section-contents.dwui-shrunk){height:auto;max-height:70px;transition:all .3s linear}:where(.dwui-accordion-section-contents.dwui-shrunk:not(.dwui-no-gradient)):after{content:"";position:absolute;inset:0;background-image:linear-gradient(180deg,transparent 0%,transparent 60%,var(--dwui-color-accordion-section-fade, Canvas) 100%);pointer-events:none}:where(.dwui-accordion-section-control){position:relative;display:flex;justify-content:center;width:100%}:where(.dwui-accordion-section-toggle){display:inline-flex;align-items:center;padding:0;border:none;background:none;color:inherit;cursor:pointer}:where(.dwui-accordion-section-toggle:disabled){opacity:.6;cursor:not-allowed}:where(.dwui-accordion-section-toggle:focus-visible){outline:var(--dwui-width-focus-ring, 2px) solid var(--dwui-outline-color-focus-ring, Highlight);outline-offset:var(--dwui-offset-focus-ring, 2px)}:where(.dwui-accordion-section-toggle[aria-expanded=true]){margin-top:8px}:where(.dwui-accordion-section-toggle[aria-expanded=false]){margin-top:-10px}:where(.dwui-hourglass-loading){animation:dwui-hourglass-loading-spin 1.2s linear infinite}@keyframes dwui-hourglass-loading-spin{to{transform:rotate(360deg)}}:where(.dwui-label-button){display:inline-block;padding:2px 6px;border:1px solid var(--dwui-border-color-label-button, light-dark(#8f8f8f, #6b6f76));border-radius:3px;background:var(--dwui-background-label-button, light-dark(#f4f4f4, #3a3c40));color:var(--dwui-color-text-label-button, light-dark(#1a1a1a, #e6e6e6));font:inherit;cursor:pointer}:where(.dwui-label-button:not(:disabled):hover){background:var(--dwui-background-label-button-hover, light-dark(#e6e6e6, #474a50))}:where(.dwui-label-button:not(:disabled):active){background:var(--dwui-background-label-button-active, light-dark(#d6d6d6, #2f3135))}:where(.dwui-label-button:disabled){opacity:.6;cursor:not-allowed}:where(.dwui-label-button:focus-visible){outline:var(--dwui-width-focus-ring, 2px) solid var(--dwui-outline-color-focus-ring, Highlight);outline-offset:var(--dwui-offset-focus-ring, 2px)}:where(.dwui-page-section){display:block;margin:4px 0 8px;padding-top:2px;font-size:var(--dwui-font-size-page-section, 12px);font-weight:500}:where(.dwui-page-section-title){display:flex;align-items:center;font-size:var(--dwui-font-size-page-section-title, 14px)}:where(.dwui-page-section-content){margin:8px 0 8px 16px}:where(.dwui-page-title){display:flex;align-items:center;justify-content:space-between;width:var(--dwui-width-page-title, auto);padding:4px;border-radius:4px;background:var(--dwui-background-page-title, linear-gradient(light-dark(#323232, #3c3f45) 0%, light-dark(rgb(32, 32, 31), #2b2d31) 25%, light-dark(rgb(32, 32, 31), #2b2d31) 75%, light-dark(#323232, #3c3f45) 100%));color:var(--dwui-color-text-page-title, rgb(220, 220, 220));font-size:var(--dwui-font-size-page-title, 14px);font-weight:var(--dwui-font-weight-page-title, normal)}:where(.dwui-tab-content[aria-checked=false]){display:none}:where(.dwui-tab-content[aria-checked=true]){display:block;position:relative;padding:4px 8px;overflow:hidden;animation:dwui-tab-slide-in var(--dwui-duration-tab-slide, .35s) var(--dwui-easing-tab-slide, cubic-bezier(.22, 1, .36, 1))}:where(.dwui-tab-loading){position:absolute;inset:0;z-index:1;display:flex;align-items:center;justify-content:center;background:var(--dwui-overlay-color-loading, light-dark(rgba(0, 0, 0, .25), rgba(0, 0, 0, .45)))}:where(.dwui-tab-loading-spinner){width:var(--dwui-size-loading-spinner, 40px);height:var(--dwui-size-loading-spinner, 40px);border:4px solid var(--dwui-border-color-loading-spinner-track, rgba(255, 255, 255, .4));border-top-color:var(--dwui-border-color-loading-spinner, #ffffff);border-radius:50%;animation:dwui-tab-loading-spin .8s linear infinite}@keyframes dwui-tab-loading-spin{to{transform:rotate(360deg)}}@keyframes dwui-tab-slide-in{0%{opacity:0;transform:translate(var(--dwui-distance-tab-slide, -128px))}to{opacity:1;transform:translate(0)}}:where(.dwui-tab-group){margin-bottom:8px}:where(.dwui-tab-headers){display:flex;flex-direction:row;flex-wrap:wrap;position:relative;margin-top:5px;padding-bottom:4px}:where(.dwui-tab-radio){position:absolute;width:1px;height:1px;margin:0;opacity:0;pointer-events:none}:where(.dwui-tab-item){display:block;min-width:100px;padding:0 4px;border:1px solid var(--dwui-border-color-tab, light-dark(#565656, #8a8a8a));border-bottom:1px solid var(--dwui-border-color-tab-header-accent, #5ab4bd);background:var(--dwui-background-tab-header, linear-gradient(light-dark(#1313c7, #2a3a8f), light-dark(navy, #141c4d)));line-height:2em;text-align:center;white-space:nowrap;color:var(--dwui-color-text-tab-header, azure);text-overflow:ellipsis;cursor:pointer;transition:all .2s ease}:where(.dwui-tab-radio:checked+.dwui-tab-item){background:var(--dwui-background-tab-header-selected, linear-gradient(light-dark(#1313c7, #2a3a8f), light-dark(rgb(149, 149, 234), #5a62b8), light-dark(#1313c7, #2a3a8f)));color:var(--dwui-color-text-tab-header-selected, azure);cursor:default}:where(.dwui-tab-radio:disabled+.dwui-tab-item){background:var(--dwui-background-tab-header-disabled, light-dark(gray, #4a4a4a));cursor:not-allowed}:where(.dwui-tab-item.dwui-tab-warn){background:var(--dwui-background-tab-header-warn, light-dark(#efef13, #8a8a10));color:var(--dwui-color-text-tab-header-warn, light-dark(midnightblue, #fffbd0))}:where(.dwui-tab-radio:checked+.dwui-tab-item.dwui-tab-warn){background:var(--dwui-background-tab-header-warn-selected, linear-gradient(light-dark(#fafa06, #8a8a10), light-dark(rgb(232, 238, 206), #a8a860), light-dark(#fafa06, #8a8a10)))}:where(.dwui-tab-item.dwui-tab-error){background:var(--dwui-background-tab-header-error, light-dark(red, #a01818));color:var(--dwui-color-text-tab-header-error, azure)}:where(.dwui-tab-radio:checked+.dwui-tab-item.dwui-tab-error){background:var(--dwui-background-tab-header-error-selected, linear-gradient(light-dark(#ff0000, #a01818), light-dark(rgb(240, 136, 136), #c86060), light-dark(#ff0000, #a01818)))}:where(.dwui-tab-radio:not(:checked)+.dwui-tab-item:hover){box-shadow:inset 0 0 0 999px var(--dwui-overlay-color-tab-header-hover, light-dark(rgba(255, 255, 255, .35), rgba(255, 255, 255, .15)))}:where(.dwui-tab-radio:focus-visible+.dwui-tab-item){outline:var(--dwui-width-focus-ring, 2px) solid var(--dwui-outline-color-focus-ring, Highlight);outline-offset:var(--dwui-offset-focus-ring, 2px)}:where(.dwui-tab-items){height:100%;border:1px solid var(--dwui-border-color-tab, light-dark(#565656, #8a8a8a));overflow:hidden}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { ClassValue, StyleValue } from 'vue';
|
|
2
|
+
import { TabContentStatus } from './internal/tab-group-context.cjs';
|
|
3
|
+
interface Props {
|
|
4
|
+
/** タブを識別するID。TabGroupのselectedTabLabelIdに渡す値 */
|
|
5
|
+
labelId: string;
|
|
6
|
+
/** タブの見出しの文字 */
|
|
7
|
+
description: string;
|
|
8
|
+
/** trueの場合、タブを選べなくし、中身も描画しない */
|
|
9
|
+
disabled?: boolean;
|
|
10
|
+
/** タブの見出しの状態。見出しの色が変わる */
|
|
11
|
+
status?: TabContentStatus;
|
|
12
|
+
/** タブの見出しに付けるclass */
|
|
13
|
+
headerClass?: ClassValue;
|
|
14
|
+
/** タブの見出しに付けるstyle */
|
|
15
|
+
headerStyle?: StyleValue;
|
|
16
|
+
}
|
|
17
|
+
interface Slots {
|
|
18
|
+
/** タブの見出しの文字の前に表示するアイコン */
|
|
19
|
+
icon?(): unknown;
|
|
20
|
+
/**
|
|
21
|
+
* タブの中身
|
|
22
|
+
* activated: タブが選ばれて表示されている間はtrue。中身のコンポーネントにpropsで渡し、選ばれたときの処理の契機にする
|
|
23
|
+
* setLoading: trueを渡すと読み込み中の表示にする。表示はTabGroupの#loadingスロット、未指定なら既定の表示
|
|
24
|
+
*/
|
|
25
|
+
default?(props: {
|
|
26
|
+
activated: boolean;
|
|
27
|
+
setLoading: (loading: boolean) => void;
|
|
28
|
+
}): unknown;
|
|
29
|
+
}
|
|
30
|
+
type __VLS_Slots = Slots;
|
|
31
|
+
declare const __VLS_base: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
32
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
33
|
+
declare const _default: typeof __VLS_export;
|
|
34
|
+
export default _default;
|
|
35
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
36
|
+
new (): {
|
|
37
|
+
$slots: S;
|
|
38
|
+
};
|
|
39
|
+
};
|
package/lib/tab-group.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./tab-group.vue_vue_type_style_index_0_lang-
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./tab-group.vue_vue_type_style_index_0_lang-CMaufRJV.cjs");exports.default=e._sfc_main;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { ClassValue, StyleValue, VNode } from 'vue';
|
|
2
|
+
interface Props {
|
|
3
|
+
/** ラジオボタンのname。未指定なら自動で採番する */
|
|
4
|
+
tabGroupName?: string;
|
|
5
|
+
/** selectedTabLabelIdが未指定のとき、trueならdisabledでない最初のタブを選ぶ。falseなら先頭のタブ(disabledなら中身は空になる) */
|
|
6
|
+
selectFirstEnabled?: boolean;
|
|
7
|
+
/** タブの見出しを並べる部分に付けるclass */
|
|
8
|
+
headerClass?: ClassValue;
|
|
9
|
+
/** タブの見出しを並べる部分に付けるstyle */
|
|
10
|
+
headerStyle?: StyleValue;
|
|
11
|
+
/** タブの見出しを移動する先(Teleportのto) */
|
|
12
|
+
teleport?: string;
|
|
13
|
+
}
|
|
14
|
+
type __VLS_Props = Props;
|
|
15
|
+
interface Slots {
|
|
16
|
+
default?(): VNode[];
|
|
17
|
+
/** 読み込み中のTabContentに重ねて表示する内容。未指定なら既定の読み込み中表示 */
|
|
18
|
+
loading?(): VNode[];
|
|
19
|
+
}
|
|
20
|
+
type __VLS_Slots = Slots;
|
|
21
|
+
type __VLS_ModelProps = {
|
|
22
|
+
/**
|
|
23
|
+
* 選択するタブのlabelId。未指定なら先頭のタブ
|
|
24
|
+
* 親がいつ代入しても選び直せるよう、v-model:selected-tab-label-idで同期する前提とする
|
|
25
|
+
*/
|
|
26
|
+
'selectedTabLabelId'?: string;
|
|
27
|
+
};
|
|
28
|
+
type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
|
|
29
|
+
declare const __VLS_base: import('vue').DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
30
|
+
"update:selectedTabLabelId": (value: string | undefined) => any;
|
|
31
|
+
} & {
|
|
32
|
+
"emit:changeSelectedTab": (labelId: string) => any;
|
|
33
|
+
}, string, import('vue').PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
34
|
+
"onEmit:changeSelectedTab"?: ((labelId: string) => any) | undefined;
|
|
35
|
+
"onUpdate:selectedTabLabelId"?: ((value: string | undefined) => any) | undefined;
|
|
36
|
+
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
37
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
38
|
+
declare const _default: typeof __VLS_export;
|
|
39
|
+
export default _default;
|
|
40
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
41
|
+
new (): {
|
|
42
|
+
$slots: S;
|
|
43
|
+
};
|
|
44
|
+
};
|
package/lib/tab-group.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { defineComponent as L, useModel as B, useSlots as N, useId as x, computed as y, ref as A, provide as E, onMounted as M, openBlock as s, createElementBlock as i, createBlock as _, Teleport as F, createElementVNode as o, normalizeStyle as v, normalizeClass as g, Fragment as S, renderList as G, unref as c, createVNode as V, createSlots as j, withCtx as I, createTextVNode as z, toDisplayString as D, resolveDynamicComponent as O, renderSlot as H, mergeModels as C } from "vue";
|
|
2
|
-
import { _ as K } from "./label-icon.vue_vue_type_style_index_0_lang-
|
|
2
|
+
import { _ as K } from "./label-icon.vue_vue_type_style_index_0_lang-me52HE2V.js";
|
|
3
3
|
import { t as P, _ as q } from "./tab-content.vue_vue_type_style_index_0_lang-CcQLHmIF.js";
|
|
4
4
|
const J = { class: "dwui-tab-group" }, Q = ["id", "name", "disabled", "checked", "onChange"], R = ["for", "data-test-tab-content-control"], U = { class: "dwui-tab-items" }, Z = /* @__PURE__ */ L({
|
|
5
5
|
__name: "tab-group",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";const e=require("vue"),v=require("./label-icon.vue_vue_type_style_index_0_lang-
|
|
1
|
+
"use strict";const e=require("vue"),v=require("./label-icon.vue_vue_type_style_index_0_lang-D9Cimu20.cjs"),m=require("./tab-content.vue_vue_type_style_index_0_lang-BeCi7Xkp.cjs"),g={class:"dwui-tab-group"},S=["id","name","disabled","checked","onChange"],C=["for","data-test-tab-content-control"],I={class:"dwui-tab-items"},k=e.defineComponent({__name:"tab-group",props:e.mergeModels({tabGroupName:{},selectFirstEnabled:{type:Boolean},headerClass:{type:[Boolean,null,String,Object,Array]},headerStyle:{type:[Boolean,null,String,Object,Array]},teleport:{}},{selectedTabLabelId:{},selectedTabLabelIdModifiers:{}}),emits:e.mergeModels(["emit:changeSelectedTab"],["update:selectedTabLabelId"]),setup(r,{emit:h}){const n=r,_=h,o=e.useModel(r,"selectedTabLabelId"),c=e.useSlots(),s=n.tabGroupName??e.useId(),y=a=>{if(a.type!==m._sfc_main)return;const l=a.props??{},t=l.disabled;return{labelId:String(l["label-id"]??l.labelId),description:l.description,disabled:t===""||!!t,status:l.status,headerClass:l["header-class"]??l.headerClass,headerStyle:l["header-style"]??l.headerStyle,icon:a.children?.icon}},d=e.computed(()=>{const a=[];for(const l of c.default?.()??[]){const t=Array.isArray(l.children)?l.children:[l];for(const b of t){const p=y(b);p&&a.push(p)}}return a}),i=e.computed(()=>o.value!=null?o.value:(n.selectFirstEnabled?d.value.find(l=>!l.disabled):d.value[0])?.labelId),u=e.ref(!1);e.provide(m.tabGroupContextKey,{activeLabelId:i,mounted:u,loadingSlot:()=>c.loading}),e.onMounted(()=>{u.value=!0});const f=a=>{o.value=a,_("emit:changeSelectedTab",a)};return(a,l)=>(e.openBlock(),e.createElementBlock("div",g,[(e.openBlock(),e.createBlock(e.Teleport,{to:n.teleport??"body",disabled:n.teleport==null},[e.createElementVNode("div",{class:e.normalizeClass(["dwui-tab-headers",n.headerClass]),style:e.normalizeStyle(n.headerStyle)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,t=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:t.labelId},[e.createElementVNode("input",{id:`${e.unref(s)}-${t.labelId}`,type:"radio",class:"dwui-tab-radio",name:e.unref(s),disabled:t.disabled,checked:t.labelId===i.value,onChange:b=>f(t.labelId)},null,40,S),e.createElementVNode("label",{for:`${e.unref(s)}-${t.labelId}`,class:e.normalizeClass(["dwui-tab-item",[t.status!=null?`dwui-tab-${t.status}`:void 0,t.headerClass]]),style:e.normalizeStyle(t.headerStyle),"data-test-tab-content-control":t.labelId},[e.createVNode(v._sfc_main,null,e.createSlots({default:e.withCtx(()=>[e.createTextVNode(" "+e.toDisplayString(t.description),1)]),_:2},[t.icon!=null?{name:"icon",fn:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.icon)))]),key:"0"}:void 0]),1024)],14,C)],64))),128))],6)],8,["to","disabled"])),e.createElementVNode("div",I,[e.renderSlot(a.$slots,"default")])]))}});exports._sfc_main=k;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Component } from 'vue';
|
|
2
|
+
/**
|
|
3
|
+
* アイコンとラベルの組み合わせ
|
|
4
|
+
*/
|
|
5
|
+
export interface LabelPreset {
|
|
6
|
+
/** アイコンのコンポーネント */
|
|
7
|
+
icon: Component;
|
|
8
|
+
/** アイコンに渡すProps */
|
|
9
|
+
iconProps?: Record<string, unknown>;
|
|
10
|
+
/** ラベル。言語切替に追従させる場合は、描画のたびに呼ばれる関数で渡す */
|
|
11
|
+
label: string | (() => string);
|
|
12
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@digitalwalletcorp/vue-core",
|
|
3
|
-
"version": "1.1
|
|
3
|
+
"version": "1.2.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Basic UI components for Vue 3",
|
|
6
6
|
"main": "lib/index.cjs",
|
|
@@ -11,31 +11,47 @@
|
|
|
11
11
|
],
|
|
12
12
|
"exports": {
|
|
13
13
|
".": {
|
|
14
|
-
"
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
"import": {
|
|
15
|
+
"types": "./lib/index.d.ts",
|
|
16
|
+
"default": "./lib/index.js"
|
|
17
|
+
},
|
|
18
|
+
"require": {
|
|
19
|
+
"types": "./lib/index.d.cts",
|
|
20
|
+
"default": "./lib/index.cjs"
|
|
21
|
+
}
|
|
17
22
|
},
|
|
18
23
|
"./nuxt": {
|
|
19
24
|
"types": "./lib/nuxt.d.ts",
|
|
20
25
|
"import": "./lib/nuxt.js"
|
|
21
26
|
},
|
|
22
27
|
"./register": {
|
|
23
|
-
"
|
|
24
|
-
|
|
25
|
-
|
|
28
|
+
"import": {
|
|
29
|
+
"types": "./lib/register.d.ts",
|
|
30
|
+
"default": "./lib/register.js"
|
|
31
|
+
},
|
|
32
|
+
"require": {
|
|
33
|
+
"types": "./lib/register.d.cts",
|
|
34
|
+
"default": "./lib/register.cjs"
|
|
35
|
+
}
|
|
26
36
|
},
|
|
27
37
|
"./global": {
|
|
28
38
|
"types": "./lib/global.d.ts"
|
|
29
39
|
},
|
|
30
40
|
"./style.css": "./lib/style.css",
|
|
31
41
|
"./*": {
|
|
32
|
-
"
|
|
33
|
-
|
|
34
|
-
|
|
42
|
+
"import": {
|
|
43
|
+
"types": "./lib/*.d.ts",
|
|
44
|
+
"default": "./lib/*.js"
|
|
45
|
+
},
|
|
46
|
+
"require": {
|
|
47
|
+
"types": "./lib/*.d.cts",
|
|
48
|
+
"default": "./lib/*.cjs"
|
|
49
|
+
}
|
|
35
50
|
}
|
|
36
51
|
},
|
|
37
52
|
"scripts": {
|
|
38
53
|
"build": "vite build",
|
|
54
|
+
"yarn:dedupe": "npx yarn-deduplicate --strategy highest yarn.lock",
|
|
39
55
|
"install:dev": "rm -rf lib dest && find node_modules -mindepth 1 -delete && yarn install",
|
|
40
56
|
"typecheck": "vue-tsc --noEmit -p tsconfig.json",
|
|
41
57
|
"version:patch": "npm version patch",
|
|
@@ -68,11 +84,11 @@
|
|
|
68
84
|
"src/**/*"
|
|
69
85
|
],
|
|
70
86
|
"peerDependencies": {
|
|
71
|
-
"@digitalwalletcorp/vue-svg-icons": "^1.
|
|
87
|
+
"@digitalwalletcorp/vue-svg-icons": "^1.15.3",
|
|
72
88
|
"vue": "^3.5.29"
|
|
73
89
|
},
|
|
74
90
|
"devDependencies": {
|
|
75
|
-
"@digitalwalletcorp/vue-svg-icons": "^1.
|
|
91
|
+
"@digitalwalletcorp/vue-svg-icons": "^1.15.3",
|
|
76
92
|
"@nuxt/kit": "^3.17.5",
|
|
77
93
|
"@types/node": "24.13.6",
|
|
78
94
|
"@vitejs/plugin-vue": "^6.0.0",
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
class="dwui-accordion-fieldset"
|
|
7
7
|
:disabled="props.disabled"
|
|
8
8
|
>
|
|
9
|
-
<legend>
|
|
9
|
+
<legend class="dwui-accordion-legend">
|
|
10
10
|
<button
|
|
11
11
|
type="button"
|
|
12
12
|
class="dwui-accordion-toggle"
|
|
@@ -85,7 +85,7 @@ onMounted(() => {
|
|
|
85
85
|
position: relative;
|
|
86
86
|
}
|
|
87
87
|
|
|
88
|
-
/*
|
|
88
|
+
/* 開閉ボタンは押しボタンではなく凡例と一体の操作として見せるため、既定では枠・背景を持たない */
|
|
89
89
|
:where(.dwui-accordion-toggle) {
|
|
90
90
|
display: inline-flex;
|
|
91
91
|
align-items: center;
|
|
@@ -103,6 +103,11 @@ onMounted(() => {
|
|
|
103
103
|
cursor: not-allowed;
|
|
104
104
|
}
|
|
105
105
|
|
|
106
|
+
:where(.dwui-accordion-toggle:focus-visible) {
|
|
107
|
+
outline: var(--dwui-width-focus-ring, 2px) solid var(--dwui-outline-color-focus-ring, Highlight);
|
|
108
|
+
outline-offset: var(--dwui-offset-focus-ring, 2px);
|
|
109
|
+
}
|
|
110
|
+
|
|
106
111
|
:where(.dwui-accordion-contents) {
|
|
107
112
|
position: relative;
|
|
108
113
|
width: fit-content;
|
|
@@ -160,7 +160,7 @@ onMounted(() => {
|
|
|
160
160
|
content: '';
|
|
161
161
|
position: absolute;
|
|
162
162
|
inset: 0;
|
|
163
|
-
background-image: linear-gradient(180deg, transparent 0%, transparent 60%, var(--dwui-accordion-section-fade, Canvas) 100%);
|
|
163
|
+
background-image: linear-gradient(180deg, transparent 0%, transparent 60%, var(--dwui-color-accordion-section-fade, Canvas) 100%);
|
|
164
164
|
pointer-events: none;
|
|
165
165
|
}
|
|
166
166
|
|
|
@@ -172,9 +172,14 @@ onMounted(() => {
|
|
|
172
172
|
width: 100%;
|
|
173
173
|
}
|
|
174
174
|
|
|
175
|
+
/* 開閉ボタンは押しボタンではなくアイコンとラベルの操作として見せるため、既定では枠・背景を持たない */
|
|
175
176
|
:where(.dwui-accordion-section-toggle) {
|
|
176
177
|
display: inline-flex;
|
|
177
178
|
align-items: center;
|
|
179
|
+
padding: 0;
|
|
180
|
+
border: none;
|
|
181
|
+
background: none;
|
|
182
|
+
color: inherit;
|
|
178
183
|
cursor: pointer;
|
|
179
184
|
}
|
|
180
185
|
|
|
@@ -183,6 +188,11 @@ onMounted(() => {
|
|
|
183
188
|
cursor: not-allowed;
|
|
184
189
|
}
|
|
185
190
|
|
|
191
|
+
:where(.dwui-accordion-section-toggle:focus-visible) {
|
|
192
|
+
outline: var(--dwui-width-focus-ring, 2px) solid var(--dwui-outline-color-focus-ring, Highlight);
|
|
193
|
+
outline-offset: var(--dwui-offset-focus-ring, 2px);
|
|
194
|
+
}
|
|
195
|
+
|
|
186
196
|
:where(.dwui-accordion-section-toggle[aria-expanded='true']) {
|
|
187
197
|
margin-top: 8px;
|
|
188
198
|
}
|
package/src/label-button.vue
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
アイコンとラベルを持つボタン
|
|
3
3
|
-->
|
|
4
4
|
<template>
|
|
5
|
-
<button>
|
|
5
|
+
<button class="dwui-label-button">
|
|
6
6
|
<LabelIcon
|
|
7
7
|
:preset="props.preset"
|
|
8
8
|
:gap="props.gap"
|
|
@@ -55,3 +55,34 @@ interface Slots {
|
|
|
55
55
|
}
|
|
56
56
|
const slots = defineSlots<Slots>();
|
|
57
57
|
</script>
|
|
58
|
+
|
|
59
|
+
<style>
|
|
60
|
+
:where(.dwui-label-button) {
|
|
61
|
+
display: inline-block;
|
|
62
|
+
padding: 2px 6px;
|
|
63
|
+
border: 1px solid var(--dwui-border-color-label-button, light-dark(#8f8f8f, #6b6f76));
|
|
64
|
+
border-radius: 3px;
|
|
65
|
+
background: var(--dwui-background-label-button, light-dark(#f4f4f4, #3a3c40));
|
|
66
|
+
color: var(--dwui-color-text-label-button, light-dark(#1a1a1a, #e6e6e6));
|
|
67
|
+
font: inherit;
|
|
68
|
+
cursor: pointer;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
:where(.dwui-label-button:not(:disabled):hover) {
|
|
72
|
+
background: var(--dwui-background-label-button-hover, light-dark(#e6e6e6, #474a50));
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
:where(.dwui-label-button:not(:disabled):active) {
|
|
76
|
+
background: var(--dwui-background-label-button-active, light-dark(#d6d6d6, #2f3135));
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
:where(.dwui-label-button:disabled) {
|
|
80
|
+
opacity: 0.6;
|
|
81
|
+
cursor: not-allowed;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
:where(.dwui-label-button:focus-visible) {
|
|
85
|
+
outline: var(--dwui-width-focus-ring, 2px) solid var(--dwui-outline-color-focus-ring, Highlight);
|
|
86
|
+
outline-offset: var(--dwui-offset-focus-ring, 2px);
|
|
87
|
+
}
|
|
88
|
+
</style>
|
package/src/label-icon.vue
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
<template>
|
|
5
5
|
<span
|
|
6
6
|
class="dwui-label-icon"
|
|
7
|
-
:style="props.gap == null ? undefined : { '--dwui-label-icon
|
|
7
|
+
:style="props.gap == null ? undefined : { '--dwui-gap-label-icon': props.gap }"
|
|
8
8
|
>
|
|
9
9
|
<slot name="icon">
|
|
10
10
|
<component
|
|
@@ -70,6 +70,6 @@ const slots = defineSlots<Slots>();
|
|
|
70
70
|
|
|
71
71
|
/* アイコンとラベルの間隔。gapはflex専用のためmarginで空ける */
|
|
72
72
|
:where(.dwui-label-icon > .dwui-label:not(:first-child)) {
|
|
73
|
-
margin-left: var(--dwui-label-icon
|
|
73
|
+
margin-left: var(--dwui-gap-label-icon, 0.25em);
|
|
74
74
|
}
|
|
75
75
|
</style>
|
package/src/page-section.vue
CHANGED
|
@@ -87,14 +87,14 @@ const presetIcon = computed((): { component: Component; props: Record<string, un
|
|
|
87
87
|
display: block;
|
|
88
88
|
margin: 4px 0 8px;
|
|
89
89
|
padding-top: 2px;
|
|
90
|
-
font-size: var(--dwui-page-section
|
|
90
|
+
font-size: var(--dwui-font-size-page-section, 12px);
|
|
91
91
|
font-weight: 500;
|
|
92
92
|
}
|
|
93
93
|
|
|
94
94
|
:where(.dwui-page-section-title) {
|
|
95
95
|
display: flex;
|
|
96
96
|
align-items: center;
|
|
97
|
-
font-size: var(--dwui-page-section-title
|
|
97
|
+
font-size: var(--dwui-font-size-page-section-title, 14px);
|
|
98
98
|
}
|
|
99
99
|
|
|
100
100
|
:where(.dwui-page-section-content) {
|
package/src/page-title.vue
CHANGED
|
@@ -45,12 +45,12 @@ const slots = defineSlots<Slots>();
|
|
|
45
45
|
display: flex;
|
|
46
46
|
align-items: center;
|
|
47
47
|
justify-content: space-between;
|
|
48
|
-
width: var(--dwui-page-title
|
|
48
|
+
width: var(--dwui-width-page-title, auto);
|
|
49
49
|
padding: 4px;
|
|
50
50
|
border-radius: 4px;
|
|
51
|
-
background: var(--dwui-page-title
|
|
52
|
-
color: var(--dwui-page-title
|
|
53
|
-
font-size: var(--dwui-page-title
|
|
54
|
-
font-weight: var(--dwui-page-title
|
|
51
|
+
background: var(--dwui-background-page-title, linear-gradient(light-dark(#323232, #3c3f45) 0%, light-dark(rgb(32, 32, 31), #2b2d31) 25%, light-dark(rgb(32, 32, 31), #2b2d31) 75%, light-dark(#323232, #3c3f45) 100%));
|
|
52
|
+
color: var(--dwui-color-text-page-title, rgb(220, 220, 220));
|
|
53
|
+
font-size: var(--dwui-font-size-page-title, 14px);
|
|
54
|
+
font-weight: var(--dwui-font-weight-page-title, normal);
|
|
55
55
|
}
|
|
56
56
|
</style>
|
package/src/tab-content.vue
CHANGED
|
@@ -106,7 +106,7 @@ const setLoading = (value: boolean) => {
|
|
|
106
106
|
padding: 4px 8px;
|
|
107
107
|
overflow: hidden;
|
|
108
108
|
/* 全幅を横断すると速度が出てカクつくため、既定は固定の移動量とease-outとフェードでスライドインする */
|
|
109
|
-
animation: dwui-tab-slide-in var(--dwui-tab-slide
|
|
109
|
+
animation: dwui-tab-slide-in var(--dwui-duration-tab-slide, 0.35s) var(--dwui-easing-tab-slide, cubic-bezier(0.22, 1, 0.36, 1));
|
|
110
110
|
}
|
|
111
111
|
|
|
112
112
|
:where(.dwui-tab-loading) {
|
|
@@ -116,14 +116,14 @@ const setLoading = (value: boolean) => {
|
|
|
116
116
|
display: flex;
|
|
117
117
|
align-items: center;
|
|
118
118
|
justify-content: center;
|
|
119
|
-
background: var(--dwui-loading
|
|
119
|
+
background: var(--dwui-overlay-color-loading, light-dark(rgba(0, 0, 0, 0.25), rgba(0, 0, 0, 0.45)));
|
|
120
120
|
}
|
|
121
121
|
|
|
122
122
|
:where(.dwui-tab-loading-spinner) {
|
|
123
|
-
width: var(--dwui-loading-spinner
|
|
124
|
-
height: var(--dwui-loading-spinner
|
|
125
|
-
border: 4px solid var(--dwui-loading-spinner-track, rgba(255, 255, 255, 0.4));
|
|
126
|
-
border-top-color: var(--dwui-loading-spinner
|
|
123
|
+
width: var(--dwui-size-loading-spinner, 40px);
|
|
124
|
+
height: var(--dwui-size-loading-spinner, 40px);
|
|
125
|
+
border: 4px solid var(--dwui-border-color-loading-spinner-track, rgba(255, 255, 255, 0.4));
|
|
126
|
+
border-top-color: var(--dwui-border-color-loading-spinner, #ffffff);
|
|
127
127
|
border-radius: 50%;
|
|
128
128
|
animation: dwui-tab-loading-spin 0.8s linear infinite;
|
|
129
129
|
}
|
|
@@ -137,7 +137,7 @@ const setLoading = (value: boolean) => {
|
|
|
137
137
|
@keyframes dwui-tab-slide-in {
|
|
138
138
|
0% {
|
|
139
139
|
opacity: 0;
|
|
140
|
-
transform: translateX(var(--dwui-tab-slide
|
|
140
|
+
transform: translateX(var(--dwui-distance-tab-slide, -128px));
|
|
141
141
|
}
|
|
142
142
|
100% {
|
|
143
143
|
opacity: 1;
|