@digitalwalletcorp/vue-core 1.2.1 → 1.3.0
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 +79 -3
- package/lib/accordion-fieldset.d.cts +14 -4
- package/lib/accordion-fieldset.d.ts +14 -4
- package/lib/accordion-section.d.cts +20 -10
- package/lib/accordion-section.d.ts +20 -10
- package/lib/components-2zQ2SZuY.js +26 -0
- package/lib/components-HaiHcseF.cjs +1 -0
- package/lib/components.d.cts +10 -0
- package/lib/components.d.ts +10 -0
- package/lib/copy-button.d.cts +34 -0
- package/lib/copy-button.d.ts +34 -0
- package/lib/dark-mode-selector.d.cts +32 -0
- package/lib/dark-mode-selector.d.ts +32 -0
- package/lib/data-table.d.cts +30 -0
- package/lib/data-table.d.ts +30 -0
- package/lib/help-button.d.cts +39 -0
- package/lib/help-button.d.ts +39 -0
- package/lib/help-popper.d.cts +39 -0
- package/lib/help-popper.d.ts +39 -0
- package/lib/helpers/data-table-csv.d.cts +17 -0
- package/lib/helpers/data-table-csv.d.ts +17 -0
- package/lib/helpers/show-floating-component.d.cts +82 -0
- package/lib/helpers/show-floating-component.d.ts +82 -0
- package/lib/helpers/show-modal-dialog.d.cts +73 -0
- package/lib/helpers/show-modal-dialog.d.ts +73 -0
- package/lib/helpers/show-overlay-box.d.cts +53 -0
- package/lib/helpers/show-overlay-box.d.ts +53 -0
- package/lib/helpers/show-screen-loading.d.cts +20 -0
- package/lib/helpers/show-screen-loading.d.ts +20 -0
- package/lib/helpers/show-snackbar.d.cts +47 -0
- package/lib/helpers/show-snackbar.d.ts +47 -0
- package/lib/hourglass-loading.d.cts +1 -1
- package/lib/hourglass-loading.d.ts +1 -1
- package/lib/index.cjs +1 -1
- package/lib/index.d.cts +34 -0
- package/lib/index.d.ts +34 -0
- package/lib/index.js +445 -18
- package/lib/internal/anchored-popover.d.cts +35 -0
- package/lib/internal/anchored-popover.d.ts +35 -0
- package/lib/internal/anchored-position.d.cts +50 -0
- package/lib/internal/anchored-position.d.ts +50 -0
- package/lib/internal/data-table-controls.d.cts +42 -0
- package/lib/internal/data-table-controls.d.ts +42 -0
- package/lib/internal/data-table-value.d.cts +32 -0
- package/lib/internal/data-table-value.d.ts +32 -0
- package/lib/internal/floating-component.d.cts +52 -0
- package/lib/internal/floating-component.d.ts +52 -0
- package/lib/internal/icon-popper.d.cts +32 -0
- package/lib/internal/icon-popper.d.ts +32 -0
- package/lib/internal/mount-window.d.cts +39 -0
- package/lib/internal/mount-window.d.ts +39 -0
- package/lib/internal/movable-window.d.cts +55 -0
- package/lib/internal/movable-window.d.ts +55 -0
- package/lib/internal/opened-overlay-boxes.d.cts +2 -0
- package/lib/internal/opened-overlay-boxes.d.ts +2 -0
- package/lib/internal/pagination.d.cts +22 -0
- package/lib/internal/pagination.d.ts +22 -0
- package/lib/internal/snackbar-container.d.cts +20 -0
- package/lib/internal/snackbar-container.d.ts +20 -0
- package/lib/internal/snackbar-item.d.cts +17 -0
- package/lib/internal/snackbar-item.d.ts +17 -0
- package/lib/internal/tab-group-context.d.cts +4 -2
- package/lib/internal/tab-group-context.d.ts +4 -2
- package/lib/internal/use-movable-window.d.cts +44 -0
- package/lib/internal/use-movable-window.d.ts +44 -0
- package/lib/internal/window-order.d.cts +6 -0
- package/lib/internal/window-order.d.ts +6 -0
- package/lib/intersection-lazy-component.d.cts +32 -0
- package/lib/intersection-lazy-component.d.ts +32 -0
- package/lib/label-button.d.cts +2 -2
- package/lib/label-button.d.ts +2 -2
- package/lib/label-icon.d.cts +2 -2
- package/lib/label-icon.d.ts +2 -2
- package/lib/modal-dialog.d.cts +67 -0
- package/lib/modal-dialog.d.ts +67 -0
- package/lib/nuxt.cjs +1 -1
- package/lib/nuxt.js +1 -1
- package/lib/overlay-box.d.cts +52 -0
- package/lib/overlay-box.d.ts +52 -0
- package/lib/page-section.d.cts +2 -2
- package/lib/page-section.d.ts +2 -2
- package/lib/page-title.d.cts +2 -2
- package/lib/page-title.d.ts +2 -2
- package/lib/register.cjs +1 -1
- package/lib/register.js +1 -1
- package/lib/screen-loading.d.cts +7 -0
- package/lib/screen-loading.d.ts +7 -0
- package/lib/style.css +1 -1
- package/lib/tab-content.d.cts +5 -5
- package/lib/tab-content.d.ts +5 -5
- package/lib/tab-group.d.cts +7 -10
- package/lib/tab-group.d.ts +7 -10
- package/lib/types/data-table.d.cts +185 -0
- package/lib/types/data-table.d.ts +185 -0
- package/lib/types/modal-dialog.d.cts +13 -0
- package/lib/types/modal-dialog.d.ts +13 -0
- package/lib/types/movable-window.d.cts +16 -0
- package/lib/types/movable-window.d.ts +16 -0
- package/lib/warning-popper.d.cts +39 -0
- package/lib/warning-popper.d.ts +39 -0
- package/lib/warning-popper.vue_vue_type_style_index_0_lang-CxVzqsbn.cjs +1 -0
- package/lib/warning-popper.vue_vue_type_style_index_0_lang-zt-jCsvz.js +1833 -0
- package/package.json +40 -14
- package/src/accordion-fieldset.vue +24 -19
- package/src/accordion-section.vue +33 -28
- package/src/components.ts +10 -0
- package/src/copy-button.vue +89 -0
- package/src/dark-mode-selector.vue +212 -0
- package/src/data-table.vue +643 -0
- package/src/help-button.vue +128 -0
- package/src/help-popper.vue +70 -0
- package/src/helpers/data-table-csv.ts +55 -0
- package/src/helpers/show-floating-component.ts +169 -0
- package/src/helpers/show-modal-dialog.ts +121 -0
- package/src/helpers/show-overlay-box.ts +106 -0
- package/src/helpers/show-screen-loading.ts +37 -0
- package/src/helpers/show-snackbar.ts +153 -0
- package/src/hourglass-loading.vue +1 -1
- package/src/index.ts +34 -0
- package/src/internal/anchored-popover.vue +192 -0
- package/src/internal/anchored-position.ts +135 -0
- package/src/internal/data-table-controls.vue +203 -0
- package/src/internal/data-table-value.ts +99 -0
- package/src/internal/floating-component.vue +202 -0
- package/src/internal/icon-popper.vue +185 -0
- package/src/internal/mount-window.ts +110 -0
- package/src/internal/movable-window.vue +315 -0
- package/src/internal/opened-overlay-boxes.ts +2 -0
- package/src/internal/pagination.vue +325 -0
- package/src/internal/snackbar-container.vue +258 -0
- package/src/internal/snackbar-item.ts +20 -0
- package/src/internal/tab-group-context.ts +4 -2
- package/src/internal/use-movable-window.ts +208 -0
- package/src/internal/window-order.ts +11 -0
- package/src/intersection-lazy-component.vue +84 -0
- package/src/label-button.vue +9 -6
- package/src/label-icon.vue +2 -2
- package/src/modal-dialog.vue +287 -0
- package/src/overlay-box.vue +218 -0
- package/src/page-section.vue +7 -7
- package/src/page-title.vue +4 -4
- package/src/screen-loading.vue +90 -0
- package/src/tab-content.vue +16 -15
- package/src/tab-group.vue +34 -36
- package/src/types/data-table.ts +196 -0
- package/src/types/modal-dialog.ts +16 -0
- package/src/types/movable-window.ts +18 -0
- package/src/warning-popper.vue +70 -0
- package/lib/accordion-fieldset.cjs +0 -1
- package/lib/accordion-fieldset.js +0 -4
- package/lib/accordion-fieldset.vue_vue_type_style_index_0_lang-Cf4czDXz.js +0 -66
- package/lib/accordion-fieldset.vue_vue_type_style_index_0_lang-DoM5QjpJ.cjs +0 -1
- package/lib/accordion-section.cjs +0 -1
- package/lib/accordion-section.js +0 -4
- package/lib/accordion-section.vue_vue_type_style_index_0_lang-CFDdUEnn.cjs +0 -1
- package/lib/accordion-section.vue_vue_type_style_index_0_lang-Gvjjx02P.js +0 -78
- package/lib/components-C63HJoCn.cjs +0 -1
- package/lib/components-q4Cf97bO.js +0 -24
- package/lib/hourglass-loading.cjs +0 -1
- package/lib/hourglass-loading.js +0 -4
- package/lib/hourglass-loading.vue_vue_type_style_index_0_lang-C72UVA9W.cjs +0 -1
- package/lib/hourglass-loading.vue_vue_type_style_index_0_lang-DkUGIxQ2.js +0 -22
- package/lib/label-button.cjs +0 -1
- package/lib/label-button.js +0 -4
- package/lib/label-button.vue_vue_type_style_index_0_lang-D7ZgfZOL.cjs +0 -1
- package/lib/label-button.vue_vue_type_style_index_0_lang-DqRYddVt.js +0 -44
- package/lib/label-icon.cjs +0 -1
- package/lib/label-icon.js +0 -4
- package/lib/label-icon.vue_vue_type_style_index_0_lang-D9Cimu20.cjs +0 -1
- package/lib/label-icon.vue_vue_type_style_index_0_lang-me52HE2V.js +0 -38
- package/lib/page-section.cjs +0 -1
- package/lib/page-section.js +0 -4
- package/lib/page-section.vue_vue_type_style_index_0_lang-DEAkTLxd.cjs +0 -1
- package/lib/page-section.vue_vue_type_style_index_0_lang-DpVQe_rV.js +0 -54
- package/lib/page-title.cjs +0 -1
- package/lib/page-title.js +0 -4
- package/lib/page-title.vue_vue_type_style_index_0_lang-BqIsIks5.cjs +0 -1
- package/lib/page-title.vue_vue_type_style_index_0_lang-ChZot85K.js +0 -36
- package/lib/tab-content.cjs +0 -1
- package/lib/tab-content.js +0 -4
- package/lib/tab-content.vue_vue_type_style_index_0_lang-BeCi7Xkp.cjs +0 -1
- package/lib/tab-content.vue_vue_type_style_index_0_lang-CcQLHmIF.js +0 -44
- package/lib/tab-group.cjs +0 -1
- package/lib/tab-group.js +0 -4
- package/lib/tab-group.vue_vue_type_style_index_0_lang-C84mDEOC.js +0 -103
- package/lib/tab-group.vue_vue_type_style_index_0_lang-CMaufRJV.cjs +0 -1
- package/lib/use-shrinkable-CS2bmsJJ.js +0 -17
- package/lib/use-shrinkable-Cu9JQZll.cjs +0 -1
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-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}
|
|
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:.33em;margin-left:.33em;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-outline-width-focus-ring, 2px) solid var(--dwui-outline-color-focus-ring, Highlight);outline-offset:var(--dwui-outline-offset-focus-ring, 2px)}:where(.dwui-accordion-contents){position:relative;width:fit-content;padding:.17em;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-outline-width-focus-ring, 2px) solid var(--dwui-outline-color-focus-ring, Highlight);outline-offset:var(--dwui-outline-offset-focus-ring, 2px)}:where(.dwui-accordion-section-toggle[aria-expanded=true]){margin-top:.67em}:where(.dwui-accordion-section-toggle[aria-expanded=false]){margin-top:-.83em}:where(.dwui-copy-button){display:inline-flex;align-items:center;justify-content:center;padding:.17em;border:none;border-radius:4px;background-color:transparent;background-image:none;color:inherit;font:inherit;line-height:0;cursor:pointer}:where(.dwui-copy-button:not(:disabled):hover){background:var(--dwui-background-copy-button-hover, light-dark(rgba(0, 0, 0, .08), rgba(255, 255, 255, .12)))}:where(.dwui-copy-button:not(:disabled):active){transform:translate(1px,1px)}:where(.dwui-copy-button:disabled){opacity:.4;cursor:not-allowed}:where(.dwui-copy-button:focus-visible){outline:var(--dwui-outline-width-focus-ring, 2px) solid var(--dwui-outline-color-focus-ring, Highlight);outline-offset:var(--dwui-outline-offset-focus-ring, 2px)}:where(.dwui-dark-mode-selector){position:relative;display:inline-block;vertical-align:top;width:3.85em;height:1.65em;padding:0;border:none;border-radius:.85em;background-color:transparent;background-image:none;color:inherit;font:inherit;line-height:0;cursor:pointer}:where(.dwui-dark-mode-selector-track){position:relative;display:block;height:inherit;border-radius:inherit;background:var(--dwui-background-dark-mode-selector, azure);box-shadow:inset 0 1px 2px #0000001f,inset 0 0 2px #00000026;font-size:.85em;transition:background .15s ease-out}:where(.dwui-dark-mode-selector[aria-checked=true]>.dwui-dark-mode-selector-track){background:var(--dwui-background-dark-mode-selector-checked, darkslategray);box-shadow:inset 0 1px 2px #00000026,inset 0 0 3px #0003}:where(.dwui-dark-mode-selector-icon-light,.dwui-dark-mode-selector-icon-dark){position:absolute;top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;line-height:1;transition:opacity .15s ease-out}:where(.dwui-dark-mode-selector-icon-light){right:.6em}:where(.dwui-dark-mode-selector-icon-dark){left:.6em;opacity:0}:where(.dwui-dark-mode-selector[aria-checked=true] .dwui-dark-mode-selector-icon-light){opacity:0}:where(.dwui-dark-mode-selector[aria-checked=true] .dwui-dark-mode-selector-icon-dark){opacity:1}:where(.dwui-dark-mode-selector-handle){position:absolute;top:.075em;left:0;width:1.5em;height:1.5em;border-radius:.75em;background:var(--dwui-background-dark-mode-selector-handle, linear-gradient(.25turn, #888484 0%, #b4abab 50%, #888484 100%));box-shadow:1px 1px 5px #0003;transition:left .15s ease-out}:where(.dwui-dark-mode-selector[aria-checked=true]>.dwui-dark-mode-selector-handle){left:2.275em;box-shadow:-1px 1px 5px #0003}:where(.dwui-dark-mode-selector:disabled){opacity:.5;cursor:not-allowed}:where(.dwui-dark-mode-selector:focus-visible){outline:var(--dwui-outline-width-focus-ring, 2px) solid var(--dwui-outline-color-focus-ring, Highlight);outline-offset:var(--dwui-outline-offset-focus-ring, 2px)}:where(.dwui-pagination){display:flex;align-items:center;gap:.67em;white-space:nowrap}:where(.dwui-pagination-list){display:flex;align-self:stretch;align-items:stretch;gap:.25em;margin:0;padding:0;list-style:none}:where(.dwui-pagination-list li){display:flex}:where(.dwui-pagination-list button){display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;aspect-ratio:1;padding:0;border:1px solid var(--dwui-border-color-pagination-button, light-dark(#d3d3d3, #5a5a5a));border-radius:3px;background:var(--dwui-background-pagination-button, light-dark(#fafafa, #2a2a2a));color:var(--dwui-color-text-pagination-button, inherit);font:inherit;line-height:1;cursor:pointer;transition:background-color .3s ease}:where(.dwui-pagination-list button:disabled){opacity:.4;cursor:not-allowed}:where(.dwui-pagination-list button:not(:disabled,.dwui-current):hover){background:var(--dwui-background-pagination-button-hover, light-dark(#46e2f7, #1f7a86))}:where(.dwui-pagination-list .dwui-current){background:var(--dwui-background-pagination-button-current, linear-gradient(rgba(78, 221, 231, .7), rgba(34, 162, 172, .7)));color:var(--dwui-color-text-pagination-button-current, inherit);cursor:default}:where(.dwui-pagination-list button:focus-visible){outline:var(--dwui-outline-width-focus-ring, 2px) solid var(--dwui-outline-color-focus-ring, Highlight);outline-offset:var(--dwui-outline-offset-focus-ring, 2px)}:where(.dwui-pagination-select){display:inline-flex;align-self:stretch;align-items:center;gap:.33em}:where(.dwui-pagination-select select){align-self:stretch}:where(.dwui-data-table-controls){display:flex;flex-wrap:wrap;align-items:stretch;justify-content:space-between;gap:.33em .67em;margin:.33em 0}:where(.dwui-data-table-tools){display:flex;align-items:center;justify-content:flex-end;gap:.33em;margin-left:auto;white-space:nowrap}:where(.dwui-data-table-total){margin-right:.67em}:where(.dwui-data-table-total-count){margin:0 .5em;color:var(--dwui-color-text-data-table-total-count, inherit);font-weight:var(--dwui-font-weight-data-table-total-count, bold)}:where(.dwui-data-table-limit){display:inline-flex;align-self:stretch;align-items:center;gap:.33em}:where(.dwui-data-table-limit input){align-self:stretch;width:60px}:where(.dwui-data-table-tools button){display:inline-flex;align-self:stretch;align-items:center;justify-content:center;box-sizing:border-box;aspect-ratio:1;padding:0;border:1px solid var(--dwui-border-color-data-table-button, light-dark(#d3d3d3, #5a5a5a));border-radius:3px;background:var(--dwui-background-data-table-button, light-dark(#fafafa, #2a2a2a));color:var(--dwui-color-text-data-table-button, inherit);font:inherit;cursor:pointer}:where(.dwui-data-table-tools button svg){width:auto;height:85%}:where(.dwui-data-table-tools button:hover){background:var(--dwui-background-data-table-button-hover, light-dark(#e8e8e8, #3a3a3a))}:where(.dwui-data-table-tools button:focus-visible){outline:var(--dwui-outline-width-focus-ring, 2px) solid var(--dwui-outline-color-focus-ring, Highlight);outline-offset:var(--dwui-outline-offset-focus-ring, 2px)}:where(.dwui-data-table-content){position:relative;overflow:auto}:where(.dwui-data-table-content:focus-visible){outline:var(--dwui-outline-width-focus-ring, 2px) solid var(--dwui-outline-color-focus-ring, Highlight);outline-offset:calc(var(--dwui-outline-width-focus-ring, 2px) * -1)}:where(.dwui-data-table-content.dwui-loading){min-height:var(--dwui-height-data-table-loading, 120px)}:where(.dwui-data-table table){border-collapse:separate;border-spacing:0;width:100%}:where(.dwui-data-table th){position:sticky;top:0;z-index:1;padding:.33em 0;border:1px solid var(--dwui-border-color-data-table, light-dark(#818181, #5a5a5a));border-right:none;background:var(--dwui-background-data-table-header, light-dark(#e8e8e8, #3a3a3a));color:var(--dwui-color-text-data-table-header, inherit);text-align:center;white-space:nowrap}:where(.dwui-data-table th:last-child){border-right:1px solid var(--dwui-border-color-data-table, light-dark(#818181, #5a5a5a))}:where(.dwui-data-table-sort){display:inline-flex;align-items:center;gap:.17em}:where(.dwui-data-table-sort[role=button]){cursor:pointer}:where(.dwui-data-table-sort:focus-visible){outline:var(--dwui-outline-width-focus-ring, 2px) solid var(--dwui-outline-color-focus-ring, Highlight);outline-offset:var(--dwui-outline-offset-focus-ring, 2px)}:where(.dwui-data-table-resizer){position:absolute;top:0;right:0;width:10px;height:100%;cursor:col-resize;touch-action:none}:where(.dwui-data-table td){padding:.25em;border-top:1px dotted var(--dwui-border-color-data-table, light-dark(#818181, #5a5a5a));border-left:1px dotted var(--dwui-border-color-data-table, light-dark(#818181, #5a5a5a));line-height:1.2em;word-break:break-all}:where(.dwui-data-table tbody tr:first-child td){border-top:none}:where(.dwui-data-table tbody tr:last-child td){border-bottom:1px dotted var(--dwui-border-color-data-table, light-dark(#818181, #5a5a5a))}:where(.dwui-data-table td:last-child){border-right:1px dotted var(--dwui-border-color-data-table, light-dark(#818181, #5a5a5a))}:where(.dwui-data-table tbody tr:nth-child(odd)){background:var(--dwui-background-data-table-row-odd, light-dark(#ffffff, #1e1e1e));transition:background-color 1s ease}:where(.dwui-data-table tbody tr:nth-child(2n)){background:var(--dwui-background-data-table-row-even, light-dark(#f4f4f4, #262626));transition:background-color 1s ease}:where(.dwui-data-table.dwui-selectable tbody tr){cursor:pointer}:where(.dwui-data-table tbody tr:not(.dwui-selected,.dwui-data-table-no-data):hover){background:var(--dwui-background-data-table-row-hover, light-dark(#e0f7fa, #2f4f4f))}:where(.dwui-data-table tbody tr.dwui-selected){background:var(--dwui-background-data-table-row-selected, light-dark(#fff3b0, #5a4a00))}:where(.dwui-data-table-no-data td){padding:.83em 0;color:var(--dwui-color-text-data-table-no-data, light-dark(#808080, #a0a0a0));text-align:center;cursor:default}:where(.dwui-data-table-loading){position:absolute;inset:0;z-index:2;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-data-table-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, rgba(255, 255, 255, .4));border-top-color:var(--dwui-border-color-loading-spinner-accent, #ffffff);border-radius:50%;animation:dwui-data-table-loading-spin .8s linear infinite}@keyframes dwui-data-table-loading-spin{to{transform:rotate(360deg)}}:where(.dwui-anchored-popover){inset:auto;display:flex;flex-direction:column;box-sizing:border-box;max-width:var(--dwui-max-width-anchored-popover, calc(100vw - 16px) );max-height:var(--dwui-max-height-anchored-popover, calc(100vh - 16px) );margin:0;padding:0;border:1px solid var(--dwui-border-color-anchored-popover, light-dark(#8f8f8f, #6b6f76));border-radius:var(--dwui-radius-anchored-popover, 4px);background:var(--dwui-background-anchored-popover, Canvas);color:var(--dwui-color-text-anchored-popover, CanvasText);box-shadow:var(--dwui-box-shadow-anchored-popover, 0 2px 8px rgba(0, 0, 0, .25));font:inherit;visibility:hidden;overflow:visible}:where(.dwui-anchored-popover-content){min-height:0;padding:var(--dwui-padding-anchored-popover, .67em 1em);overflow:auto}:where(.dwui-anchored-popover.dwui-arrow):before{content:"";position:absolute;width:10px;height:10px;box-sizing:border-box;border:1px solid var(--dwui-border-color-anchored-popover, light-dark(#8f8f8f, #6b6f76));background:var(--dwui-background-anchored-popover-arrow, var(--dwui-background-anchored-popover, Canvas));transform:rotate(45deg)}:where(.dwui-anchored-popover.dwui-arrow[data-side=bottom]):before{top:-6px;left:calc(var(--dwui-offset-arrow) - 6px);border-right-color:transparent;border-bottom-color:transparent}:where(.dwui-anchored-popover.dwui-arrow[data-side=top]):before{bottom:-6px;left:calc(var(--dwui-offset-arrow) - 6px);border-top-color:transparent;border-left-color:transparent}:where(.dwui-anchored-popover.dwui-arrow[data-side=right]):before{top:calc(var(--dwui-offset-arrow) - 6px);left:-6px;border-top-color:transparent;border-right-color:transparent}:where(.dwui-anchored-popover.dwui-arrow[data-side=left]):before{top:calc(var(--dwui-offset-arrow) - 6px);right:-6px;border-bottom-color:transparent;border-left-color:transparent}:where(.dwui-help-button){display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;padding:.17em;border:none;border-radius:4px;background-color:transparent;background-image:none;color:inherit;font:inherit;cursor:pointer}:where(.dwui-help-button:not(:disabled):hover){background:var(--dwui-background-help-button-hover, light-dark(rgba(0, 0, 0, .08), rgba(255, 255, 255, .12)))}:where(.dwui-help-button:not(:disabled):active){transform:translate(1px,1px)}:where(.dwui-help-button:disabled){opacity:.4;cursor:not-allowed}:where(.dwui-help-button:focus-visible){outline:var(--dwui-outline-width-focus-ring, 2px) solid var(--dwui-outline-color-focus-ring, Highlight);outline-offset:var(--dwui-outline-offset-focus-ring, 2px)}:where(.dwui-help-button-popover){--dwui-max-width-anchored-popover: var(--dwui-max-width-help-button-popover, calc(100vw - 16px) );--dwui-max-height-anchored-popover: var(--dwui-max-height-help-button-popover, calc(100vh - 16px) );--dwui-padding-anchored-popover: var(--dwui-padding-help-button-popover, .67em 1em);--dwui-border-color-anchored-popover: var(--dwui-border-color-help-button-popover, light-dark(#8f8f8f, #6b6f76));--dwui-radius-anchored-popover: var(--dwui-radius-help-button-popover, 4px);--dwui-background-anchored-popover: var(--dwui-background-help-button-popover, Canvas);--dwui-background-anchored-popover-arrow: var(--dwui-background-help-button-popover-arrow, var(--dwui-background-help-button-popover, Canvas));--dwui-color-text-anchored-popover: var(--dwui-color-text-help-button-popover, CanvasText);--dwui-box-shadow-anchored-popover: var(--dwui-box-shadow-help-button-popover, 0 2px 8px rgba(0, 0, 0, .25))}:where(.dwui-icon-popper){display:inline-flex;align-items:center;vertical-align:middle;cursor:help}:where(.dwui-icon-popper:focus-visible){outline:var(--dwui-outline-width-focus-ring, 2px) solid var(--dwui-outline-color-focus-ring, Highlight);outline-offset:var(--dwui-outline-offset-focus-ring, 2px)}:where(.dwui-help-popper-popover){--dwui-max-width-anchored-popover: var(--dwui-max-width-help-popper, calc(100vw - 16px) );--dwui-max-height-anchored-popover: var(--dwui-max-height-help-popper, calc(100vh - 16px) );--dwui-padding-anchored-popover: var(--dwui-padding-help-popper, .67em 1em);--dwui-border-color-anchored-popover: var(--dwui-border-color-help-popper, light-dark(#8f8f8f, #6b6f76));--dwui-radius-anchored-popover: var(--dwui-radius-help-popper, 4px);--dwui-background-anchored-popover: var(--dwui-background-help-popper, Canvas);--dwui-background-anchored-popover-arrow: var(--dwui-background-help-popper-arrow, var(--dwui-background-help-popper, Canvas));--dwui-color-text-anchored-popover: var(--dwui-color-text-help-popper, CanvasText);--dwui-box-shadow-anchored-popover: var(--dwui-box-shadow-help-popper, 0 2px 8px rgba(0, 0, 0, .25))}: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:.17em .5em;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-outline-width-focus-ring, 2px) solid var(--dwui-outline-color-focus-ring, Highlight);outline-offset:var(--dwui-outline-offset-focus-ring, 2px)}:where(.dwui-modal-dialog){box-sizing:border-box;width:var(--dwui-width-modal-dialog, 50vw);min-width:min(320px,100%);padding:var(--dwui-padding-modal-dialog, 1.67em 2.5em);border:1px solid var(--dwui-border-color-modal-dialog, light-dark(#8f8f8f, #6b6f76));border-radius:var(--dwui-radius-modal-dialog, 4px);background:var(--dwui-background-modal-dialog, Canvas);color:var(--dwui-color-text-modal-dialog, CanvasText);box-shadow:var(--dwui-box-shadow-modal-dialog, 0 2px 8px rgba(0, 0, 0, .33))}:where(.dwui-modal-dialog)::backdrop{background:var(--dwui-background-modal-dialog-backdrop, rgba(0, 0, 0, .5))}:where(.dwui-modal-dialog-header){display:flex;align-items:center;gap:.33em}:where(.dwui-modal-dialog-icon){display:flex;flex:none;font-size:var(--dwui-font-size-modal-dialog-icon, 1.83em)}:where(.dwui-modal-dialog-body){padding:.83em;overflow-wrap:anywhere}:where(.dwui-modal-dialog-body p){margin:0;white-space:pre-wrap}:where(.dwui-modal-dialog-images){display:flex;flex-wrap:wrap;gap:.33em;margin-top:.67em}:where(.dwui-modal-dialog-images img){width:var(--dwui-width-modal-dialog-image, 200px);max-width:100%;height:auto}:where(.dwui-modal-dialog-buttons){display:flex;justify-content:space-evenly;padding:.83em}:where(.dwui-modal-dialog-button){min-width:var(--dwui-min-width-modal-dialog-button, 80px)}:where(.dwui-movable-window){position:absolute;display:flex;flex-direction:column;box-sizing:border-box;min-width:var(--dwui-min-width-movable-window, auto);max-height:var(--dwui-max-height-movable-window, none);border:1px solid var(--dwui-border-color-movable-window, light-dark(#8f8f8f, #6b6f76));border-radius:var(--dwui-radius-movable-window, 4px);background:var(--dwui-background-movable-window, Canvas);color:var(--dwui-color-text-movable-window, CanvasText);box-shadow:var(--dwui-box-shadow-movable-window, 0 2px 8px rgba(0, 0, 0, .33));outline:none;overflow:hidden}:where(.dwui-movable-window-frame){display:flex;flex:1 1 auto;flex-direction:column;min-height:0}:where(.dwui-movable-window-header){display:flex;flex:0 0 auto;align-items:center;gap:.33em;padding:var(--dwui-padding-movable-window-header, .17em .33em);border-bottom:1px solid var(--dwui-border-color-movable-window, light-dark(#8f8f8f, #6b6f76));background:var(--dwui-background-movable-window-header, transparent);color:var(--dwui-color-text-movable-window-header, inherit)}:where(.dwui-movable-window-title){flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:where(.dwui-movable-window-close-button){display:inline-flex;align-items:center;justify-content:center;padding:.17em;border:none;border-radius:4px;background-color:transparent;background-image:none;color:inherit;font:inherit;cursor:pointer}:where(.dwui-movable-window-close-button:hover){background:var(--dwui-background-movable-window-close-button-hover, light-dark(rgba(0, 0, 0, .08), rgba(255, 255, 255, .12)))}:where(.dwui-movable-window-close-button:focus-visible){outline:var(--dwui-outline-width-focus-ring, 2px) solid var(--dwui-outline-color-focus-ring, Highlight);outline-offset:var(--dwui-outline-offset-focus-ring, 2px)}:where(.dwui-movable-window-body){flex:1 1 auto;box-sizing:border-box;min-height:0;padding:var(--dwui-padding-movable-window-body, .4em);overflow:auto}:where(.dwui-movable-window-header.dwui-movable,.dwui-movable-window-body.dwui-movable){cursor:move;touch-action:none}:where(.dwui-movable-window-header.dwui-movable){user-select:none}:where(.dwui-movable-window-resizer){position:absolute;right:0;bottom:0;width:18px;height:18px;color:var(--dwui-color-text-movable-window-resizer, GrayText);cursor:nwse-resize;touch-action:none}:where(.dwui-movable-window-resizer>svg){display:block;pointer-events:none}:where(.dwui-movable-window-corner){position:absolute;width:18px;height:18px;touch-action:none}:where(.dwui-movable-window-corner.dwui-top-left){top:0;left:0;clip-path:polygon(0 0,100% 0,100% 6px,6px 6px,6px 100%,0 100%);cursor:nwse-resize}:where(.dwui-movable-window-corner.dwui-top-right){top:0;right:0;clip-path:polygon(0 0,100% 0,100% 100%,calc(100% - 6px) 100%,calc(100% - 6px) 6px,0 6px);cursor:nesw-resize}:where(.dwui-movable-window-corner.dwui-bottom-left){bottom:0;left:0;clip-path:polygon(0 0,6px 0,6px calc(100% - 6px),100% calc(100% - 6px),100% 100%,0 100%);cursor:nesw-resize}:where(.dwui-movable-window-loading){position:absolute;inset:0;z-index:1;display:flex;align-items:center;justify-content:center;background:var(--dwui-background-movable-window-loading, light-dark(rgba(0, 0, 0, .15), rgba(0, 0, 0, .4)))}:where(.dwui-movable-window-spinner){box-sizing:border-box;width:var(--dwui-size-movable-window-spinner, 48px);height:var(--dwui-size-movable-window-spinner, 48px);border:6px solid var(--dwui-border-color-movable-window-spinner, light-dark(rgba(0, 0, 0, .15), rgba(255, 255, 255, .2)));border-left-color:var(--dwui-border-color-movable-window-spinner-accent, light-dark(rgba(47, 90, 74, .8), rgba(140, 200, 170, .8)));border-radius:50%;animation:dwui-movable-window-spin 1.1s linear infinite}@keyframes dwui-movable-window-spin{to{transform:rotate(360deg)}}:where(html:has(.dwui-overlay-box),html:has(.dwui-overlay-box)>body){overflow:hidden}:where(.dwui-overlay-box){position:fixed;inset:0;z-index:calc(var(--dwui-z-index-overlay-box, 5000) + var(--dwui-order-window, 0))}:where(.dwui-overlay-box-backdrop){position:absolute;inset:0;background:var(--dwui-background-overlay-box-backdrop, light-dark(rgba(0, 0, 0, .2), rgba(0, 0, 0, .5)))}:where(.dwui-overlay-box-container){--dwui-border-color-movable-window: var(--dwui-border-color-overlay-box, light-dark(#8f8f8f, #6b6f76));--dwui-radius-movable-window: var(--dwui-radius-overlay-box, 4px);--dwui-background-movable-window: var(--dwui-background-overlay-box, Canvas);--dwui-color-text-movable-window: var(--dwui-color-text-overlay-box, CanvasText);--dwui-box-shadow-movable-window: var(--dwui-box-shadow-overlay-box, 0 2px 8px rgba(0, 0, 0, .33));--dwui-padding-movable-window-header: var(--dwui-padding-overlay-box-header, .17em .33em);--dwui-background-movable-window-header: var(--dwui-background-overlay-box-header, transparent);--dwui-color-text-movable-window-header: var(--dwui-color-text-overlay-box-header, inherit);--dwui-background-movable-window-close-button-hover: var(--dwui-background-overlay-box-close-button-hover, light-dark(rgba(0, 0, 0, .08), rgba(255, 255, 255, .12)));--dwui-padding-movable-window-body: var(--dwui-padding-overlay-box-body, .4em);--dwui-color-text-movable-window-resizer: var(--dwui-color-text-overlay-box-resizer, GrayText);--dwui-background-movable-window-loading: var(--dwui-background-overlay-box-loading, light-dark(rgba(0, 0, 0, .15), rgba(0, 0, 0, .4)));--dwui-size-movable-window-spinner: var(--dwui-size-overlay-box-spinner, 48px);--dwui-border-color-movable-window-spinner: var(--dwui-border-color-overlay-box-spinner, light-dark(rgba(0, 0, 0, .15), rgba(255, 255, 255, .2)));--dwui-border-color-movable-window-spinner-accent: var(--dwui-border-color-overlay-box-spinner-accent, light-dark(rgba(47, 90, 74, .8), rgba(140, 200, 170, .8)))}:where(.dwui-overlay-box-fade-enter-active,.dwui-overlay-box-fade-leave-active){transition:opacity .25s ease}:where(.dwui-overlay-box-fade-enter-from,.dwui-overlay-box-fade-leave-to){opacity:0}:where(.dwui-page-section){display:block;margin:.33em 0 .67em;padding-top:.17em;font-size:var(--dwui-font-size-page-section, inherit);font-weight:500}:where(.dwui-page-section-title){display:flex;align-items:center;font-size:var(--dwui-font-size-page-section-title, 1.17em)}:where(.dwui-page-section-content){margin:.67em 0 .67em 1.33em}:where(.dwui-page-title){display:flex;align-items:center;justify-content:space-between;width:var(--dwui-width-page-title, auto);padding:.33em;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, 1.17em);font-weight:var(--dwui-font-weight-page-title, normal)}:where(.dwui-screen-loading){padding:0;border:none;outline:none;background-color:transparent;background-image:none;overflow:visible}:where(.dwui-screen-loading::backdrop){background:var(--dwui-background-screen-loading, light-dark(rgba(0, 0, 0, .25), rgba(0, 0, 0, .5)))}:where(.dwui-screen-loading-spinner){box-sizing:border-box;width:var(--dwui-size-screen-loading-spinner, 100px);height:var(--dwui-size-screen-loading-spinner, 100px);border:8px solid var(--dwui-border-color-screen-loading-spinner, light-dark(rgba(0, 0, 0, .15), rgba(255, 255, 255, .2)));border-left-color:var(--dwui-border-color-screen-loading-spinner-accent, light-dark(rgba(47, 90, 74, .8), rgba(140, 200, 170, .8)));border-radius:50%;animation:dwui-screen-loading-spin 1.1s linear infinite}@keyframes dwui-screen-loading-spin{to{transform:rotate(360deg)}}:where(.dwui-tab-content[hidden]){display:none}:where(.dwui-tab-content[aria-checked=true]){display:block;position:relative;padding:.33em .67em;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, rgba(255, 255, 255, .4));border-top-color:var(--dwui-border-color-loading-spinner-accent, #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:.67em}:where(.dwui-tab-headers){display:flex;flex-direction:row;flex-wrap:wrap;position:relative;margin-top:.4em;padding-bottom:.33em}: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 .33em;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-outline-width-focus-ring, 2px) solid var(--dwui-outline-color-focus-ring, Highlight);outline-offset:var(--dwui-outline-offset-focus-ring, 2px)}:where(.dwui-tab-items){height:100%;border:1px solid var(--dwui-border-color-tab, light-dark(#565656, #8a8a8a));overflow:hidden}:where(.dwui-warning-popper-popover){--dwui-max-width-anchored-popover: var(--dwui-max-width-warning-popper, calc(100vw - 16px) );--dwui-max-height-anchored-popover: var(--dwui-max-height-warning-popper, calc(100vh - 16px) );--dwui-padding-anchored-popover: var(--dwui-padding-warning-popper, .67em 1em);--dwui-border-color-anchored-popover: var(--dwui-border-color-warning-popper, light-dark(#8f8f8f, #6b6f76));--dwui-radius-anchored-popover: var(--dwui-radius-warning-popper, 4px);--dwui-background-anchored-popover: var(--dwui-background-warning-popper, Canvas);--dwui-background-anchored-popover-arrow: var(--dwui-background-warning-popper-arrow, var(--dwui-background-warning-popper, Canvas));--dwui-color-text-anchored-popover: var(--dwui-color-text-warning-popper, CanvasText);--dwui-box-shadow-anchored-popover: var(--dwui-box-shadow-warning-popper, 0 2px 8px rgba(0, 0, 0, .25))}:where(html:has(.dwui-floating-component.dwui-lock-scroll),html:has(.dwui-floating-component.dwui-lock-scroll)>body){overflow:hidden}:where(.dwui-floating-component){z-index:calc(var(--dwui-z-index-floating-component, 5000) + var(--dwui-order-window, 0));--dwui-min-width-movable-window: var(--dwui-min-width-floating-component, 200px);--dwui-max-height-movable-window: var(--dwui-max-height-floating-component, 90vh);--dwui-border-color-movable-window: var(--dwui-border-color-floating-component, light-dark(#8f8f8f, #6b6f76));--dwui-radius-movable-window: var(--dwui-radius-floating-component, 4px);--dwui-background-movable-window: var(--dwui-background-floating-component, Canvas);--dwui-color-text-movable-window: var(--dwui-color-text-floating-component, CanvasText);--dwui-box-shadow-movable-window: var(--dwui-box-shadow-floating-component, 0 2px 8px rgba(0, 0, 0, .33));--dwui-padding-movable-window-header: var(--dwui-padding-floating-component-header, .17em .33em);--dwui-background-movable-window-header: var(--dwui-background-floating-component-header, transparent);--dwui-color-text-movable-window-header: var(--dwui-color-text-floating-component-header, inherit);--dwui-background-movable-window-close-button-hover: var(--dwui-background-floating-component-close-button-hover, light-dark(rgba(0, 0, 0, .08), rgba(255, 255, 255, .12)));--dwui-padding-movable-window-body: var(--dwui-padding-floating-component-body, .4em);--dwui-color-text-movable-window-resizer: var(--dwui-color-text-floating-component-resizer, GrayText);--dwui-background-movable-window-loading: var(--dwui-background-floating-component-loading, light-dark(rgba(0, 0, 0, .15), rgba(0, 0, 0, .4)));--dwui-size-movable-window-spinner: var(--dwui-size-floating-component-spinner, 48px);--dwui-border-color-movable-window-spinner: var(--dwui-border-color-floating-component-spinner, light-dark(rgba(0, 0, 0, .15), rgba(255, 255, 255, .2)));--dwui-border-color-movable-window-spinner-accent: var(--dwui-border-color-floating-component-spinner-accent, light-dark(rgba(47, 90, 74, .8), rgba(140, 200, 170, .8)))}:where(.dwui-floating-component-message){overflow-wrap:anywhere;white-space:pre-wrap}:where(.dwui-floating-component-fade-enter-active,.dwui-floating-component-fade-leave-active){transition:opacity .25s ease}:where(.dwui-floating-component-fade-enter-from,.dwui-floating-component-fade-leave-to){opacity:0}:where(.dwui-snackbar-container){position:fixed;right:0;left:0;z-index:var(--dwui-z-index-snackbar, 7000);display:flex;gap:var(--dwui-gap-snackbar-container, .33em);box-sizing:border-box;padding:var(--dwui-padding-snackbar-container, .33em);pointer-events:none}:where(.dwui-snackbar-container>*){pointer-events:auto}:where(.dwui-snackbar-container-top){top:0}:where(.dwui-snackbar-container-bottom){bottom:0}:where(.dwui-snackbar-container-overlap){display:grid;grid-template-columns:auto auto;column-gap:0;align-items:center;justify-content:center}:where(.dwui-snackbar-container-overlap.dwui-snackbar-container-start){justify-content:start}:where(.dwui-snackbar-container-overlap.dwui-snackbar-container-end){justify-content:end}:where(.dwui-snackbar-container-overlap>.dwui-snackbar){grid-area:1 / 2}:where(.dwui-snackbar-container-overlap>.dwui-snackbar-clear-button){grid-area:1 / 1;margin-right:var(--dwui-gap-snackbar-container, .33em)}:where(.dwui-snackbar-container-column){flex-direction:column;align-items:center}:where(.dwui-snackbar-container-column.dwui-snackbar-container-start){align-items:flex-start}:where(.dwui-snackbar-container-column.dwui-snackbar-container-end){align-items:flex-end}:where(.dwui-snackbar-container-row){flex-wrap:wrap;align-items:center;justify-content:center}:where(.dwui-snackbar-container-row.dwui-snackbar-container-start){justify-content:flex-start}:where(.dwui-snackbar-container-row.dwui-snackbar-container-end){justify-content:flex-end}:where(.dwui-snackbar){display:block;box-sizing:border-box;width:var(--dwui-width-snackbar, 300px);max-width:100%;padding:var(--dwui-padding-snackbar, .5em .67em);border:none;border-radius:var(--dwui-radius-snackbar, 0);background:var(--dwui-background-snackbar, #323232);color:var(--dwui-color-text-snackbar, #ffffff);box-shadow:var(--dwui-box-shadow-snackbar, 4px 4px 3px 0 rgba(0, 0, 0, .25));font:inherit;text-align:left;cursor:pointer}:where(.dwui-snackbar:focus-visible){outline:var(--dwui-outline-width-focus-ring, 2px) solid var(--dwui-outline-color-focus-ring, Highlight);outline-offset:var(--dwui-outline-offset-focus-ring, 2px)}:where(.dwui-snackbar-header){display:flex;gap:.67em;color:var(--dwui-color-text-snackbar-header, #d3d3d3);font-size:.8em}:where(.dwui-snackbar-label){margin-left:auto}:where(.dwui-snackbar-message){display:block;padding-left:.33em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:where(.dwui-snackbar-timestamp){display:block;color:var(--dwui-color-text-snackbar-timestamp, #d3d3d3);font-size:.8em;text-align:right}:where(.dwui-snackbar-clear-button){display:inline-flex;align-items:center;justify-content:center;padding:.17em;border:none;border-radius:4px;background-color:transparent;background-image:none;color:var(--dwui-color-text-snackbar-clear-button, inherit);font:inherit;cursor:pointer}:where(.dwui-snackbar-clear-button:focus-visible){outline:var(--dwui-outline-width-focus-ring, 2px) solid var(--dwui-outline-color-focus-ring, Highlight);outline-offset:var(--dwui-outline-offset-focus-ring, 2px)}:where(.dwui-snackbar-fade-enter-active,.dwui-snackbar-fade-leave-active){transition:opacity .5s ease}:where(.dwui-snackbar-fade-enter-from,.dwui-snackbar-fade-leave-to){opacity:0}
|
package/lib/tab-content.d.cts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { ClassValue, StyleValue } from 'vue';
|
|
2
2
|
import { TabContentStatus } from './internal/tab-group-context.cjs';
|
|
3
|
-
interface Props {
|
|
4
|
-
/** タブを識別するID。TabGroupの
|
|
5
|
-
|
|
3
|
+
export interface Props {
|
|
4
|
+
/** タブを識別するID。TabGroupのselectedTabIdに渡す値 */
|
|
5
|
+
tabId: string;
|
|
6
6
|
/** タブの見出しの文字 */
|
|
7
|
-
|
|
7
|
+
label: string;
|
|
8
8
|
/** trueの場合、タブを選べなくし、中身も描画しない */
|
|
9
9
|
disabled?: boolean;
|
|
10
10
|
/** タブの見出しの状態。見出しの色が変わる */
|
|
@@ -14,7 +14,7 @@ interface Props {
|
|
|
14
14
|
/** タブの見出しに付けるstyle */
|
|
15
15
|
headerStyle?: StyleValue;
|
|
16
16
|
}
|
|
17
|
-
interface Slots {
|
|
17
|
+
export interface Slots {
|
|
18
18
|
/** タブの見出しの文字の前に表示するアイコン */
|
|
19
19
|
icon?(): unknown;
|
|
20
20
|
/**
|
package/lib/tab-content.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { ClassValue, StyleValue } from 'vue';
|
|
2
2
|
import { TabContentStatus } from './internal/tab-group-context';
|
|
3
|
-
interface Props {
|
|
4
|
-
/** タブを識別するID。TabGroupの
|
|
5
|
-
|
|
3
|
+
export interface Props {
|
|
4
|
+
/** タブを識別するID。TabGroupのselectedTabIdに渡す値 */
|
|
5
|
+
tabId: string;
|
|
6
6
|
/** タブの見出しの文字 */
|
|
7
|
-
|
|
7
|
+
label: string;
|
|
8
8
|
/** trueの場合、タブを選べなくし、中身も描画しない */
|
|
9
9
|
disabled?: boolean;
|
|
10
10
|
/** タブの見出しの状態。見出しの色が変わる */
|
|
@@ -14,7 +14,7 @@ interface Props {
|
|
|
14
14
|
/** タブの見出しに付けるstyle */
|
|
15
15
|
headerStyle?: StyleValue;
|
|
16
16
|
}
|
|
17
|
-
interface Slots {
|
|
17
|
+
export interface Slots {
|
|
18
18
|
/** タブの見出しの文字の前に表示するアイコン */
|
|
19
19
|
icon?(): unknown;
|
|
20
20
|
/**
|
package/lib/tab-group.d.cts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { ClassValue, StyleValue, VNode } from 'vue';
|
|
2
|
-
interface Props {
|
|
2
|
+
export interface Props {
|
|
3
3
|
/** ラジオボタンのname。未指定なら自動で採番する */
|
|
4
4
|
tabGroupName?: string;
|
|
5
|
-
/**
|
|
5
|
+
/** selectedTabIdが未指定のとき、trueならdisabledでない最初のタブを選ぶ。falseなら先頭のタブ(disabledなら中身は空になる) */
|
|
6
6
|
selectFirstEnabled?: boolean;
|
|
7
7
|
/** タブの見出しを並べる部分に付けるclass */
|
|
8
8
|
headerClass?: ClassValue;
|
|
@@ -12,7 +12,7 @@ interface Props {
|
|
|
12
12
|
teleport?: string;
|
|
13
13
|
}
|
|
14
14
|
type __VLS_Props = Props;
|
|
15
|
-
interface Slots {
|
|
15
|
+
export interface Slots {
|
|
16
16
|
default?(): VNode[];
|
|
17
17
|
/** 読み込み中のTabContentに重ねて表示する内容。未指定なら既定の読み込み中表示 */
|
|
18
18
|
loading?(): VNode[];
|
|
@@ -21,18 +21,15 @@ type __VLS_Slots = Slots;
|
|
|
21
21
|
type __VLS_ModelProps = {
|
|
22
22
|
/**
|
|
23
23
|
* 選択するタブのlabelId。未指定なら先頭のタブ
|
|
24
|
-
* 親がいつ代入しても選び直せるよう、v-model:selected-tab-
|
|
24
|
+
* 親がいつ代入しても選び直せるよう、v-model:selected-tab-idで同期する前提とする
|
|
25
25
|
*/
|
|
26
|
-
'
|
|
26
|
+
'selectedTabId'?: string;
|
|
27
27
|
};
|
|
28
28
|
type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
|
|
29
29
|
declare const __VLS_base: import('vue').DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
30
|
-
"update:
|
|
31
|
-
} & {
|
|
32
|
-
"emit:changeSelectedTab": (labelId: string) => any;
|
|
30
|
+
"update:selectedTabId": (value: string | undefined) => any;
|
|
33
31
|
}, string, import('vue').PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
34
|
-
"
|
|
35
|
-
"onUpdate:selectedTabLabelId"?: ((value: string | undefined) => any) | undefined;
|
|
32
|
+
"onUpdate:selectedTabId"?: ((value: string | undefined) => any) | undefined;
|
|
36
33
|
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
37
34
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
38
35
|
declare const _default: typeof __VLS_export;
|
package/lib/tab-group.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { ClassValue, StyleValue, VNode } from 'vue';
|
|
2
|
-
interface Props {
|
|
2
|
+
export interface Props {
|
|
3
3
|
/** ラジオボタンのname。未指定なら自動で採番する */
|
|
4
4
|
tabGroupName?: string;
|
|
5
|
-
/**
|
|
5
|
+
/** selectedTabIdが未指定のとき、trueならdisabledでない最初のタブを選ぶ。falseなら先頭のタブ(disabledなら中身は空になる) */
|
|
6
6
|
selectFirstEnabled?: boolean;
|
|
7
7
|
/** タブの見出しを並べる部分に付けるclass */
|
|
8
8
|
headerClass?: ClassValue;
|
|
@@ -12,7 +12,7 @@ interface Props {
|
|
|
12
12
|
teleport?: string;
|
|
13
13
|
}
|
|
14
14
|
type __VLS_Props = Props;
|
|
15
|
-
interface Slots {
|
|
15
|
+
export interface Slots {
|
|
16
16
|
default?(): VNode[];
|
|
17
17
|
/** 読み込み中のTabContentに重ねて表示する内容。未指定なら既定の読み込み中表示 */
|
|
18
18
|
loading?(): VNode[];
|
|
@@ -21,18 +21,15 @@ type __VLS_Slots = Slots;
|
|
|
21
21
|
type __VLS_ModelProps = {
|
|
22
22
|
/**
|
|
23
23
|
* 選択するタブのlabelId。未指定なら先頭のタブ
|
|
24
|
-
* 親がいつ代入しても選び直せるよう、v-model:selected-tab-
|
|
24
|
+
* 親がいつ代入しても選び直せるよう、v-model:selected-tab-idで同期する前提とする
|
|
25
25
|
*/
|
|
26
|
-
'
|
|
26
|
+
'selectedTabId'?: string;
|
|
27
27
|
};
|
|
28
28
|
type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
|
|
29
29
|
declare const __VLS_base: import('vue').DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
30
|
-
"update:
|
|
31
|
-
} & {
|
|
32
|
-
"emit:changeSelectedTab": (labelId: string) => any;
|
|
30
|
+
"update:selectedTabId": (value: string | undefined) => any;
|
|
33
31
|
}, string, import('vue').PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
34
|
-
"
|
|
35
|
-
"onUpdate:selectedTabLabelId"?: ((value: string | undefined) => any) | undefined;
|
|
32
|
+
"onUpdate:selectedTabId"?: ((value: string | undefined) => any) | undefined;
|
|
36
33
|
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
|
|
37
34
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
38
35
|
declare const _default: typeof __VLS_export;
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
import { ClassValue, StyleValue } from 'vue';
|
|
2
|
+
/** 列の値の型。ソートの比較方法を決める */
|
|
3
|
+
export type DataTableValueType = 'boolean' | 'string' | 'number' | 'object';
|
|
4
|
+
/** ソートの方式。page は表示中の行を並べ替えて返し、remote はソート条件を通知するだけで利用側が再取得する */
|
|
5
|
+
export type DataTableSortMode = 'page' | 'remote';
|
|
6
|
+
/** コントロール(ページネーション・総件数・表示件数・ダウンロードボタン)を出す位置 */
|
|
7
|
+
export type DataTableControlsPlacement = 'both' | 'top' | 'bottom' | 'none';
|
|
8
|
+
/**
|
|
9
|
+
* CSV に出力する列の定義
|
|
10
|
+
*/
|
|
11
|
+
export interface DataTableCsvColumn<T = unknown> {
|
|
12
|
+
/** true なら出力しない */
|
|
13
|
+
disabled?: boolean;
|
|
14
|
+
/** 値を取り出すキー。ドット区切りで入れ子を辿る。未指定なら DataTableHeader.id。'$index' は行番号 */
|
|
15
|
+
key?: string;
|
|
16
|
+
/** 列名。未指定なら DataTableHeader.label。言語切替に追従させる場合は関数で渡す */
|
|
17
|
+
label?: string | (() => string);
|
|
18
|
+
/** 値の整形。指定したときは key を使わない */
|
|
19
|
+
format?: (row: T) => unknown;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* ヘッダの定義
|
|
23
|
+
*/
|
|
24
|
+
export interface DataTableHeader<T = unknown> {
|
|
25
|
+
/** 列を識別するキー。ソートで値を取り出すキーにもなる */
|
|
26
|
+
id: string;
|
|
27
|
+
/** 見出し。言語切替に追従させる場合は関数で渡す */
|
|
28
|
+
label: string | (() => string);
|
|
29
|
+
/** true なら label を HTML として描画する */
|
|
30
|
+
html?: boolean;
|
|
31
|
+
/** ソートで値を取り出すキー。id と違うキーで並べるときに指定する。ドット区切りで入れ子を辿る */
|
|
32
|
+
sortKey?: string;
|
|
33
|
+
/** 値の型。ソートの比較方法を決める。未指定なら string */
|
|
34
|
+
type?: DataTableValueType;
|
|
35
|
+
/** 行同士を比較する関数。指定したときは sortKey と type を使わない。昇順の並びで a が前なら負の数を返す */
|
|
36
|
+
compare?: (a: T, b: T) => number;
|
|
37
|
+
/** 列の幅。数値は px */
|
|
38
|
+
width?: string | number;
|
|
39
|
+
/** 列の最小幅。数値は px */
|
|
40
|
+
minWidth?: string | number;
|
|
41
|
+
/** 列の最大幅。数値は px */
|
|
42
|
+
maxWidth?: string | number;
|
|
43
|
+
/** th の rowspan */
|
|
44
|
+
rowspan?: string | number;
|
|
45
|
+
/** th の colspan */
|
|
46
|
+
colspan?: string | number;
|
|
47
|
+
/** th の title 属性 */
|
|
48
|
+
title?: string;
|
|
49
|
+
/** CSV の出力定義。true なら id の値を label の列名で出力する。未指定なら出力しない */
|
|
50
|
+
csv?: boolean | DataTableCsvColumn<T>[];
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* 表示する文言。言語切替に追従させる場合は関数で渡す
|
|
54
|
+
*/
|
|
55
|
+
export interface DataTableLabels {
|
|
56
|
+
/** 総件数の見出し */
|
|
57
|
+
totalCount?: string | (() => string);
|
|
58
|
+
/** 総件数の後ろに付ける単位 */
|
|
59
|
+
totalUnit?: string | (() => string);
|
|
60
|
+
/** 1ページあたりの表示件数の見出し */
|
|
61
|
+
limit?: string | (() => string);
|
|
62
|
+
/** データが無いときの表示 */
|
|
63
|
+
noData?: string | (() => string);
|
|
64
|
+
/** ページ番号の選択の見出し。showPageSelect のときに表示する */
|
|
65
|
+
pageNumber?: string | (() => string);
|
|
66
|
+
/** ページダウンロードボタンの title */
|
|
67
|
+
downloadPage?: string | (() => string);
|
|
68
|
+
/** 全件ダウンロードボタンの title */
|
|
69
|
+
downloadAll?: string | (() => string);
|
|
70
|
+
/** 先頭ページへ移動するボタンの読み上げ名 */
|
|
71
|
+
firstPage?: string | (() => string);
|
|
72
|
+
/** 前のページへ移動するボタンの読み上げ名 */
|
|
73
|
+
previousPage?: string | (() => string);
|
|
74
|
+
/** 前のページ番号の組へ移動するボタンの読み上げ名 */
|
|
75
|
+
previousPages?: string | (() => string);
|
|
76
|
+
/** 次のページ番号の組へ移動するボタンの読み上げ名 */
|
|
77
|
+
nextPages?: string | (() => string);
|
|
78
|
+
/** 次のページへ移動するボタンの読み上げ名 */
|
|
79
|
+
nextPage?: string | (() => string);
|
|
80
|
+
/** 末尾ページへ移動するボタンの読み上げ名 */
|
|
81
|
+
lastPage?: string | (() => string);
|
|
82
|
+
}
|
|
83
|
+
/** 関数を評価した後の文言 */
|
|
84
|
+
export type DataTableResolvedLabels = Record<keyof DataTableLabels, string>;
|
|
85
|
+
/**
|
|
86
|
+
* DataTable の props
|
|
87
|
+
*/
|
|
88
|
+
export interface DataTableProps<T = unknown> {
|
|
89
|
+
/** 表示している行のデータ。スロットで描画する行と同じ順に並んでいること */
|
|
90
|
+
dataList: T[];
|
|
91
|
+
/** ヘッダ。id は一意であること */
|
|
92
|
+
headers: DataTableHeader<T>[];
|
|
93
|
+
/** 読み込み中。true の間は行を描画せず読み込み中の表示を出す */
|
|
94
|
+
loading?: boolean;
|
|
95
|
+
/** 総件数。未指定なら dataList の件数 */
|
|
96
|
+
totalCount?: number;
|
|
97
|
+
/** 現在ページ(1起点) */
|
|
98
|
+
current?: number;
|
|
99
|
+
/** 1ページあたりの表示件数 */
|
|
100
|
+
limit?: number;
|
|
101
|
+
/** 1ページあたりの表示件数の上限 */
|
|
102
|
+
maxLimit?: number;
|
|
103
|
+
/** ページネーションに並べるページ番号の最大数 */
|
|
104
|
+
maxPagination?: number;
|
|
105
|
+
/** 行をクリックで選択できるか */
|
|
106
|
+
selectable?: boolean;
|
|
107
|
+
/** コントロールを出す位置 */
|
|
108
|
+
controls?: DataTableControlsPlacement;
|
|
109
|
+
/** ページネーションを出す位置。controls が無い側には出ない */
|
|
110
|
+
pagination?: DataTableControlsPlacement;
|
|
111
|
+
/** ページダウンロードボタンを表示するか */
|
|
112
|
+
showDownloadPage?: boolean;
|
|
113
|
+
/** 全件ダウンロードボタンを表示するか */
|
|
114
|
+
showDownloadAll?: boolean;
|
|
115
|
+
/** 総件数を表示するか */
|
|
116
|
+
showTotal?: boolean;
|
|
117
|
+
/** 1ページあたりの表示件数の入力を表示するか */
|
|
118
|
+
showLimit?: boolean;
|
|
119
|
+
/** ページネーションにページ番号の選択を表示するか */
|
|
120
|
+
showPageSelect?: boolean;
|
|
121
|
+
/** dataList が空のときにデータが無い旨の行を表示するか */
|
|
122
|
+
showNoData?: boolean;
|
|
123
|
+
/** ヘッダの境界のドラッグで列幅を変えられるか */
|
|
124
|
+
resizable?: boolean;
|
|
125
|
+
/** ヘッダのクリックでソートできるか */
|
|
126
|
+
sortable?: boolean;
|
|
127
|
+
/** ソートの方式。未指定なら remote */
|
|
128
|
+
sortMode?: DataTableSortMode;
|
|
129
|
+
/** テーブルをスクロールする領域に付ける class */
|
|
130
|
+
contentClass?: ClassValue;
|
|
131
|
+
/** テーブルをスクロールする領域に付ける style */
|
|
132
|
+
contentStyle?: StyleValue;
|
|
133
|
+
/** table に付ける class */
|
|
134
|
+
tableClass?: ClassValue;
|
|
135
|
+
/** table に付ける style */
|
|
136
|
+
tableStyle?: StyleValue;
|
|
137
|
+
/** 表示する文言。未指定の項目は英語 */
|
|
138
|
+
labels?: DataTableLabels;
|
|
139
|
+
/** 総件数の整形。未指定なら en-US の桁区切り。SSR とクライアントで同じ文字列を返すこと */
|
|
140
|
+
formatTotalCount?: (count: number) => string;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* DataTable が発行するイベント
|
|
144
|
+
*/
|
|
145
|
+
export interface DataTableEmits<T = unknown> {
|
|
146
|
+
/** 選択が変わった。クリックでの選択・解除、カーソルキーでの移動、読み込み完了時の解除で発行する。解除は undefined と -1 */
|
|
147
|
+
(e: 'emit:selectRow', value: T | undefined, index: number): void;
|
|
148
|
+
/** ソートの条件が変わった。sortMode に関わらず発行する */
|
|
149
|
+
(e: 'emit:changeSort', context: DataTableSortContext): void;
|
|
150
|
+
/** sortMode が page のとき、表示中の行を並べ替えた配列を発行する */
|
|
151
|
+
(e: 'emit:sortData', dataList: T[]): void;
|
|
152
|
+
(e: 'emit:updateHeader', headers: DataTableHeader<T>[]): void;
|
|
153
|
+
(e: 'emit:dblclickRow', value: T, index: number): void;
|
|
154
|
+
(e: 'emit:changeLimit', limit: number): void;
|
|
155
|
+
(e: 'emit:changePage', page: number): void;
|
|
156
|
+
(e: 'emit:downloadPage'): void;
|
|
157
|
+
(e: 'emit:downloadAll'): void;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* DataTable のスロット
|
|
161
|
+
*/
|
|
162
|
+
export interface DataTableSlots<T = unknown> {
|
|
163
|
+
/** 行。tr を dataList と同じ順に並べ、tr の click で clickRow(row, index) を呼ぶ */
|
|
164
|
+
default?(props: {
|
|
165
|
+
/** 行を選択する。選択している行なら選択を解除する */
|
|
166
|
+
clickRow: (row: T, index: number) => void;
|
|
167
|
+
/** 行を選択してダブルクリックを通知する */
|
|
168
|
+
dblclickRow: (row: T, index: number) => void;
|
|
169
|
+
/** 行のインデックスから、ページをまたいだ1起点の行番号を返す */
|
|
170
|
+
rowNumber: (index: number) => number;
|
|
171
|
+
/** 選択している行のインデックス。選択していなければ -1 */
|
|
172
|
+
selectedIndex: number;
|
|
173
|
+
}): unknown;
|
|
174
|
+
/** 読み込み中の表示。未指定なら既定のスピナー */
|
|
175
|
+
loading?(): unknown;
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* ソートの状態
|
|
179
|
+
*/
|
|
180
|
+
export interface DataTableSortContext {
|
|
181
|
+
/** ソートしているヘッダの id。ソートしていなければ空文字 */
|
|
182
|
+
sortKey: string;
|
|
183
|
+
/** 降順なら true */
|
|
184
|
+
descending: boolean;
|
|
185
|
+
}
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
import { ClassValue, StyleValue } from 'vue';
|
|
2
|
+
/** 列の値の型。ソートの比較方法を決める */
|
|
3
|
+
export type DataTableValueType = 'boolean' | 'string' | 'number' | 'object';
|
|
4
|
+
/** ソートの方式。page は表示中の行を並べ替えて返し、remote はソート条件を通知するだけで利用側が再取得する */
|
|
5
|
+
export type DataTableSortMode = 'page' | 'remote';
|
|
6
|
+
/** コントロール(ページネーション・総件数・表示件数・ダウンロードボタン)を出す位置 */
|
|
7
|
+
export type DataTableControlsPlacement = 'both' | 'top' | 'bottom' | 'none';
|
|
8
|
+
/**
|
|
9
|
+
* CSV に出力する列の定義
|
|
10
|
+
*/
|
|
11
|
+
export interface DataTableCsvColumn<T = unknown> {
|
|
12
|
+
/** true なら出力しない */
|
|
13
|
+
disabled?: boolean;
|
|
14
|
+
/** 値を取り出すキー。ドット区切りで入れ子を辿る。未指定なら DataTableHeader.id。'$index' は行番号 */
|
|
15
|
+
key?: string;
|
|
16
|
+
/** 列名。未指定なら DataTableHeader.label。言語切替に追従させる場合は関数で渡す */
|
|
17
|
+
label?: string | (() => string);
|
|
18
|
+
/** 値の整形。指定したときは key を使わない */
|
|
19
|
+
format?: (row: T) => unknown;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* ヘッダの定義
|
|
23
|
+
*/
|
|
24
|
+
export interface DataTableHeader<T = unknown> {
|
|
25
|
+
/** 列を識別するキー。ソートで値を取り出すキーにもなる */
|
|
26
|
+
id: string;
|
|
27
|
+
/** 見出し。言語切替に追従させる場合は関数で渡す */
|
|
28
|
+
label: string | (() => string);
|
|
29
|
+
/** true なら label を HTML として描画する */
|
|
30
|
+
html?: boolean;
|
|
31
|
+
/** ソートで値を取り出すキー。id と違うキーで並べるときに指定する。ドット区切りで入れ子を辿る */
|
|
32
|
+
sortKey?: string;
|
|
33
|
+
/** 値の型。ソートの比較方法を決める。未指定なら string */
|
|
34
|
+
type?: DataTableValueType;
|
|
35
|
+
/** 行同士を比較する関数。指定したときは sortKey と type を使わない。昇順の並びで a が前なら負の数を返す */
|
|
36
|
+
compare?: (a: T, b: T) => number;
|
|
37
|
+
/** 列の幅。数値は px */
|
|
38
|
+
width?: string | number;
|
|
39
|
+
/** 列の最小幅。数値は px */
|
|
40
|
+
minWidth?: string | number;
|
|
41
|
+
/** 列の最大幅。数値は px */
|
|
42
|
+
maxWidth?: string | number;
|
|
43
|
+
/** th の rowspan */
|
|
44
|
+
rowspan?: string | number;
|
|
45
|
+
/** th の colspan */
|
|
46
|
+
colspan?: string | number;
|
|
47
|
+
/** th の title 属性 */
|
|
48
|
+
title?: string;
|
|
49
|
+
/** CSV の出力定義。true なら id の値を label の列名で出力する。未指定なら出力しない */
|
|
50
|
+
csv?: boolean | DataTableCsvColumn<T>[];
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* 表示する文言。言語切替に追従させる場合は関数で渡す
|
|
54
|
+
*/
|
|
55
|
+
export interface DataTableLabels {
|
|
56
|
+
/** 総件数の見出し */
|
|
57
|
+
totalCount?: string | (() => string);
|
|
58
|
+
/** 総件数の後ろに付ける単位 */
|
|
59
|
+
totalUnit?: string | (() => string);
|
|
60
|
+
/** 1ページあたりの表示件数の見出し */
|
|
61
|
+
limit?: string | (() => string);
|
|
62
|
+
/** データが無いときの表示 */
|
|
63
|
+
noData?: string | (() => string);
|
|
64
|
+
/** ページ番号の選択の見出し。showPageSelect のときに表示する */
|
|
65
|
+
pageNumber?: string | (() => string);
|
|
66
|
+
/** ページダウンロードボタンの title */
|
|
67
|
+
downloadPage?: string | (() => string);
|
|
68
|
+
/** 全件ダウンロードボタンの title */
|
|
69
|
+
downloadAll?: string | (() => string);
|
|
70
|
+
/** 先頭ページへ移動するボタンの読み上げ名 */
|
|
71
|
+
firstPage?: string | (() => string);
|
|
72
|
+
/** 前のページへ移動するボタンの読み上げ名 */
|
|
73
|
+
previousPage?: string | (() => string);
|
|
74
|
+
/** 前のページ番号の組へ移動するボタンの読み上げ名 */
|
|
75
|
+
previousPages?: string | (() => string);
|
|
76
|
+
/** 次のページ番号の組へ移動するボタンの読み上げ名 */
|
|
77
|
+
nextPages?: string | (() => string);
|
|
78
|
+
/** 次のページへ移動するボタンの読み上げ名 */
|
|
79
|
+
nextPage?: string | (() => string);
|
|
80
|
+
/** 末尾ページへ移動するボタンの読み上げ名 */
|
|
81
|
+
lastPage?: string | (() => string);
|
|
82
|
+
}
|
|
83
|
+
/** 関数を評価した後の文言 */
|
|
84
|
+
export type DataTableResolvedLabels = Record<keyof DataTableLabels, string>;
|
|
85
|
+
/**
|
|
86
|
+
* DataTable の props
|
|
87
|
+
*/
|
|
88
|
+
export interface DataTableProps<T = unknown> {
|
|
89
|
+
/** 表示している行のデータ。スロットで描画する行と同じ順に並んでいること */
|
|
90
|
+
dataList: T[];
|
|
91
|
+
/** ヘッダ。id は一意であること */
|
|
92
|
+
headers: DataTableHeader<T>[];
|
|
93
|
+
/** 読み込み中。true の間は行を描画せず読み込み中の表示を出す */
|
|
94
|
+
loading?: boolean;
|
|
95
|
+
/** 総件数。未指定なら dataList の件数 */
|
|
96
|
+
totalCount?: number;
|
|
97
|
+
/** 現在ページ(1起点) */
|
|
98
|
+
current?: number;
|
|
99
|
+
/** 1ページあたりの表示件数 */
|
|
100
|
+
limit?: number;
|
|
101
|
+
/** 1ページあたりの表示件数の上限 */
|
|
102
|
+
maxLimit?: number;
|
|
103
|
+
/** ページネーションに並べるページ番号の最大数 */
|
|
104
|
+
maxPagination?: number;
|
|
105
|
+
/** 行をクリックで選択できるか */
|
|
106
|
+
selectable?: boolean;
|
|
107
|
+
/** コントロールを出す位置 */
|
|
108
|
+
controls?: DataTableControlsPlacement;
|
|
109
|
+
/** ページネーションを出す位置。controls が無い側には出ない */
|
|
110
|
+
pagination?: DataTableControlsPlacement;
|
|
111
|
+
/** ページダウンロードボタンを表示するか */
|
|
112
|
+
showDownloadPage?: boolean;
|
|
113
|
+
/** 全件ダウンロードボタンを表示するか */
|
|
114
|
+
showDownloadAll?: boolean;
|
|
115
|
+
/** 総件数を表示するか */
|
|
116
|
+
showTotal?: boolean;
|
|
117
|
+
/** 1ページあたりの表示件数の入力を表示するか */
|
|
118
|
+
showLimit?: boolean;
|
|
119
|
+
/** ページネーションにページ番号の選択を表示するか */
|
|
120
|
+
showPageSelect?: boolean;
|
|
121
|
+
/** dataList が空のときにデータが無い旨の行を表示するか */
|
|
122
|
+
showNoData?: boolean;
|
|
123
|
+
/** ヘッダの境界のドラッグで列幅を変えられるか */
|
|
124
|
+
resizable?: boolean;
|
|
125
|
+
/** ヘッダのクリックでソートできるか */
|
|
126
|
+
sortable?: boolean;
|
|
127
|
+
/** ソートの方式。未指定なら remote */
|
|
128
|
+
sortMode?: DataTableSortMode;
|
|
129
|
+
/** テーブルをスクロールする領域に付ける class */
|
|
130
|
+
contentClass?: ClassValue;
|
|
131
|
+
/** テーブルをスクロールする領域に付ける style */
|
|
132
|
+
contentStyle?: StyleValue;
|
|
133
|
+
/** table に付ける class */
|
|
134
|
+
tableClass?: ClassValue;
|
|
135
|
+
/** table に付ける style */
|
|
136
|
+
tableStyle?: StyleValue;
|
|
137
|
+
/** 表示する文言。未指定の項目は英語 */
|
|
138
|
+
labels?: DataTableLabels;
|
|
139
|
+
/** 総件数の整形。未指定なら en-US の桁区切り。SSR とクライアントで同じ文字列を返すこと */
|
|
140
|
+
formatTotalCount?: (count: number) => string;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* DataTable が発行するイベント
|
|
144
|
+
*/
|
|
145
|
+
export interface DataTableEmits<T = unknown> {
|
|
146
|
+
/** 選択が変わった。クリックでの選択・解除、カーソルキーでの移動、読み込み完了時の解除で発行する。解除は undefined と -1 */
|
|
147
|
+
(e: 'emit:selectRow', value: T | undefined, index: number): void;
|
|
148
|
+
/** ソートの条件が変わった。sortMode に関わらず発行する */
|
|
149
|
+
(e: 'emit:changeSort', context: DataTableSortContext): void;
|
|
150
|
+
/** sortMode が page のとき、表示中の行を並べ替えた配列を発行する */
|
|
151
|
+
(e: 'emit:sortData', dataList: T[]): void;
|
|
152
|
+
(e: 'emit:updateHeader', headers: DataTableHeader<T>[]): void;
|
|
153
|
+
(e: 'emit:dblclickRow', value: T, index: number): void;
|
|
154
|
+
(e: 'emit:changeLimit', limit: number): void;
|
|
155
|
+
(e: 'emit:changePage', page: number): void;
|
|
156
|
+
(e: 'emit:downloadPage'): void;
|
|
157
|
+
(e: 'emit:downloadAll'): void;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* DataTable のスロット
|
|
161
|
+
*/
|
|
162
|
+
export interface DataTableSlots<T = unknown> {
|
|
163
|
+
/** 行。tr を dataList と同じ順に並べ、tr の click で clickRow(row, index) を呼ぶ */
|
|
164
|
+
default?(props: {
|
|
165
|
+
/** 行を選択する。選択している行なら選択を解除する */
|
|
166
|
+
clickRow: (row: T, index: number) => void;
|
|
167
|
+
/** 行を選択してダブルクリックを通知する */
|
|
168
|
+
dblclickRow: (row: T, index: number) => void;
|
|
169
|
+
/** 行のインデックスから、ページをまたいだ1起点の行番号を返す */
|
|
170
|
+
rowNumber: (index: number) => number;
|
|
171
|
+
/** 選択している行のインデックス。選択していなければ -1 */
|
|
172
|
+
selectedIndex: number;
|
|
173
|
+
}): unknown;
|
|
174
|
+
/** 読み込み中の表示。未指定なら既定のスピナー */
|
|
175
|
+
loading?(): unknown;
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* ソートの状態
|
|
179
|
+
*/
|
|
180
|
+
export interface DataTableSortContext {
|
|
181
|
+
/** ソートしているヘッダの id。ソートしていなければ空文字 */
|
|
182
|
+
sortKey: string;
|
|
183
|
+
/** 降順なら true */
|
|
184
|
+
descending: boolean;
|
|
185
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** モーダルダイアログの種類 */
|
|
2
|
+
export type ModalDialogType = 'info' | 'confirm' | 'warn' | 'error';
|
|
3
|
+
/** モーダルダイアログに並べるボタンの種類 */
|
|
4
|
+
export type ModalDialogButton = 'ok' | 'yes' | 'no' | 'cancel';
|
|
5
|
+
/** モーダルダイアログを閉じたボタン。Esc で閉じたときは cancel */
|
|
6
|
+
export type ModalDialogResult = ModalDialogButton;
|
|
7
|
+
/** モーダルダイアログに表示する画像。文字列は画像の URL */
|
|
8
|
+
export type ModalDialogImage = string | {
|
|
9
|
+
/** 画像の URL */
|
|
10
|
+
src: string;
|
|
11
|
+
/** 代替テキスト */
|
|
12
|
+
alt: string;
|
|
13
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** モーダルダイアログの種類 */
|
|
2
|
+
export type ModalDialogType = 'info' | 'confirm' | 'warn' | 'error';
|
|
3
|
+
/** モーダルダイアログに並べるボタンの種類 */
|
|
4
|
+
export type ModalDialogButton = 'ok' | 'yes' | 'no' | 'cancel';
|
|
5
|
+
/** モーダルダイアログを閉じたボタン。Esc で閉じたときは cancel */
|
|
6
|
+
export type ModalDialogResult = ModalDialogButton;
|
|
7
|
+
/** モーダルダイアログに表示する画像。文字列は画像の URL */
|
|
8
|
+
export type ModalDialogImage = string | {
|
|
9
|
+
/** 画像の URL */
|
|
10
|
+
src: string;
|
|
11
|
+
/** 代替テキスト */
|
|
12
|
+
alt: string;
|
|
13
|
+
};
|