@digitalwalletcorp/vue-core 1.2.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 CHANGED
@@ -19,7 +19,7 @@ yarn add @digitalwalletcorp/vue-core @digitalwalletcorp/vue-svg-icons
19
19
  > ##### ⚠️ Requirements
20
20
  >
21
21
  > * **Vue 3.5.29+**: Props are typed with Vue's `ClassValue`, which is exported since Vue 3.5.29.
22
- > * **@digitalwalletcorp/vue-svg-icons 1.13.0+**: A peer dependency for component icons. Installing it alongside `vue-core` ensures a single shared copy of the icon package in your application.
22
+ > * **@digitalwalletcorp/vue-svg-icons 1.15.3+**: Used for the icons in components.
23
23
 
24
24
  #### 📖 Usage
25
25
 
@@ -95,11 +95,22 @@ export default defineNuxtConfig({
95
95
 
96
96
  ##### ⚙️ Adapting to your application
97
97
 
98
- The components do not know your application's theme. Colors are referenced through `--dwui-*` CSS variables with fallbacks, and default styles have zero specificity (`:where()`).
99
- We recommend keeping a `vue-core-variables.css` in your application that connects your application's variables to the `--dwui-*` variables, and loading it after the stylesheets above. The variables of each component are listed in its document.
98
+ **🎨 Dark Mode & Theme Support**
99
+
100
+ Components automatically adapt to your application's color-scheme (supporting both light and dark modes natively).
101
+
102
+ - **Follow OS Setting:** Add `:root { color-scheme: light dark; }` to your global CSS.
103
+ - **Custom Theme Switching:** Change the CSS `color-scheme` property on `:root` or a parent container (e.g., `color-scheme: dark`). The components will switch automatically.
104
+ - **No Theme Switching:** If you don't specify `color-scheme`, the components will be displayed in light mode.
105
+
106
+ **🛠️ Customizing Styles (`--dwui-*` Variables)**
107
+
108
+ Default styles use CSS variables (`--dwui-*`) and zero-specificity selectors (`:where()`), making them easy to override. The variables of each component are listed in its document.
109
+
110
+ We recommend creating a `dwui-variables.css` file to map your application's design tokens to the library's `--dwui-*` variables, and importing it after the library stylesheet. If you use both `vue-forms` and `vue-core`, you can use a single `dwui-variables.css` file for both libraries, as they share common variables like those for focus rings.
100
111
 
101
112
  ```css
102
- /* vue-core-variables.css */
113
+ /* dwui-variables.css */
103
114
  :root {
104
115
  --dwui-background-tab-header: var(--app-tab-header-background);
105
116
  --dwui-color-text-tab-header: var(--app-tab-header-text);
@@ -115,7 +126,7 @@ export default defineNuxtConfig({
115
126
  '@digitalwalletcorp/vue-core/style.css',
116
127
  '@digitalwalletcorp/vue-svg-icons/style.css',
117
128
  '@/assets/css/default.css', // your global CSS
118
- '@/assets/css/vue-core-variables.css'
129
+ '@/assets/css/dwui-variables.css'
119
130
  ]
120
131
  });
121
132
  ```
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./accordion-fieldset.vue_vue_type_style_index_0_lang-t9NqmoZW.cjs");exports.default=e._sfc_main;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./accordion-fieldset.vue_vue_type_style_index_0_lang-DoM5QjpJ.cjs");exports.default=e._sfc_main;
@@ -1,4 +1,4 @@
1
- import { _ as f } from "./accordion-fieldset.vue_vue_type_style_index_0_lang-n-IZxUiu.js";
1
+ import { _ as f } from "./accordion-fieldset.vue_vue_type_style_index_0_lang-Cf4czDXz.js";
2
2
  export {
3
3
  f as default
4
4
  };
@@ -1,8 +1,8 @@
1
- import { defineComponent as f, useSlots as m, ref as g, reactive as x, onMounted as _, openBlock as i, createElementBlock as k, createElementVNode as d, createVNode as C, unref as s, createBlock as b, createSlots as y, withCtx as r, renderSlot as l, createTextVNode as h, toDisplayString as w, createCommentVNode as B, normalizeClass as S } from "vue";
1
+ import { defineComponent as f, useSlots as m, ref as g, reactive as _, onMounted as x, openBlock as i, createElementBlock as k, createElementVNode as d, createVNode as C, unref as s, createBlock as b, createSlots as h, withCtx as r, renderSlot as l, createTextVNode as w, toDisplayString as y, createCommentVNode as B, normalizeClass as S } from "vue";
2
2
  import { SvgTriangleButton as v } from "@digitalwalletcorp/vue-svg-icons";
3
3
  import { _ as E } from "./label-icon.vue_vue_type_style_index_0_lang-me52HE2V.js";
4
4
  import { u as N } from "./use-shrinkable-CS2bmsJJ.js";
5
- const V = ["disabled"], $ = ["aria-expanded"], q = /* @__PURE__ */ f({
5
+ const V = ["disabled"], $ = { class: "dwui-accordion-legend" }, T = ["aria-expanded"], A = /* @__PURE__ */ f({
6
6
  __name: "accordion-fieldset",
7
7
  props: {
8
8
  legend: {},
@@ -10,18 +10,18 @@ const V = ["disabled"], $ = ["aria-expanded"], q = /* @__PURE__ */ f({
10
10
  initialExpand: { type: Boolean }
11
11
  },
12
12
  setup(c) {
13
- const n = c, o = m(), a = g(), e = x({
13
+ const n = c, o = m(), a = g(), e = _({
14
14
  expanded: !0
15
15
  }), p = N(a), u = () => {
16
16
  e.expanded = !e.expanded;
17
17
  };
18
- return _(() => {
18
+ return x(() => {
19
19
  e.expanded = !!n.initialExpand;
20
- }), (t, T) => (i(), k("fieldset", {
20
+ }), (t, z) => (i(), k("fieldset", {
21
21
  class: "dwui-accordion-fieldset",
22
22
  disabled: n.disabled
23
23
  }, [
24
- d("legend", null, [
24
+ d("legend", $, [
25
25
  d("button", {
26
26
  type: "button",
27
27
  class: "dwui-accordion-toggle",
@@ -31,7 +31,7 @@ const V = ["disabled"], $ = ["aria-expanded"], q = /* @__PURE__ */ f({
31
31
  C(s(v), {
32
32
  direction: e.expanded ? "up" : "down"
33
33
  }, null, 8, ["direction"]),
34
- n.legend != null || o.legend != null || o.icon != null ? (i(), b(E, { key: 0 }, y({ _: 2 }, [
34
+ n.legend != null || o.legend != null || o.icon != null ? (i(), b(E, { key: 0 }, h({ _: 2 }, [
35
35
  o.icon != null ? {
36
36
  name: "icon",
37
37
  fn: r(() => [
@@ -43,13 +43,13 @@ const V = ["disabled"], $ = ["aria-expanded"], q = /* @__PURE__ */ f({
43
43
  name: "default",
44
44
  fn: r(() => [
45
45
  l(t.$slots, "legend", {}, () => [
46
- h(w(n.legend), 1)
46
+ w(y(n.legend), 1)
47
47
  ])
48
48
  ]),
49
49
  key: "1"
50
50
  } : void 0
51
51
  ]), 1024)) : B("", !0)
52
- ], 8, $)
52
+ ], 8, T)
53
53
  ]),
54
54
  d("div", {
55
55
  ref_key: "refContents",
@@ -62,5 +62,5 @@ const V = ["disabled"], $ = ["aria-expanded"], q = /* @__PURE__ */ f({
62
62
  }
63
63
  });
64
64
  export {
65
- q as _
65
+ A as _
66
66
  };
@@ -0,0 +1 @@
1
+ "use strict";const e=require("vue"),c=require("@digitalwalletcorp/vue-svg-icons"),r=require("./label-icon.vue_vue_type_style_index_0_lang-D9Cimu20.cjs"),u=require("./use-shrinkable-Cu9JQZll.cjs"),p=["disabled"],_={class:"dwui-accordion-legend"},g=["aria-expanded"],f=e.defineComponent({__name:"accordion-fieldset",props:{legend:{},disabled:{type:Boolean},initialExpand:{type:Boolean}},setup(s){const t=s,o=e.useSlots(),l=e.ref(),n=e.reactive({expanded:!0}),a=u.useShrinkable(l),i=()=>{n.expanded=!n.expanded};return e.onMounted(()=>{n.expanded=!!t.initialExpand}),(d,x)=>(e.openBlock(),e.createElementBlock("fieldset",{class:"dwui-accordion-fieldset",disabled:t.disabled},[e.createElementVNode("legend",_,[e.createElementVNode("button",{type:"button",class:"dwui-accordion-toggle","aria-expanded":n.expanded,onClick:i},[e.createVNode(e.unref(c.SvgTriangleButton),{direction:n.expanded?"up":"down"},null,8,["direction"]),t.legend!=null||o.legend!=null||o.icon!=null?(e.openBlock(),e.createBlock(r._sfc_main,{key:0},e.createSlots({_:2},[o.icon!=null?{name:"icon",fn:e.withCtx(()=>[e.renderSlot(d.$slots,"icon")]),key:"0"}:void 0,t.legend!=null||o.legend!=null?{name:"default",fn:e.withCtx(()=>[e.renderSlot(d.$slots,"legend",{},()=>[e.createTextVNode(e.toDisplayString(t.legend),1)])]),key:"1"}:void 0]),1024)):e.createCommentVNode("",!0)],8,g)]),e.createElementVNode("div",{ref_key:"refContents",ref:l,class:e.normalizeClass(["dwui-accordion-contents",e.unref(a)?n.expanded?"dwui-expanded":"dwui-shrunk":""])},[e.renderSlot(d.$slots,"default")],2)],8,p))}});exports._sfc_main=f;
@@ -0,0 +1 @@
1
+ "use strict";const e=require("./accordion-fieldset.vue_vue_type_style_index_0_lang-DoM5QjpJ.cjs"),_=require("./accordion-section.vue_vue_type_style_index_0_lang-CFDdUEnn.cjs"),n=require("./hourglass-loading.vue_vue_type_style_index_0_lang-C72UVA9W.cjs"),t=require("./label-button.vue_vue_type_style_index_0_lang-D7ZgfZOL.cjs"),i=require("./label-icon.vue_vue_type_style_index_0_lang-D9Cimu20.cjs"),o=require("./page-section.vue_vue_type_style_index_0_lang-DEAkTLxd.cjs"),a=require("./page-title.vue_vue_type_style_index_0_lang-BqIsIks5.cjs"),c=require("./tab-content.vue_vue_type_style_index_0_lang-BeCi7Xkp.cjs"),s=require("./tab-group.vue_vue_type_style_index_0_lang-CMaufRJV.cjs"),u=Object.freeze(Object.defineProperty({__proto__:null,AccordionFieldset:e._sfc_main,AccordionSection:_._sfc_main,HourglassLoading:n._sfc_main,LabelButton:t._sfc_main,LabelIcon:i._sfc_main,PageSection:o._sfc_main,PageTitle:a._sfc_main,TabContent:c._sfc_main,TabGroup:s._sfc_main},Symbol.toStringTag,{value:"Module"}));exports.components=u;
@@ -1,7 +1,7 @@
1
- import { _ as o } from "./accordion-fieldset.vue_vue_type_style_index_0_lang-n-IZxUiu.js";
1
+ import { _ as o } from "./accordion-fieldset.vue_vue_type_style_index_0_lang-Cf4czDXz.js";
2
2
  import { _ } from "./accordion-section.vue_vue_type_style_index_0_lang-Gvjjx02P.js";
3
3
  import { _ as a } from "./hourglass-loading.vue_vue_type_style_index_0_lang-DkUGIxQ2.js";
4
- import { _ as m } from "./label-button.vue_vue_type_script_setup_true_lang-DorC4pKz.js";
4
+ import { _ as m } from "./label-button.vue_vue_type_style_index_0_lang-DqRYddVt.js";
5
5
  import { _ as r } from "./label-icon.vue_vue_type_style_index_0_lang-me52HE2V.js";
6
6
  import { _ as i } from "./page-section.vue_vue_type_style_index_0_lang-DpVQe_rV.js";
7
7
  import { _ as t } from "./page-title.vue_vue_type_style_index_0_lang-ChZot85K.js";
package/lib/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./accordion-fieldset.vue_vue_type_style_index_0_lang-t9NqmoZW.cjs"),_=require("./accordion-section.vue_vue_type_style_index_0_lang-CFDdUEnn.cjs"),n=require("./hourglass-loading.vue_vue_type_style_index_0_lang-C72UVA9W.cjs"),t=require("./label-button.vue_vue_type_script_setup_true_lang-BwVOxaJP.cjs"),i=require("./label-icon.vue_vue_type_style_index_0_lang-D9Cimu20.cjs"),a=require("./page-section.vue_vue_type_style_index_0_lang-DEAkTLxd.cjs"),u=require("./page-title.vue_vue_type_style_index_0_lang-BqIsIks5.cjs"),o=require("./tab-content.vue_vue_type_style_index_0_lang-BeCi7Xkp.cjs"),s=require("./tab-group.vue_vue_type_style_index_0_lang-CMaufRJV.cjs");exports.AccordionFieldset=e._sfc_main;exports.AccordionSection=_._sfc_main;exports.HourglassLoading=n._sfc_main;exports.LabelButton=t._sfc_main;exports.LabelIcon=i._sfc_main;exports.PageSection=a._sfc_main;exports.PageTitle=u._sfc_main;exports.TabContent=o._sfc_main;exports.TabGroup=s._sfc_main;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./accordion-fieldset.vue_vue_type_style_index_0_lang-DoM5QjpJ.cjs"),_=require("./accordion-section.vue_vue_type_style_index_0_lang-CFDdUEnn.cjs"),n=require("./hourglass-loading.vue_vue_type_style_index_0_lang-C72UVA9W.cjs"),t=require("./label-button.vue_vue_type_style_index_0_lang-D7ZgfZOL.cjs"),i=require("./label-icon.vue_vue_type_style_index_0_lang-D9Cimu20.cjs"),a=require("./page-section.vue_vue_type_style_index_0_lang-DEAkTLxd.cjs"),o=require("./page-title.vue_vue_type_style_index_0_lang-BqIsIks5.cjs"),u=require("./tab-content.vue_vue_type_style_index_0_lang-BeCi7Xkp.cjs"),s=require("./tab-group.vue_vue_type_style_index_0_lang-CMaufRJV.cjs");exports.AccordionFieldset=e._sfc_main;exports.AccordionSection=_._sfc_main;exports.HourglassLoading=n._sfc_main;exports.LabelButton=t._sfc_main;exports.LabelIcon=i._sfc_main;exports.PageSection=a._sfc_main;exports.PageTitle=o._sfc_main;exports.TabContent=u._sfc_main;exports.TabGroup=s._sfc_main;
package/lib/index.js CHANGED
@@ -1,7 +1,7 @@
1
- import { _ as e } from "./accordion-fieldset.vue_vue_type_style_index_0_lang-n-IZxUiu.js";
1
+ import { _ as e } from "./accordion-fieldset.vue_vue_type_style_index_0_lang-Cf4czDXz.js";
2
2
  import { _ as t } from "./accordion-section.vue_vue_type_style_index_0_lang-Gvjjx02P.js";
3
3
  import { _ as p } from "./hourglass-loading.vue_vue_type_style_index_0_lang-DkUGIxQ2.js";
4
- import { _ as m } from "./label-button.vue_vue_type_script_setup_true_lang-DorC4pKz.js";
4
+ import { _ as m } from "./label-button.vue_vue_type_style_index_0_lang-DqRYddVt.js";
5
5
  import { _ as x } from "./label-icon.vue_vue_type_style_index_0_lang-me52HE2V.js";
6
6
  import { _ as c } from "./page-section.vue_vue_type_style_index_0_lang-DpVQe_rV.js";
7
7
  import { _ as l } from "./page-title.vue_vue_type_style_index_0_lang-ChZot85K.js";
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./label-button.vue_vue_type_script_setup_true_lang-BwVOxaJP.cjs");exports.default=e._sfc_main;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./label-button.vue_vue_type_style_index_0_lang-D7ZgfZOL.cjs");exports.default=e._sfc_main;
@@ -1,4 +1,4 @@
1
- import { _ as f } from "./label-button.vue_vue_type_script_setup_true_lang-DorC4pKz.js";
1
+ import { _ as f } from "./label-button.vue_vue_type_style_index_0_lang-DqRYddVt.js";
2
2
  export {
3
3
  f as default
4
4
  };
@@ -0,0 +1 @@
1
+ "use strict";const e=require("vue"),o=require("./label-icon.vue_vue_type_style_index_0_lang-D9Cimu20.cjs"),a={class:"dwui-label-button"},c=e.defineComponent({__name:"label-button",props:{preset:{},gap:{},iconClass:{type:[Boolean,null,String,Object,Array]},iconStyle:{type:[Boolean,null,String,Object,Array]},labelClass:{type:[Boolean,null,String,Object,Array]},labelStyle:{type:[Boolean,null,String,Object,Array]}},setup(s){const l=s,t=e.useSlots();return(n,r)=>(e.openBlock(),e.createElementBlock("button",a,[e.createVNode(o._sfc_main,{preset:l.preset,gap:l.gap,"icon-class":l.iconClass,"icon-style":l.iconStyle,"label-class":l.labelClass,"label-style":l.labelStyle},e.createSlots({_:2},[t.icon!=null?{name:"icon",fn:e.withCtx(()=>[e.renderSlot(n.$slots,"icon")]),key:"0"}:void 0,t.default!=null?{name:"default",fn:e.withCtx(()=>[e.renderSlot(n.$slots,"default")]),key:"1"}:void 0]),1032,["preset","gap","icon-class","icon-style","label-class","label-style"])]))}});exports._sfc_main=c;
@@ -1,6 +1,6 @@
1
- import { defineComponent as s, useSlots as r, openBlock as c, createElementBlock as i, createVNode as p, createSlots as y, withCtx as n, renderSlot as o } from "vue";
2
- import { _ as u } from "./label-icon.vue_vue_type_style_index_0_lang-me52HE2V.js";
3
- const f = /* @__PURE__ */ s({
1
+ import { defineComponent as a, useSlots as c, openBlock as r, createElementBlock as i, createVNode as p, createSlots as y, withCtx as o, renderSlot as n } from "vue";
2
+ import { _ as b } from "./label-icon.vue_vue_type_style_index_0_lang-me52HE2V.js";
3
+ const u = { class: "dwui-label-button" }, d = /* @__PURE__ */ a({
4
4
  __name: "label-button",
5
5
  props: {
6
6
  preset: {},
@@ -10,10 +10,10 @@ const f = /* @__PURE__ */ s({
10
10
  labelClass: { type: [Boolean, null, String, Object, Array] },
11
11
  labelStyle: { type: [Boolean, null, String, Object, Array] }
12
12
  },
13
- setup(a) {
14
- const e = a, l = r();
15
- return (t, b) => (c(), i("button", null, [
16
- p(u, {
13
+ setup(s) {
14
+ const e = s, l = c();
15
+ return (t, m) => (r(), i("button", u, [
16
+ p(b, {
17
17
  preset: e.preset,
18
18
  gap: e.gap,
19
19
  "icon-class": e.iconClass,
@@ -23,15 +23,15 @@ const f = /* @__PURE__ */ s({
23
23
  }, y({ _: 2 }, [
24
24
  l.icon != null ? {
25
25
  name: "icon",
26
- fn: n(() => [
27
- o(t.$slots, "icon")
26
+ fn: o(() => [
27
+ n(t.$slots, "icon")
28
28
  ]),
29
29
  key: "0"
30
30
  } : void 0,
31
31
  l.default != null ? {
32
32
  name: "default",
33
- fn: n(() => [
34
- o(t.$slots, "default")
33
+ fn: o(() => [
34
+ n(t.$slots, "default")
35
35
  ]),
36
36
  key: "1"
37
37
  } : void 0
@@ -40,5 +40,5 @@ const f = /* @__PURE__ */ s({
40
40
  }
41
41
  });
42
42
  export {
43
- f as _
43
+ d as _
44
44
  };
package/lib/nuxt.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("@nuxt/kit"),r=require("./components-CNOeuZPu.cjs");var t=typeof document<"u"?document.currentScript:null;const u=e.defineNuxtModule({meta:{name:"@digitalwalletcorp/vue-core",configKey:"vueCore"},setup(){const n=e.createResolver(typeof document>"u"?require("url").pathToFileURL(__filename).href:t&&t.tagName.toUpperCase()==="SCRIPT"&&t.src||new URL("nuxt.cjs",document.baseURI).href);for(const o of Object.keys(r.components))e.addComponent({name:o,export:o,filePath:n.resolve("./index")})}});exports.default=u;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("@nuxt/kit"),r=require("./components-C63HJoCn.cjs");var t=typeof document<"u"?document.currentScript:null;const u=e.defineNuxtModule({meta:{name:"@digitalwalletcorp/vue-core",configKey:"vueCore"},setup(){const n=e.createResolver(typeof document>"u"?require("url").pathToFileURL(__filename).href:t&&t.tagName.toUpperCase()==="SCRIPT"&&t.src||new URL("nuxt.cjs",document.baseURI).href);for(const o of Object.keys(r.components))e.addComponent({name:o,export:o,filePath:n.resolve("./index")})}});exports.default=u;
package/lib/nuxt.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { defineNuxtModule as t, createResolver as r, addComponent as n } from "@nuxt/kit";
2
- import { c as a } from "./components-DBK8NUBh.js";
2
+ import { c as a } from "./components-q4Cf97bO.js";
3
3
  const c = t({
4
4
  meta: {
5
5
  name: "@digitalwalletcorp/vue-core",
package/lib/register.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./components-CNOeuZPu.cjs");function r(e){for(const[o,n]of Object.entries(t.components))e.component(o,n)}exports.registerComponents=r;
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;
package/lib/register.js CHANGED
@@ -1,4 +1,4 @@
1
- import { c as t } from "./components-DBK8NUBh.js";
1
+ import { c as t } from "./components-q4Cf97bO.js";
2
2
  function m(o) {
3
3
  for (const [n, e] of Object.entries(t))
4
4
  o.component(n, e);
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-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-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;cursor:pointer}:where(.dwui-accordion-section-toggle:disabled){opacity:.6;cursor:not-allowed}: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-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(#323232 0%, rgb(32, 32, 31) 25%, rgb(32, 32, 31) 75%, #323232 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, rgba(0, 0, 0, .25))}: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;margin-top:5px;padding-bottom:4px}:where(.dwui-tab-radio){display:none}:where(.dwui-tab-item){display:block;min-width:100px;padding:0 4px;border:1px solid var(--dwui-border-color-tab, #565656);border-bottom:1px solid var(--dwui-border-color-tab-header-accent, #5ab4bd);background:var(--dwui-background-tab-header, linear-gradient(#1313c7, navy));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(#1313c7, rgb(149, 149, 234), #1313c7));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, gray);cursor:not-allowed}:where(.dwui-tab-item.dwui-tab-warn){background:var(--dwui-background-tab-header-warn, #efef13);color:var(--dwui-color-text-tab-header-warn, midnightblue)}:where(.dwui-tab-radio:checked+.dwui-tab-item.dwui-tab-warn){background:var(--dwui-background-tab-header-warn-selected, linear-gradient(#fafa06, rgb(232, 238, 206), #fafa06))}:where(.dwui-tab-item.dwui-tab-error){background:var(--dwui-background-tab-header-error, red);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(#ff0000, rgb(240, 136, 136), #ff0000))}:where(.dwui-tab-radio:not(:checked)+.dwui-tab-item:hover){box-shadow:inset 0 0 0 999px var(--dwui-overlay-color-tab-header-hover, rgba(255, 255, 255, .35))}:where(.dwui-tab-items){height:100%;border:1px solid var(--dwui-border-color-tab, #565656);overflow:hidden}
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}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@digitalwalletcorp/vue-core",
3
- "version": "1.2.0",
3
+ "version": "1.2.1",
4
4
  "type": "module",
5
5
  "description": "Basic UI components for Vue 3",
6
6
  "main": "lib/index.cjs",
@@ -51,6 +51,7 @@
51
51
  },
52
52
  "scripts": {
53
53
  "build": "vite build",
54
+ "yarn:dedupe": "npx yarn-deduplicate --strategy highest yarn.lock",
54
55
  "install:dev": "rm -rf lib dest && find node_modules -mindepth 1 -delete && yarn install",
55
56
  "typecheck": "vue-tsc --noEmit -p tsconfig.json",
56
57
  "version:patch": "npm version patch",
@@ -83,11 +84,11 @@
83
84
  "src/**/*"
84
85
  ],
85
86
  "peerDependencies": {
86
- "@digitalwalletcorp/vue-svg-icons": "^1.13.0",
87
+ "@digitalwalletcorp/vue-svg-icons": "^1.15.3",
87
88
  "vue": "^3.5.29"
88
89
  },
89
90
  "devDependencies": {
90
- "@digitalwalletcorp/vue-svg-icons": "^1.13.0",
91
+ "@digitalwalletcorp/vue-svg-icons": "^1.15.3",
91
92
  "@nuxt/kit": "^3.17.5",
92
93
  "@types/node": "24.13.6",
93
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
- /* 詳細度0のため、利用側がbutton要素に装飾を当てている場合はそちらが優先される。打ち消しは利用側のCSSで行う */
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;
@@ -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
  }
@@ -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>
@@ -48,7 +48,7 @@ const slots = defineSlots<Slots>();
48
48
  width: var(--dwui-width-page-title, auto);
49
49
  padding: 4px;
50
50
  border-radius: 4px;
51
- background: var(--dwui-background-page-title, linear-gradient(#323232 0%, rgb(32, 32, 31) 25%, rgb(32, 32, 31) 75%, #323232 100%));
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
52
  color: var(--dwui-color-text-page-title, rgb(220, 220, 220));
53
53
  font-size: var(--dwui-font-size-page-title, 14px);
54
54
  font-weight: var(--dwui-font-weight-page-title, normal);
@@ -116,7 +116,7 @@ const setLoading = (value: boolean) => {
116
116
  display: flex;
117
117
  align-items: center;
118
118
  justify-content: center;
119
- background: var(--dwui-overlay-color-loading, rgba(0, 0, 0, 0.25));
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) {
package/src/tab-group.vue CHANGED
@@ -178,21 +178,27 @@ const onChangeTab = (labelId: string) => {
178
178
  display: flex;
179
179
  flex-direction: row;
180
180
  flex-wrap: wrap;
181
+ position: relative;
181
182
  margin-top: 5px;
182
183
  padding-bottom: 4px;
183
184
  }
184
185
 
185
186
  :where(.dwui-tab-radio) {
186
- display: none;
187
+ position: absolute;
188
+ width: 1px;
189
+ height: 1px;
190
+ margin: 0;
191
+ opacity: 0;
192
+ pointer-events: none;
187
193
  }
188
194
 
189
195
  :where(.dwui-tab-item) {
190
196
  display: block;
191
197
  min-width: 100px;
192
198
  padding: 0 4px;
193
- border: 1px solid var(--dwui-border-color-tab, #565656);
199
+ border: 1px solid var(--dwui-border-color-tab, light-dark(#565656, #8a8a8a));
194
200
  border-bottom: 1px solid var(--dwui-border-color-tab-header-accent, #5ab4bd);
195
- background: var(--dwui-background-tab-header, linear-gradient(#1313c7, navy));
201
+ background: var(--dwui-background-tab-header, linear-gradient(light-dark(#1313c7, #2a3a8f), light-dark(navy, #141c4d)));
196
202
  line-height: 2em;
197
203
  text-align: center;
198
204
  white-space: nowrap;
@@ -203,43 +209,48 @@ const onChangeTab = (labelId: string) => {
203
209
  }
204
210
 
205
211
  :where(.dwui-tab-radio:checked + .dwui-tab-item) {
206
- background: var(--dwui-background-tab-header-selected, linear-gradient(#1313c7, rgb(149, 149, 234), #1313c7));
212
+ background: var(--dwui-background-tab-header-selected, linear-gradient(light-dark(#1313c7, #2a3a8f), light-dark(rgb(149, 149, 234), #5a62b8), light-dark(#1313c7, #2a3a8f)));
207
213
  color: var(--dwui-color-text-tab-header-selected, azure);
208
214
  /* 選択済みのタブは操作の対象ではないためカーソルを既定にする */
209
215
  cursor: default;
210
216
  }
211
217
 
212
218
  :where(.dwui-tab-radio:disabled + .dwui-tab-item) {
213
- background: var(--dwui-background-tab-header-disabled, gray);
219
+ background: var(--dwui-background-tab-header-disabled, light-dark(gray, #4a4a4a));
214
220
  cursor: not-allowed;
215
221
  }
216
222
 
217
223
  :where(.dwui-tab-item.dwui-tab-warn) {
218
- background: var(--dwui-background-tab-header-warn, #efef13);
219
- color: var(--dwui-color-text-tab-header-warn, midnightblue);
224
+ background: var(--dwui-background-tab-header-warn, light-dark(#efef13, #8a8a10));
225
+ color: var(--dwui-color-text-tab-header-warn, light-dark(midnightblue, #fffbd0));
220
226
  }
221
227
 
222
228
  :where(.dwui-tab-radio:checked + .dwui-tab-item.dwui-tab-warn) {
223
- background: var(--dwui-background-tab-header-warn-selected, linear-gradient(#fafa06, rgb(232, 238, 206), #fafa06));
229
+ 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)));
224
230
  }
225
231
 
226
232
  :where(.dwui-tab-item.dwui-tab-error) {
227
- background: var(--dwui-background-tab-header-error, red);
233
+ background: var(--dwui-background-tab-header-error, light-dark(red, #a01818));
228
234
  color: var(--dwui-color-text-tab-header-error, azure);
229
235
  }
230
236
 
231
237
  :where(.dwui-tab-radio:checked + .dwui-tab-item.dwui-tab-error) {
232
- background: var(--dwui-background-tab-header-error-selected, linear-gradient(#ff0000, rgb(240, 136, 136), #ff0000));
238
+ 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)));
233
239
  }
234
240
 
235
241
  :where(.dwui-tab-radio:not(:checked) + .dwui-tab-item:hover) {
236
242
  /* 背景の上に半透明の白を重ね、枠線と文字はそのままで背景だけを明るくする */
237
- box-shadow: inset 0 0 0 999px var(--dwui-overlay-color-tab-header-hover, rgba(255, 255, 255, 0.35));
243
+ box-shadow: inset 0 0 0 999px var(--dwui-overlay-color-tab-header-hover, light-dark(rgba(255, 255, 255, 0.35), rgba(255, 255, 255, 0.15)));
244
+ }
245
+
246
+ :where(.dwui-tab-radio:focus-visible + .dwui-tab-item) {
247
+ outline: var(--dwui-width-focus-ring, 2px) solid var(--dwui-outline-color-focus-ring, Highlight);
248
+ outline-offset: var(--dwui-offset-focus-ring, 2px);
238
249
  }
239
250
 
240
251
  :where(.dwui-tab-items) {
241
252
  height: 100%;
242
- border: 1px solid var(--dwui-border-color-tab, #565656);
253
+ border: 1px solid var(--dwui-border-color-tab, light-dark(#565656, #8a8a8a));
243
254
  /* 中身を切り替えたときのスライドを枠内に収める */
244
255
  overflow: hidden;
245
256
  }
@@ -1 +0,0 @@
1
- "use strict";const e=require("vue"),r=require("@digitalwalletcorp/vue-svg-icons"),c=require("./label-icon.vue_vue_type_style_index_0_lang-D9Cimu20.cjs"),u=require("./use-shrinkable-Cu9JQZll.cjs"),p=["disabled"],_=["aria-expanded"],f=e.defineComponent({__name:"accordion-fieldset",props:{legend:{},disabled:{type:Boolean},initialExpand:{type:Boolean}},setup(a){const t=a,o=e.useSlots(),l=e.ref(),n=e.reactive({expanded:!0}),i=u.useShrinkable(l),s=()=>{n.expanded=!n.expanded};return e.onMounted(()=>{n.expanded=!!t.initialExpand}),(d,g)=>(e.openBlock(),e.createElementBlock("fieldset",{class:"dwui-accordion-fieldset",disabled:t.disabled},[e.createElementVNode("legend",null,[e.createElementVNode("button",{type:"button",class:"dwui-accordion-toggle","aria-expanded":n.expanded,onClick:s},[e.createVNode(e.unref(r.SvgTriangleButton),{direction:n.expanded?"up":"down"},null,8,["direction"]),t.legend!=null||o.legend!=null||o.icon!=null?(e.openBlock(),e.createBlock(c._sfc_main,{key:0},e.createSlots({_:2},[o.icon!=null?{name:"icon",fn:e.withCtx(()=>[e.renderSlot(d.$slots,"icon")]),key:"0"}:void 0,t.legend!=null||o.legend!=null?{name:"default",fn:e.withCtx(()=>[e.renderSlot(d.$slots,"legend",{},()=>[e.createTextVNode(e.toDisplayString(t.legend),1)])]),key:"1"}:void 0]),1024)):e.createCommentVNode("",!0)],8,_)]),e.createElementVNode("div",{ref_key:"refContents",ref:l,class:e.normalizeClass(["dwui-accordion-contents",e.unref(i)?n.expanded?"dwui-expanded":"dwui-shrunk":""])},[e.renderSlot(d.$slots,"default")],2)],8,p))}});exports._sfc_main=f;
@@ -1 +0,0 @@
1
- "use strict";const e=require("./accordion-fieldset.vue_vue_type_style_index_0_lang-t9NqmoZW.cjs"),_=require("./accordion-section.vue_vue_type_style_index_0_lang-CFDdUEnn.cjs"),n=require("./hourglass-loading.vue_vue_type_style_index_0_lang-C72UVA9W.cjs"),t=require("./label-button.vue_vue_type_script_setup_true_lang-BwVOxaJP.cjs"),i=require("./label-icon.vue_vue_type_style_index_0_lang-D9Cimu20.cjs"),o=require("./page-section.vue_vue_type_style_index_0_lang-DEAkTLxd.cjs"),c=require("./page-title.vue_vue_type_style_index_0_lang-BqIsIks5.cjs"),s=require("./tab-content.vue_vue_type_style_index_0_lang-BeCi7Xkp.cjs"),u=require("./tab-group.vue_vue_type_style_index_0_lang-CMaufRJV.cjs"),a=Object.freeze(Object.defineProperty({__proto__:null,AccordionFieldset:e._sfc_main,AccordionSection:_._sfc_main,HourglassLoading:n._sfc_main,LabelButton:t._sfc_main,LabelIcon:i._sfc_main,PageSection:o._sfc_main,PageTitle:c._sfc_main,TabContent:s._sfc_main,TabGroup:u._sfc_main},Symbol.toStringTag,{value:"Module"}));exports.components=a;
@@ -1 +0,0 @@
1
- "use strict";const e=require("vue"),a=require("./label-icon.vue_vue_type_style_index_0_lang-D9Cimu20.cjs"),o=e.defineComponent({__name:"label-button",props:{preset:{},gap:{},iconClass:{type:[Boolean,null,String,Object,Array]},iconStyle:{type:[Boolean,null,String,Object,Array]},labelClass:{type:[Boolean,null,String,Object,Array]},labelStyle:{type:[Boolean,null,String,Object,Array]}},setup(s){const l=s,t=e.useSlots();return(n,c)=>(e.openBlock(),e.createElementBlock("button",null,[e.createVNode(a._sfc_main,{preset:l.preset,gap:l.gap,"icon-class":l.iconClass,"icon-style":l.iconStyle,"label-class":l.labelClass,"label-style":l.labelStyle},e.createSlots({_:2},[t.icon!=null?{name:"icon",fn:e.withCtx(()=>[e.renderSlot(n.$slots,"icon")]),key:"0"}:void 0,t.default!=null?{name:"default",fn:e.withCtx(()=>[e.renderSlot(n.$slots,"default")]),key:"1"}:void 0]),1032,["preset","gap","icon-class","icon-style","label-class","label-style"])]))}});exports._sfc_main=o;