nuance-ui 0.2.19 → 0.2.22
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/dist/module.json +1 -1
- package/dist/runtime/components/action-icon/action-icon.d.vue.ts +1 -1
- package/dist/runtime/components/action-icon/action-icon.module.css +1 -1
- package/dist/runtime/components/action-icon/action-icon.vue.d.ts +1 -1
- package/dist/runtime/components/alert.vue +1 -1
- package/dist/runtime/components/badge.vue +1 -1
- package/dist/runtime/components/button/button.d.vue.ts +1 -1
- package/dist/runtime/components/button/button.module.css +1 -1
- package/dist/runtime/components/button/button.vue.d.ts +1 -1
- package/dist/runtime/components/calendar/ui/core/calendar-cell.d.vue.ts +1 -1
- package/dist/runtime/components/calendar/ui/core/calendar-cell.vue.d.ts +1 -1
- package/dist/runtime/components/calendar/ui/core/calendar-header.vue +1 -1
- package/dist/runtime/components/calendar/ui/levels/calendar-month.vue +1 -1
- package/dist/runtime/components/checkbox/checkbox.vue +1 -1
- package/dist/runtime/components/chip/chip.vue +1 -1
- package/dist/runtime/components/combobox/combobox.module.css +1 -1
- package/dist/runtime/components/dialog/index.d.ts +2 -0
- package/dist/runtime/components/dialog/ui/dialog-footer.d.vue.ts +16 -0
- package/dist/runtime/components/dialog/ui/dialog-footer.vue +16 -0
- package/dist/runtime/components/dialog/ui/dialog-footer.vue.d.ts +16 -0
- package/dist/runtime/components/dialog/ui/dialog-root.d.vue.ts +2 -2
- package/dist/runtime/components/dialog/ui/dialog-root.vue +9 -4
- package/dist/runtime/components/dialog/ui/dialog-root.vue.d.ts +2 -2
- package/dist/runtime/components/dialog/ui/dialog-section.d.vue.ts +17 -0
- package/dist/runtime/components/dialog/ui/dialog-section.vue +17 -0
- package/dist/runtime/components/dialog/ui/dialog-section.vue.d.ts +17 -0
- package/dist/runtime/components/dialog/ui/dialog.module.css +1 -1
- package/dist/runtime/components/drawer/drawer-footer.d.vue.ts +16 -0
- package/dist/runtime/components/drawer/drawer-footer.vue +13 -0
- package/dist/runtime/components/drawer/drawer-footer.vue.d.ts +16 -0
- package/dist/runtime/components/drawer/drawer-root.vue +1 -0
- package/dist/runtime/components/drawer/drawer-section.d.vue.ts +16 -0
- package/dist/runtime/components/drawer/drawer-section.vue +14 -0
- package/dist/runtime/components/drawer/drawer-section.vue.d.ts +16 -0
- package/dist/runtime/components/drawer/index.d.ts +2 -0
- package/dist/runtime/components/input/password-input.d.vue.ts +5 -5
- package/dist/runtime/components/input/password-input.vue +1 -2
- package/dist/runtime/components/input/password-input.vue.d.ts +5 -5
- package/dist/runtime/components/input/ui/button-input.d.vue.ts +1 -1
- package/dist/runtime/components/input/ui/button-input.vue.d.ts +1 -1
- package/dist/runtime/components/input/ui/input-base.vue +3 -3
- package/dist/runtime/components/input/ui/input-inline.vue +1 -1
- package/dist/runtime/components/input/ui/input-label.vue +1 -1
- package/dist/runtime/components/input/ui/input-wrapper.vue +1 -1
- package/dist/runtime/components/modal/index.d.ts +0 -2
- package/dist/runtime/components/modal/modal-footer.d.vue.ts +14 -0
- package/dist/runtime/components/modal/modal-footer.vue +13 -0
- package/dist/runtime/components/modal/modal-footer.vue.d.ts +14 -0
- package/dist/runtime/components/modal/modal-header.d.vue.ts +1 -3
- package/dist/runtime/components/modal/modal-header.vue.d.ts +1 -3
- package/dist/runtime/components/modal/modal-root.d.vue.ts +1 -2
- package/dist/runtime/components/modal/modal-root.vue +3 -1
- package/dist/runtime/components/modal/modal-root.vue.d.ts +1 -2
- package/dist/runtime/components/modal/modal-section.d.vue.ts +14 -0
- package/dist/runtime/components/modal/modal-section.vue +14 -0
- package/dist/runtime/components/modal/modal-section.vue.d.ts +14 -0
- package/dist/runtime/components/modal/modal-title.d.vue.ts +1 -3
- package/dist/runtime/components/modal/modal-title.vue.d.ts +1 -3
- package/dist/runtime/components/nav-link/nav-link.vue +1 -1
- package/dist/runtime/components/pin-input/pin-input.vue +2 -2
- package/dist/runtime/components/segmented-control.d.vue.ts +2 -1
- package/dist/runtime/components/segmented-control.vue +5 -2
- package/dist/runtime/components/segmented-control.vue.d.ts +2 -1
- package/dist/runtime/components/table/ui/table.vue +1 -1
- package/dist/runtime/components/tabs/lib.d.ts +26 -26
- package/dist/runtime/components/tabs/lib.js +1 -1
- package/dist/runtime/components/tabs/tabs-list.vue +5 -5
- package/dist/runtime/components/tabs/tabs-panel.vue +1 -1
- package/dist/runtime/components/tabs/tabs-root.d.vue.ts +5 -1
- package/dist/runtime/components/tabs/tabs-root.vue +16 -30
- package/dist/runtime/components/tabs/tabs-root.vue.d.ts +5 -1
- package/dist/runtime/components/tabs/tabs-tab.vue +4 -4
- package/dist/runtime/components/tabs/tabs.module.css +1 -1
- package/dist/runtime/components/text.vue +1 -1
- package/dist/runtime/components/time-picker/time-picker.vue +1 -1
- package/dist/runtime/components/tree/_ui/tree-item.vue +1 -0
- package/dist/runtime/components/tree/_ui/tree-root.vue +1 -1
- package/dist/runtime/components/tree/tree.vue +1 -1
- package/dist/runtime/modals/_confirm-modal/confirm-modal.vue +16 -6
- package/dist/runtime/styles/const.css +1 -1
- package/dist/runtime/types/styling.d.ts +2 -1
- package/package.json +2 -1
package/dist/module.json
CHANGED
|
@@ -7,7 +7,7 @@ export interface ActionIconVars {
|
|
|
7
7
|
root: '--ai-size' | '--ai-radius' | '--ai-bg' | '--ai-hover' | '--ai-color' | '--ai-bd';
|
|
8
8
|
}
|
|
9
9
|
export interface ActionIconProps {
|
|
10
|
-
/** Component size */
|
|
10
|
+
/** Component size @default 'md' */
|
|
11
11
|
size?: ActionIconSize;
|
|
12
12
|
/** Gradient configuration (used with `variant="gradient"`) */
|
|
13
13
|
gradient?: NuanceGradient;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.root{--ai-size-xs:rem(
|
|
1
|
+
.root{--ai-size-xs:rem(26px);--ai-size-sm:rem(30px);--ai-size-md:rem(36px);--ai-size-lg:rem(42px);--ai-size-xl:rem(50px);--ai-size-input-xs:rem(30px);--ai-size-input-sm:rem(36px);--ai-size-input-md:rem(42px);--ai-size-input-lg:rem(50px);--ai-size-input-xl:rem(60px);--ai-size:var(--ai-size-sm);--ai-color:var(--color-white);--ai-radius:var(--radius-default);--ai-bg:var(--color-primary-filled);--ai-hover:var(--color-primary-filled-hover);align-items:center;background:var(--ai-bg,var(--color-primary-filled));border:var(--ai-bd,rem(1px) solid transparent);border-radius:var(--ai-radius,var(--radius-default));color:var(--ai-color,var(--color-white));cursor:pointer;display:inline-flex;height:var(--ai-size);justify-content:center;line-height:1;min-height:var(--ai-size);min-width:var(--ai-size);overflow:hidden;padding:0;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:var(--ai-size)}.root[data-loading]{cursor:not-allowed}.root[data-loading] .icon{opacity:0;transform:translateY(100%)}.root:where(:disabled:not([data-loading]),[data-disabled]:not([data-loading])){border:1px solid transparent;cursor:not-allowed}.root:where(:disabled:not([data-loading]),[data-disabled]:not([data-loading])):active{transform:none}.root:where(:disabled:not([data-loading]),[data-disabled]:not([data-loading])){@mixin where-light{background-color:var(--color-gray-1);color:var(--color-gray-5)}}.root:where(:disabled:not([data-loading]),[data-disabled]:not([data-loading])){@mixin where-dark{background-color:var(--color-dark-6);color:var(--color-dark-3)}}.root:hover:where(:not([data-loading],:disabled,[data-disabled])){background-color:var(--ai-hover);color:var(--ai-color)}.loader{align-items:center;border-radius:var(--ai-radius,var(--radius-default));display:flex;justify-content:center;left:calc(50% - var(--loader-size)/2);position:absolute;top:calc(50% - var(--loader-size)/2);@mixin where-light{background-color:hsla(0,0%,100%,.15)}@mixin where-dark{background-color:rgba(0,0,0,.15)}}.icon{align-items:center;display:flex;height:100%;justify-content:center;transition:transform .15s ease,opacity .1s ease;width:100%}.icon-element{height:70%;width:70%}.group{--ai-border-width:1px;display:flex}.group :where(*):focus{position:relative;z-index:1}.group[data-orientation=horizontal]{flex-direction:row}.group[data-orientation=horizontal] .groupSection:not(:only-child):first-child,.group[data-orientation=horizontal] .root:not(:only-child):first-child{border-end-end-radius:0;border-inline-end-width:calc(var(--ai-border-width)/2);border-start-end-radius:0}.group[data-orientation=horizontal] .groupSection:not(:only-child):last-child,.group[data-orientation=horizontal] .root:not(:only-child):last-child{border-end-start-radius:0;border-inline-start-width:calc(var(--ai-border-width)/2);border-start-start-radius:0}.group[data-orientation=horizontal] .groupSection:not(:only-child):not(:first-child):not(:last-child),.group[data-orientation=horizontal] .root:not(:only-child):not(:first-child):not(:last-child){border-inline-width:calc(var(--ai-border-width)/2);border-radius:0}.group[data-orientation=vertical]{flex-direction:column}.group[data-orientation=vertical] .groupSection:not(:only-child):first-child,.group[data-orientation=vertical] .root:not(:only-child):first-child{border-bottom-width:calc(var(--ai-border-width)/2);border-end-end-radius:0;border-end-start-radius:0}.group[data-orientation=vertical] .groupSection:not(:only-child):last-child,.group[data-orientation=vertical] .root:not(:only-child):last-child{border-start-end-radius:0;border-start-start-radius:0;border-top-width:calc(var(--ai-border-width)/2)}.group[data-orientation=vertical] .groupSection:not(:only-child):not(:first-child):not(:last-child),.group[data-orientation=vertical] .root:not(:only-child):not(:first-child):not(:last-child){border-bottom-width:calc(var(--ai-border-width)/2);border-radius:0;border-top-width:calc(var(--ai-border-width)/2)}.section{--section-height-xs:var(--ai-size-xs);--section-height-sm:var(--ai-size-sm);--section-height-md:var(--ai-size-md);--section-height-lg:var(--ai-size-lg);--section-height-xl:var(--ai-size-xl);--section-height-input-xs:var(--ai-size-input-xs);--section-height-input-sm:var(--ai-size-input-sm);--section-height-input-md:var(--ai-size-input-md);--section-height-input-lg:var(--ai-size-input-lg);--section-height-input-xl:var(--ai-size-input-xl);--section-padding-x-xs:rem(6px);--section-padding-x-sm:rem(8px);--section-padding-x-md:rem(10px);--section-padding-x-lg:rem(12px);--section-padding-x-xl:rem(16px);--section-height:var(--section-height-sm);--section-padding-x:var(--section-padding-x-sm);--section-color:var(--color-white);align-items:center;background:var(--section-bg,var(--color-primary-filled));border:var(--section-bd,rem(1px) solid transparent);border-radius:var(--section-radius,var(--radius-default));color:var(--section-color,var(--color-white));display:inline-flex;font-size:var(--section-fz,var(--font-size-md));font-weight:600;height:var(--section-height,var(--section-height-sm));justify-content:center;line-height:1;padding-inline:var(--section-padding-x,var(--section-padding-x-sm));vertical-align:middle;width:auto}
|
|
@@ -7,7 +7,7 @@ export interface ActionIconVars {
|
|
|
7
7
|
root: '--ai-size' | '--ai-radius' | '--ai-bg' | '--ai-hover' | '--ai-color' | '--ai-bd';
|
|
8
8
|
}
|
|
9
9
|
export interface ActionIconProps {
|
|
10
|
-
/** Component size */
|
|
10
|
+
/** Component size @default 'md' */
|
|
11
11
|
size?: ActionIconSize;
|
|
12
12
|
/** Gradient configuration (used with `variant="gradient"`) */
|
|
13
13
|
gradient?: NuanceGradient;
|
|
@@ -88,5 +88,5 @@ const style = useVarsResolver((theme) => {
|
|
|
88
88
|
</template>
|
|
89
89
|
|
|
90
90
|
<style module>
|
|
91
|
-
.root{--alert-radius:var(--radius-default);--alert-bg:var(--color-primary-light);--alert-bd:1px solid transparent;--alert-color:var(--color-primary-light-color);background-color:var(--alert-bg);border:var(--alert-bd);border-radius:var(--alert-radius);color:var(--alert-color);gap:var(--spacing-sm);overflow:hidden;padding:var(--spacing-sm);position:relative}.body,.root{display:flex}.body{flex:1;flex-direction:column;gap:var(--spacing-xs)}.title{align-items:center;display:flex;font-size:var(--font-size-
|
|
91
|
+
.root{--alert-radius:var(--radius-default);--alert-bg:var(--color-primary-light);--alert-bd:1px solid transparent;--alert-color:var(--color-primary-light-color);background-color:var(--alert-bg);border:var(--alert-bd);border-radius:var(--alert-radius);color:var(--alert-color);gap:var(--spacing-sm);overflow:hidden;padding:var(--spacing-sm);position:relative}.body,.root{display:flex}.body{flex:1;flex-direction:column;gap:var(--spacing-xs)}.title{align-items:center;display:flex;font-size:var(--font-size-md);font-weight:700;justify-content:space-between}.label{display:block;overflow:hidden;text-overflow:ellipsis}.icon{align-items:center;display:flex;height:1.25rem;justify-content:flex-start;line-height:1;margin-top:1px;width:1.25rem}.message{font-size:var(--font-size-md);overflow:hidden;text-overflow:ellipsis}:where([data-mantine-color-scheme=light]) .message{color:var(--color-black)}:where([data-mantine-color-scheme=dark]) .message{color:var(--color-white)}.message:where([data-variant=filled]){color:var(--alert-color)}.message:where([data-variant=white]){color:var(--color-black)}.closeButton{color:var(--alert-color);height:20px;width:20px}
|
|
92
92
|
</style>
|
|
@@ -80,5 +80,5 @@ const style = useVarsResolver((theme) => {
|
|
|
80
80
|
</template>
|
|
81
81
|
|
|
82
82
|
<style module>
|
|
83
|
-
.root{--badge-height-xs:rem(16px);--badge-height-sm:rem(18px);--badge-height-md:rem(20px);--badge-height-lg:rem(26px);--badge-height-xl:rem(32px);--badge-fz-xs:rem(8px);--badge-fz-sm:rem(10px);--badge-fz-md:rem(12px);--badge-fz-lg:rem(14px);--badge-fz-xl:rem(16px);--badge-fw:400;--badge-padding-x-xs:rem(6px);--badge-padding-x-sm:rem(8px);--badge-padding-x-md:rem(10px);--badge-padding-x-lg:rem(12px);--badge-padding-x-xl:rem(16px);--badge-height:var(--badge-height-md);--badge-fz:var(--badge-fz-md);--badge-padding-x:var(--badge-padding-x-md);--badge-radius:100%;--badge-lh:calc(var(--badge-height) - rem(2px));--badge-color:var(--color-white);--badge-bg:var(--color-primary-filled);--badge-border-width:1px;--badge-bd:var(--badge-border-width) solid transparent;align-items:center;background:var(--badge-bg);border:var(--badge-bd);border-radius:var(--badge-radius);color:var(--badge-color);cursor:default;display:inline-grid;font-size:var(--badge-fz);font-weight:var(--badge-fw);height:var(--badge-height);justify-content:center;letter-spacing:.25px;line-height:var(--badge-lh);overflow:hidden;padding:0 var(--badge-padding-x);text-decoration:none;text-overflow:ellipsis;text-transform:uppercase;width:-moz-fit-content;width:fit-content;-webkit-tap-highlight-color:transparent}.root:where([data-with-left-section],[data-variant=dot]){grid-template-columns:auto 1fr;padding-left:calc(var(--badge-padding-x) - var(--spacing-xs)/2)}.root:where([data-with-right-section]){grid-template-columns:1fr auto;padding-right:calc(var(--badge-padding-x) - var(--spacing-xs)/2)}.root:where([data-with-left-section][data-with-right-section],[data-variant=dot][data-with-right-section]){grid-template-columns:auto 1fr auto;padding:0 calc(var(--spacing-xs)/2)}.root:where([data-block]){display:flex;width:100%}.root:where([data-circle]){display:flex;padding-inline:2px;width:var(--badge-height)}.root:where([data-variant=dot]){@mixin where-light{--badge-color:var(--color-black)}@mixin where-dark{--badge-color:var(--color-white)}}.dot{--badge-dot-size:calc(var(--badge-height)/2);background-color:var(--badge-dot-color,var(--badge-color));border-radius:var(--badge-dot-size);display:block;height:var(--badge-dot-size);margin-inline-end:calc(var(--badge-dot-size)/2);width:var(--badge-dot-size)}.label{cursor:inherit;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap}.section{--badge-section-margin:calc(var(--spacing-xs)/2);align-items:center;display:inline-flex;justify-content:center;max-height:calc(var(--badge-height) - var(--badge-border-width)*2)}.section:where([data-position=left]){margin-inline-end:var(--badge-section-margin)}.section:where([data-position=right]){margin-inline-start:var(--badge-section-margin)}
|
|
83
|
+
.root{--badge-height-xs:rem(16px);--badge-height-sm:rem(18px);--badge-height-md:rem(20px);--badge-height-lg:rem(26px);--badge-height-xl:rem(32px);--badge-fz-xs:rem(8px);--badge-fz-sm:rem(10px);--badge-fz-md:rem(12px);--badge-fz-lg:rem(14px);--badge-fz-xl:rem(16px);--badge-fw:400;--badge-padding-x-xs:rem(6px);--badge-padding-x-sm:rem(8px);--badge-padding-x-md:rem(10px);--badge-padding-x-lg:rem(12px);--badge-padding-x-xl:rem(16px);--badge-height:var(--badge-height-md);--badge-fz:var(--badge-fz-md);--badge-padding-x:var(--badge-padding-x-md);--badge-radius:100%;--badge-lh:calc(var(--badge-height) - rem(2px));--badge-color:var(--color-white);--badge-bg:var(--color-primary-filled);--badge-border-width:1px;--badge-bd:var(--badge-border-width) solid transparent;align-items:center;background:var(--badge-bg);border:var(--badge-bd);border-radius:var(--badge-radius);color:var(--badge-color);cursor:default;display:inline-grid;font-size:var(--badge-fz);font-weight:var(--badge-fw);height:var(--badge-height);justify-content:center;letter-spacing:.25px;line-height:var(--badge-lh);overflow:hidden;padding:0 var(--badge-padding-x);text-decoration:none;text-overflow:ellipsis;text-transform:uppercase;width:-moz-fit-content;width:fit-content;-webkit-tap-highlight-color:transparent}.root:where([data-with-left-section],[data-variant=dot]){grid-template-columns:auto 1fr;padding-left:calc(var(--badge-padding-x) - var(--spacing-xs)/2)}.root:where([data-with-right-section]){grid-template-columns:1fr auto;padding-right:calc(var(--badge-padding-x) - var(--spacing-xs)/2)}.root:where([data-with-left-section][data-with-right-section],[data-variant=dot][data-with-right-section]){grid-template-columns:auto 1fr auto;padding:0 calc(var(--spacing-xs)/2)}.root:where([data-block]){display:flex;width:100%}.root:where([data-circle]){display:flex;padding-inline:2px;width:var(--badge-height)}.root:where([data-variant=dot]){@mixin where-light{--badge-color:var(--color-black)}@mixin where-dark{--badge-color:var(--color-white)}}.dot{--badge-dot-size:calc(var(--badge-height)/2.5);background-color:var(--badge-dot-color,var(--badge-color));border-radius:var(--badge-dot-size);display:block;height:var(--badge-dot-size);margin-inline-end:calc(var(--badge-dot-size)/2);width:var(--badge-dot-size)}.label{cursor:inherit;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap}.section{--badge-section-margin:calc(var(--spacing-xs)/2);align-items:center;display:inline-flex;justify-content:center;max-height:calc(var(--badge-height) - var(--badge-border-width)*2)}.section:where([data-position=left]){margin-inline-end:var(--badge-section-margin)}.section:where([data-position=right]){margin-inline-start:var(--badge-section-margin)}
|
|
84
84
|
</style>
|
|
@@ -6,7 +6,7 @@ export type ButtonVariant = 'filled' | 'light' | 'outline' | 'subtle' | 'default
|
|
|
6
6
|
export interface ButtonProps extends BoxProps {
|
|
7
7
|
/** Color from theme */
|
|
8
8
|
color?: NuanceColor;
|
|
9
|
-
/** Component size */
|
|
9
|
+
/** Component size @default 'sm' */
|
|
10
10
|
size?: NuanceSize | `compact-${NuanceSize}`;
|
|
11
11
|
/** Spacing token */
|
|
12
12
|
spacing?: NuanceSpacing | AnyString;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.root{--button-height-xs:rem(
|
|
1
|
+
.root{--button-height-xs:rem(26px);--button-height-sm:rem(30px);--button-height-md:rem(36px);--button-height-lg:rem(42px);--button-height-xl:rem(50px);--button-height-compact-xs:rem(22px);--button-height-compact-sm:rem(26px);--button-height-compact-md:rem(30px);--button-height-compact-lg:rem(34px);--button-height-compact-xl:rem(40px);--button-padding-x-xs:rem(14px);--button-padding-x-sm:rem(18px);--button-padding-x-md:rem(22px);--button-padding-x-lg:rem(26px);--button-padding-x-xl:rem(32px);--button-padding-x-compact-xs:rem(7px);--button-padding-x-compact-sm:rem(8px);--button-padding-x-compact-md:rem(10px);--button-padding-x-compact-lg:rem(12px);--button-padding-x-compact-xl:rem(14px);--button-height:var(--button-height-sm);--button-padding-x:var(--button-padding-x-sm);--button-color:var(--color-white);--button-fz:var(--font-size-md);--button-bg:var(--color-primary-filled);--button-radius:var(--radius-default);--button-hover:var(--color-primary-filled-hover);--button-spacing:0;--button-justify:center;--button-section-size:calc(var(--button-height) - 0.25rem);background:var(--button-bg);border:var(--button-bd,rem(1px) solid transparent);border-radius:var(--button-radius);color:var(--button-color,var(--color-white));cursor:pointer;display:inline-block;font-size:var(--button-fz);font-weight:600;height:var(--button-height,var(--button-height-sm));line-height:1;overflow:hidden;padding-inline:var(--button-padding-x,var(--button-padding-x-sm));position:relative;text-align:center;transition:background-color .2s ease-in,color .2s ease-in;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle;width:auto}.root:where([data-with-left-section]){padding-inline-start:0}.root:where([data-with-right-section]){padding-inline-end:0}.root:where([data-variant=gradient-outline]){background-clip:padding-box,border-box;background-origin:border-box}.root:where(:disabled:not([data-loading])){background:var(--color-disabled);border:1px solid transparent;color:var(--color-disabled-text);cursor:not-allowed;transform:none}.root:before{border-radius:var(--button-radius,var(--radius-default));content:"";filter:blur(12px);inset:-1px;opacity:0;pointer-events:none;position:absolute;transform:translateY(-100%);transition:transform .15s ease,opacity .1s ease;@mixin where-light{background:var(--color-gray-1);color:var(--color-gray-5)}@mixin where-dark{background:var(--color-dark-6);color:var(--color-dark-3)}}.root:where([data-loading]){cursor:not-allowed;transform:none}.root:where([data-loading]):before{opacity:1;transform:translateY(0)}.root:where([data-loading]) .inner{opacity:0;transform:translateY(100%)}.root:hover:where(:not([data-loading],:disabled)){background:var(--button-hover);color:var(--button-color)}.root:hover:where(:not([data-loading],:disabled)):where([data-variant=gradient-outline]){color:#fff}.inner{gap:var(--button-spacing);justify-content:center;overflow:visible;transition:transform .15s ease,opacity .1s ease;width:100%}.inner,.label{align-items:center;display:flex;height:100%}.label{flex:1;justify-content:var(--button-justify);opacity:1;overflow:hidden;white-space:nowrap}.label:where([data-loading]){opacity:.2}.section{--section-pointer-events:none;align-items:center;display:flex;height:100%;justify-content:center;pointer-events:var(--section-pointer-events);width:var(--button-section-size)}.loader{left:calc(50% - var(--loader-size)/2);position:absolute;top:calc(50% - var(--loader-size)/2)}.group{--group-border-width:1px;display:flex}.group>:where(*):focus{position:relative;z-index:1}.group[data-orientation=horizontal]{flex-direction:row}.group[data-orientation=horizontal]>:where(*):not(:only-child):first-child{border-end-end-radius:0;border-inline-end-width:calc(var(--group-border-width)/2);border-start-end-radius:0}.group[data-orientation=horizontal]>:where(*):not(:only-child):last-child{border-end-start-radius:0;border-inline-start-width:calc(var(--group-border-width)/2);border-start-start-radius:0}.group[data-orientation=horizontal]>:where(*):not(:only-child):not(:first-child):not(:last-child){border-inline-width:calc(var(--group-border-width)/2);border-radius:0}.group[data-orientation=vertical]{flex-direction:column}.group[data-orientation=vertical]>:where(*):not(:only-child):first-child{border-bottom-width:calc(var(--group-border-width)/2);border-end-end-radius:0;border-end-start-radius:0}.group[data-orientation=vertical]>:where(*):not(:only-child):last-child{border-start-end-radius:0;border-start-start-radius:0;border-top-width:calc(var(--group-border-width)/2)}.group[data-orientation=vertical]>:where(*):not(:only-child):not(:first-child):not(:last-child){border-bottom-width:calc(var(--group-border-width)/2);border-radius:0;border-top-width:calc(var(--group-border-width)/2)}
|
|
@@ -6,7 +6,7 @@ export type ButtonVariant = 'filled' | 'light' | 'outline' | 'subtle' | 'default
|
|
|
6
6
|
export interface ButtonProps extends BoxProps {
|
|
7
7
|
/** Color from theme */
|
|
8
8
|
color?: NuanceColor;
|
|
9
|
-
/** Component size */
|
|
9
|
+
/** Component size @default 'sm' */
|
|
10
10
|
size?: NuanceSize | `compact-${NuanceSize}`;
|
|
11
11
|
/** Spacing token */
|
|
12
12
|
spacing?: NuanceSpacing | AnyString;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { AnyString, NuanceSize } from '@nui/types';
|
|
2
2
|
import type { BoxProps } from '../../../box.vue.js';
|
|
3
3
|
export interface CalendarCellProps extends BoxProps {
|
|
4
|
-
/** Component size */
|
|
4
|
+
/** Component size @default 'md' */
|
|
5
5
|
size?: NuanceSize | AnyString;
|
|
6
6
|
}
|
|
7
7
|
declare var __VLS_8: {};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { AnyString, NuanceSize } from '@nui/types';
|
|
2
2
|
import type { BoxProps } from '../../../box.vue.js';
|
|
3
3
|
export interface CalendarCellProps extends BoxProps {
|
|
4
|
-
/** Component size */
|
|
4
|
+
/** Component size @default 'md' */
|
|
5
5
|
size?: NuanceSize | AnyString;
|
|
6
6
|
}
|
|
7
7
|
declare var __VLS_8: {};
|
|
@@ -58,5 +58,5 @@ defineEmits(["prev", "level", "next"]);
|
|
|
58
58
|
</template>
|
|
59
59
|
|
|
60
60
|
<style module>
|
|
61
|
-
.header{--dch-control-size-xs:rem(30px);--dch-control-size-sm:rem(36px);--dch-control-size-md:rem(42px);--dch-control-size-lg:rem(48px);--dch-control-size-xl:rem(54px);--dch-control-size:var(--dch-control-size-sm);--dch-control-radius:var(--radius-default);display:flex}.control,.level{align-items:center;border-radius:var(--dch-control-radius);cursor:pointer;display:flex;height:var(--dch-control-size);justify-content:center;opacity:1;-webkit-user-select:none;-moz-user-select:none;user-select:none}.control:where([data-static]),.level:where([data-static]){cursor:default}.control:hover:where(:not([data-static],:disabled)),.level:hover:where(:not([data-static],:disabled)){@mixin light{background-color:var(--color-gray-0)}@mixin dark{background-color:var(--color-dark-5)}}.control:where(:disabled),.level:where(:disabled){cursor:not-allowed;opacity:.2}.level{flex:1;font-size:var(--dch-fz,var(--font-size-
|
|
61
|
+
.header{--dch-control-size-xs:rem(30px);--dch-control-size-sm:rem(36px);--dch-control-size-md:rem(42px);--dch-control-size-lg:rem(48px);--dch-control-size-xl:rem(54px);--dch-control-size:var(--dch-control-size-sm);--dch-control-radius:var(--radius-default);display:flex}.control,.level{align-items:center;border-radius:var(--dch-control-radius);cursor:pointer;display:flex;height:var(--dch-control-size);justify-content:center;opacity:1;-webkit-user-select:none;-moz-user-select:none;user-select:none}.control:where([data-static]),.level:where([data-static]){cursor:default}.control:hover:where(:not([data-static],:disabled)),.level:hover:where(:not([data-static],:disabled)){@mixin light{background-color:var(--color-gray-0)}@mixin dark{background-color:var(--color-dark-5)}}.control:where(:disabled),.level:where(:disabled){cursor:not-allowed;opacity:.2}.level{flex:1;font-size:var(--dch-fz,var(--font-size-md));font-weight:500;text-transform:capitalize}.control{width:var(--dch-control-size)}.icon{height:60%;width:60%}
|
|
62
62
|
</style>
|
|
@@ -110,5 +110,5 @@ function handleSelect(event) {
|
|
|
110
110
|
</template>
|
|
111
111
|
|
|
112
112
|
<style module>
|
|
113
|
-
.table{border-collapse:collapse;table-layout:fixed}.row:where([data-selectable]):hover{@mixin light{background-color:var(--color-gray-0)}@mixin dark{background-color:var(--color-dark-5)}}.cell{padding:0}.cell:where(.cell[data-with-spacing]){padding:var(--calendar-cell-spacing)}.weekday{color:var(--color-dimmed);font-size:var(--wr-fz,var(--font-size-
|
|
113
|
+
.table{border-collapse:collapse;table-layout:fixed}.row:where([data-selectable]):hover{@mixin light{background-color:var(--color-gray-0)}@mixin dark{background-color:var(--color-dark-5)}}.cell{padding:0}.cell:where(.cell[data-with-spacing]){padding:var(--calendar-cell-spacing)}.weekday{color:var(--color-dimmed);font-size:var(--wr-fz,var(--font-size-md));font-weight:400;padding-bottom:calc(var(--wr-spacing, var(--spacing-sm))/2);text-transform:capitalize}
|
|
114
114
|
</style>
|
|
@@ -83,5 +83,5 @@ const style = useVarsResolver((theme) => {
|
|
|
83
83
|
</template>
|
|
84
84
|
|
|
85
85
|
<style module>
|
|
86
|
-
.root{--chip-size-xs:rem(23px);--chip-size-sm:rem(28px);--chip-size-md:rem(32px);--chip-size-lg:rem(36px);--chip-size-xl:rem(40px);--chip-icon-size-xs:rem(12px);--chip-icon-size-sm:rem(14px);--chip-icon-size-md:rem(16px);--chip-icon-size-lg:rem(18px);--chip-icon-size-xl:rem(20px);--chip-padding-xs:rem(16px);--chip-padding-sm:rem(20px);--chip-padding-md:rem(24px);--chip-padding-lg:rem(28px);--chip-padding-xl:rem(32px);--chip-checked-padding-xs:rem(7.5px);--chip-checked-padding-sm:rem(10px);--chip-checked-padding-md:rem(11.7px);--chip-checked-padding-lg:rem(13.5px);--chip-checked-padding-xl:rem(15.7px);--chip-spacing-xs:rem(10px);--chip-spacing-sm:rem(12px);--chip-spacing-md:rem(16px);--chip-spacing-lg:rem(20px);--chip-spacing-xl:rem(22px);--chip-size:var(--chip-size-
|
|
86
|
+
.root{--chip-size-xs:rem(23px);--chip-size-sm:rem(28px);--chip-size-md:rem(32px);--chip-size-lg:rem(36px);--chip-size-xl:rem(40px);--chip-icon-size-xs:rem(12px);--chip-icon-size-sm:rem(14px);--chip-icon-size-md:rem(16px);--chip-icon-size-lg:rem(18px);--chip-icon-size-xl:rem(20px);--chip-padding-xs:rem(16px);--chip-padding-sm:rem(20px);--chip-padding-md:rem(24px);--chip-padding-lg:rem(28px);--chip-padding-xl:rem(32px);--chip-checked-padding-xs:rem(7.5px);--chip-checked-padding-sm:rem(10px);--chip-checked-padding-md:rem(11.7px);--chip-checked-padding-lg:rem(13.5px);--chip-checked-padding-xl:rem(15.7px);--chip-spacing-xs:rem(10px);--chip-spacing-sm:rem(12px);--chip-spacing-md:rem(16px);--chip-spacing-lg:rem(20px);--chip-spacing-xl:rem(22px);--chip-size:var(--chip-size-md);--chip-icon-size:var(--chip-icon-size-sm);--chip-padding:var(--chip-padding-sm);--chip-spacing:var(--chip-spacing-sm);--chip-checked-padding:var(--chip-checked-padding-sm);--chip-bg:var(--color-primary-filled);--chip-hover:var(--color-primary-filled-hover);--chip-color:var(--color-white);--chip-bd:1px solid transparent;--chip-fz:var(--font-size-md);--chip-radius:var(--radius-xl)}.label{align-items:center;border:1px solid transparent;border-radius:var(--chip-radius);color:var(--color-text);cursor:pointer;display:inline-flex;font-size:var(--chip-fz);height:var(--chip-size);line-height:calc(var(--chip-size) - rem(2px));padding-inline:var(--chip-padding);-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap;-webkit-tap-highlight-color:transparent}.iconWrapper{align-items:center;display:flex;max-width:calc(var(--chip-icon-size) + var(--chip-spacing)/1.5);overflow:hidden;width:calc(var(--chip-icon-size) + var(--chip-spacing)/1.5)}.icon,.iconWrapper{height:var(--chip-icon-size)}.icon{color:var(--chip-icon-color,inherit);display:block;width:var(--chip-icon-size)}.input{height:0;margin:0;opacity:0;padding:0;width:0}.input:focus-visible+.label{outline:2px solid var(--color-primary-filled);outline-offset:2px}.input:disabled+.label{background-color:var(--color-disabled);color:var(--color-disabled-text);cursor:not-allowed}.input:not(:disabled)+.label[data-variant=outline]{@mixin where-light{background-color:var(--color-white);border-bottom-color:var(--color-gray-3);border-bottom-style:solid;border-bottom-width:1px;border-left-color:var(--color-gray-3);border-left-style:solid;border-left-width:1px;border-right-color:var(--color-gray-3);border-right-style:solid;border-right-width:1px;border-top-color:var(--color-gray-3);border-top-style:solid;border-top-width:1px}@mixin where-dark{background-color:var(--color-dark-6);border-bottom-color:var(--color-dark-4);border-bottom-style:solid;border-bottom-width:1px;border-left-color:var(--color-dark-4);border-left-style:solid;border-left-width:1px;border-right-color:var(--color-dark-4);border-right-style:solid;border-right-width:1px;border-top-color:var(--color-dark-4);border-top-style:solid;border-top-width:1px}@mixin hover{@mixin where-light{background-color:var(--color-gray-0)}@mixin where-dark{background-color:var(--color-dark-5)}}}.input:not(:disabled)+.label[data-variant=filled],.input:not(:disabled)+.label[data-variant=light]{border:1px solid transparent;color:var(--color-text);@mixin where-light{background-color:var(--color-gray-1)}@mixin where-dark{background-color:var(--color-dark-5)}@mixin hover{@mixin where-light{background-color:var(--color-gray-2)}@mixin where-dark{background-color:var(--color-dark-4)}}}.input:not(:disabled):checked+.label{padding:var(--chip-checked-padding)}.input:not(:disabled):checked+.label[data-variant=outline]{--chip-icon-color:var(--chip-color);border:var(--chip-bd);@mixin hover{background-color:var(--chip-hover)}}.input:not(:disabled):checked+.label[data-variant=filled],.input:not(:disabled):checked+.label[data-variant=light]{--chip-icon-color:var(--chip-color);background-color:var(--chip-bg);color:var(--chip-color);@mixin hover{background-color:var(--chip-hover)}}
|
|
87
87
|
</style>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.dropdown{--combobox-padding:.25rem;padding:var(--combobox-padding)}.dropdown:has([data-scrollbar]) .search{max-width:calc(100% + var(--combobox-padding))}.dropdown[data-hidden]{display:none}.dropdown,.options{--combobox-option-padding-xs:rem(4px) rem(8px);--combobox-option-padding-sm:rem(6px) rem(10px);--combobox-option-padding-md:rem(8px) rem(12px);--combobox-option-padding-lg:rem(10px) rem(16px);--combobox-option-padding-xl:rem(14px) rem(20px);--combobox-option-padding:var(--combobox-option-padding-sm)}.option{align-items:center;background-color:transparent;border-radius:var(--radius-default);color:inherit;cursor:pointer;display:flex;font-size:var(--combobox-option-fz,var(--font-size-
|
|
1
|
+
.dropdown{--combobox-padding:.25rem;padding:var(--combobox-padding)}.dropdown:has([data-scrollbar]) .search{max-width:calc(100% + var(--combobox-padding))}.dropdown[data-hidden]{display:none}.dropdown,.options{--combobox-option-padding-xs:rem(4px) rem(8px);--combobox-option-padding-sm:rem(6px) rem(10px);--combobox-option-padding-md:rem(8px) rem(12px);--combobox-option-padding-lg:rem(10px) rem(16px);--combobox-option-padding-xl:rem(14px) rem(20px);--combobox-option-padding:var(--combobox-option-padding-sm)}.option{align-items:center;background-color:transparent;border-radius:var(--radius-default);color:inherit;cursor:pointer;display:flex;font-size:var(--combobox-option-fz,var(--font-size-md));gap:8px;overflow-wrap:break-word;padding:var(--combobox-option-padding)}.option:where([data-combobox-selected]){background-color:var(--color-primary-filled);color:var(--color-white)}.option:where([data-combobox-disabled]){cursor:not-allowed;opacity:.35}.option:where([data-reverse]){justify-content:space-between}.option{@mixin hover{&:where(:not([data-combobox-selected],[data-combobox-disabled])){@mixin where-light{background-color:var(--color-gray-0)}@mixin where-dark{background-color:var(--color-dark-7)}}}}.optionCheck{height:.8em;min-width:.8em;opacity:.4;width:.8em}:where([data-combobox-selected]) .optionCheck{opacity:1}.search{border-end-end-radius:0;border-end-start-radius:0;border-inline-width:0;border-top-width:0;margin-inline:calc(var(--combobox-padding)*-1);margin-bottom:var(--combobox-padding);margin-top:calc(var(--combobox-padding)*-1);position:relative;width:calc(100% + var(--combobox-padding)*2)}.search,.search:focus{@mixin where-light{border-color:var(--color-gray-2)}@mixin where-dark{border-color:var(--color-dark-4)}}.search{@mixin where-light{background-color:var(--color-white)}}.search{@mixin where-dark{background-color:var(--color-dark-7)}}.empty{color:var(--color-dimmed);font-size:var(--combobox-option-fz,var(--font-size-md));padding:var(--combobox-option-padding);text-align:center}.footer,.header{border:0 solid transparent;font-size:var(--combobox-option-fz,var(--font-size-md));margin-inline:calc(var(--combobox-padding)*-1);padding:var(--combobox-option-padding);@mixin where-light{border-color:var(--color-gray-2)}@mixin where-dark{border-color:var(--color-dark-4)}}.footer{border-top-width:1px;margin-bottom:calc(var(--combobox-padding)*-1);margin-top:var(--combobox-padding)}.header{border-bottom-width:1px;margin-bottom:var(--combobox-padding);margin-top:calc(var(--combobox-padding)*-1)}.group:has(.groupLabel:only-child){display:none}.groupLabel{align-items:center;color:var(--color-dimmed);display:flex;font-size:calc(var(--combobox-option-fz, var(--font-size-md))*.85);font-weight:500;padding:var(--combobox-option-padding);position:relative}.groupLabel:after{content:"";flex:1;height:1px;inset-inline:0;margin-inline-start:var(--spacing-xs);@mixin where-light{background-color:var(--color-gray-2)}@mixin where-dark{background-color:var(--color-dark-4)}}.groupLabel:only-child{display:none}.chevron{--combobox-chevron-size-xs:rem(14px);--combobox-chevron-size-sm:rem(18px);--combobox-chevron-size-md:rem(20px);--combobox-chevron-size-lg:rem(24px);--combobox-chevron-size-xl:rem(28px);--combobox-chevron-size:var(--combobox-chevron-size-sm);@mixin where-light{--_combobox-chevron-color:var(--combobox-chevron-color,var(--color-gray-6))}@mixin where-dark{--_combobox-chevron-color:var(--combobox-chevron-color,var(--color-dark-3))}color:var(--_combobox-chevron-color);height:var(--combobox-chevron-size);width:var(--combobox-chevron-size)}.chevron:where([data-error]){color:var(--combobox-chevron-color,var(--color-error))}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export { useDialogState } from './lib.js';
|
|
2
2
|
export type * from './types';
|
|
3
|
+
export type * from './ui/dialog-footer.vue';
|
|
3
4
|
export type * from './ui/dialog-header.vue';
|
|
4
5
|
export type * from './ui/dialog-root.vue';
|
|
6
|
+
export type * from './ui/dialog-section.vue';
|
|
5
7
|
export type * from './ui/dialog-title.vue';
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { BoxProps } from '../../box.vue.js';
|
|
2
|
+
export interface DialogFooterProps extends BoxProps {
|
|
3
|
+
}
|
|
4
|
+
declare var __VLS_14: {};
|
|
5
|
+
type __VLS_Slots = {} & {
|
|
6
|
+
default?: (props: typeof __VLS_14) => any;
|
|
7
|
+
};
|
|
8
|
+
declare const __VLS_base: import("vue").DefineComponent<DialogFooterProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<DialogFooterProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
9
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
10
|
+
declare const _default: typeof __VLS_export;
|
|
11
|
+
export default _default;
|
|
12
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
13
|
+
new (): {
|
|
14
|
+
$slots: S;
|
|
15
|
+
};
|
|
16
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import Box from "../../box.vue";
|
|
3
|
+
import css from "./dialog.module.css";
|
|
4
|
+
const { is = "footer", mod } = defineProps({
|
|
5
|
+
is: { type: null, required: false },
|
|
6
|
+
mod: { type: [Object, Array, null], required: false }
|
|
7
|
+
});
|
|
8
|
+
</script>
|
|
9
|
+
|
|
10
|
+
<template>
|
|
11
|
+
<ClientOnly>
|
|
12
|
+
<Box :is :mod :class='css.footer'>
|
|
13
|
+
<slot />
|
|
14
|
+
</Box>
|
|
15
|
+
</ClientOnly>
|
|
16
|
+
</template>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { BoxProps } from '../../box.vue.js';
|
|
2
|
+
export interface DialogFooterProps extends BoxProps {
|
|
3
|
+
}
|
|
4
|
+
declare var __VLS_14: {};
|
|
5
|
+
type __VLS_Slots = {} & {
|
|
6
|
+
default?: (props: typeof __VLS_14) => any;
|
|
7
|
+
};
|
|
8
|
+
declare const __VLS_base: import("vue").DefineComponent<DialogFooterProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<DialogFooterProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
9
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
10
|
+
declare const _default: typeof __VLS_export;
|
|
11
|
+
export default _default;
|
|
12
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
13
|
+
new (): {
|
|
14
|
+
$slots: S;
|
|
15
|
+
};
|
|
16
|
+
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { NuanceRadius, NuanceShadow, NuanceSize, NuanceSpacing } from '@nui/types';
|
|
1
|
+
import type { Classes, NuanceRadius, NuanceShadow, NuanceSize, NuanceSpacing } from '@nui/types';
|
|
2
2
|
import type { CSSProperties, RendererElement } from 'vue';
|
|
3
3
|
import type { BoxProps } from '../../box.vue.js';
|
|
4
4
|
import type { TransitionName } from '../../transition.vue.js';
|
|
@@ -27,7 +27,7 @@ export interface DialogRootProps extends BoxProps, StyleProps {
|
|
|
27
27
|
/** If set, the component is rendered with `Overlay` @default `true` */
|
|
28
28
|
withoutOverlay?: boolean;
|
|
29
29
|
/** Passes a class to root element */
|
|
30
|
-
|
|
30
|
+
classes?: Classes<'root' | 'content'>;
|
|
31
31
|
/** Portal target to render element @default 'body' */
|
|
32
32
|
portalTarget?: string | RendererElement | null;
|
|
33
33
|
}
|
|
@@ -17,7 +17,7 @@ const {
|
|
|
17
17
|
padding,
|
|
18
18
|
size,
|
|
19
19
|
shadow,
|
|
20
|
-
|
|
20
|
+
classes,
|
|
21
21
|
transition = "fade-down",
|
|
22
22
|
withoutOverlay = false,
|
|
23
23
|
portalTarget = "body"
|
|
@@ -25,7 +25,7 @@ const {
|
|
|
25
25
|
closeOnClickOutside: { type: Boolean, required: false },
|
|
26
26
|
withinPortal: { type: Boolean, required: false },
|
|
27
27
|
withoutOverlay: { type: Boolean, required: false },
|
|
28
|
-
|
|
28
|
+
classes: { type: Object, required: false },
|
|
29
29
|
portalTarget: { type: [String, Object, null], required: false },
|
|
30
30
|
is: { type: null, required: false },
|
|
31
31
|
mod: { type: [Object, Array, null], required: false },
|
|
@@ -79,7 +79,7 @@ const style = computed(() => ({
|
|
|
79
79
|
<Box
|
|
80
80
|
is='dialog'
|
|
81
81
|
ref='dialogRef'
|
|
82
|
-
:class='[css.root,
|
|
82
|
+
:class='[css.root, classes?.root]'
|
|
83
83
|
:mod='[{ "without-overlay": withoutOverlay }, mod]'
|
|
84
84
|
:style
|
|
85
85
|
@click='overlayClick'
|
|
@@ -87,7 +87,12 @@ const style = computed(() => ({
|
|
|
87
87
|
@cancel.prevent='opened = false'
|
|
88
88
|
>
|
|
89
89
|
<NTransition :name='transition'>
|
|
90
|
-
<Box
|
|
90
|
+
<Box
|
|
91
|
+
is='section'
|
|
92
|
+
v-if='opened'
|
|
93
|
+
:class='[css.content, classes?.content]'
|
|
94
|
+
v-bind='$attrs'
|
|
95
|
+
>
|
|
91
96
|
<slot />
|
|
92
97
|
</Box>
|
|
93
98
|
</NTransition>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { NuanceRadius, NuanceShadow, NuanceSize, NuanceSpacing } from '@nui/types';
|
|
1
|
+
import type { Classes, NuanceRadius, NuanceShadow, NuanceSize, NuanceSpacing } from '@nui/types';
|
|
2
2
|
import type { CSSProperties, RendererElement } from 'vue';
|
|
3
3
|
import type { BoxProps } from '../../box.vue.js';
|
|
4
4
|
import type { TransitionName } from '../../transition.vue.js';
|
|
@@ -27,7 +27,7 @@ export interface DialogRootProps extends BoxProps, StyleProps {
|
|
|
27
27
|
/** If set, the component is rendered with `Overlay` @default `true` */
|
|
28
28
|
withoutOverlay?: boolean;
|
|
29
29
|
/** Passes a class to root element */
|
|
30
|
-
|
|
30
|
+
classes?: Classes<'root' | 'content'>;
|
|
31
31
|
/** Portal target to render element @default 'body' */
|
|
32
32
|
portalTarget?: string | RendererElement | null;
|
|
33
33
|
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { BoxProps } from '../../box.vue.js';
|
|
2
|
+
export interface DialogSectionProps extends BoxProps {
|
|
3
|
+
bordered?: boolean;
|
|
4
|
+
}
|
|
5
|
+
declare var __VLS_14: {};
|
|
6
|
+
type __VLS_Slots = {} & {
|
|
7
|
+
default?: (props: typeof __VLS_14) => any;
|
|
8
|
+
};
|
|
9
|
+
declare const __VLS_base: import("vue").DefineComponent<DialogSectionProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<DialogSectionProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
10
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
11
|
+
declare const _default: typeof __VLS_export;
|
|
12
|
+
export default _default;
|
|
13
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
14
|
+
new (): {
|
|
15
|
+
$slots: S;
|
|
16
|
+
};
|
|
17
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import Box from "../../box.vue";
|
|
3
|
+
import css from "./dialog.module.css";
|
|
4
|
+
const { is = "section", bordered, mod } = defineProps({
|
|
5
|
+
bordered: { type: Boolean, required: false },
|
|
6
|
+
is: { type: null, required: false },
|
|
7
|
+
mod: { type: [Object, Array, null], required: false }
|
|
8
|
+
});
|
|
9
|
+
</script>
|
|
10
|
+
|
|
11
|
+
<template>
|
|
12
|
+
<ClientOnly>
|
|
13
|
+
<Box :is :mod='[{ bordered }, mod]' :class='css.section'>
|
|
14
|
+
<slot />
|
|
15
|
+
</Box>
|
|
16
|
+
</ClientOnly>
|
|
17
|
+
</template>
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { BoxProps } from '../../box.vue.js';
|
|
2
|
+
export interface DialogSectionProps extends BoxProps {
|
|
3
|
+
bordered?: boolean;
|
|
4
|
+
}
|
|
5
|
+
declare var __VLS_14: {};
|
|
6
|
+
type __VLS_Slots = {} & {
|
|
7
|
+
default?: (props: typeof __VLS_14) => any;
|
|
8
|
+
};
|
|
9
|
+
declare const __VLS_base: import("vue").DefineComponent<DialogSectionProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<DialogSectionProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
10
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
11
|
+
declare const _default: typeof __VLS_export;
|
|
12
|
+
export default _default;
|
|
13
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
14
|
+
new (): {
|
|
15
|
+
$slots: S;
|
|
16
|
+
};
|
|
17
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.root{--dialog-size-xs:rem(320px);--dialog-size-sm:rem(380px);--dialog-size-md:rem(440px);--dialog-size-lg:rem(620px);--dialog-size-xl:rem(780px);--dialog-size:var(--dialog-size-md);--dialog-y-offset:0;--dialog-x-offset:0;--dialog-shadow:var(--shadow-md);--dialog-radius:var(--radius-
|
|
1
|
+
.root{--dialog-size-xs:rem(320px);--dialog-size-sm:rem(380px);--dialog-size-md:rem(440px);--dialog-size-lg:rem(620px);--dialog-size-xl:rem(780px);--dialog-size:var(--dialog-size-md);--dialog-y-offset:0;--dialog-x-offset:0;--dialog-shadow:var(--shadow-md);--dialog-radius:var(--radius-md);--dialog-padding:var(--spacing-sm);--dialog-bd-c:var(--color-gray-4);--overlay-bg:rgba(0,0,0,.4);--overlay-filter:blur(.1rem);background:none;border:none;box-shadow:var(--dialog-shadow);display:grid;left:var(--dialog-x-offset);max-height:100%;max-width:100%;min-height:0;opacity:0;overflow:hidden;padding:0;top:var(--dialog-y-offset);transition:opacity .3s ease,overlay allow-discrete .3s ease,display allow-discrete .3s ease;width:var(--dialog-size);z-index:2}.root::backdrop{backdrop-filter:var(--overlay-filter);background:var(--overlay-bg,rgba(0,0,0,.6));opacity:0;transition:opacity .3s ease,overlay allow-discrete .3s ease,display allow-discrete .3s ease}.root[open]{opacity:1}@starting-style{.root[open]{opacity:0}}.root[open]::backdrop{opacity:1}@starting-style{.root[open]::backdrop{opacity:0}}.root:not([open]){opacity:0;pointer-events:none}.root:not([open])::backdrop{opacity:0}.root[data-without-overlay]::backdrop{display:none}.content{background-color:var(--color-body);border-radius:var(--dialog-radius);color:var(--color-text);height:100%;min-height:0;width:100%}.footer,.header,.section{padding:var(--dialog-padding)}.header{align-items:center;border-bottom:1px solid var(--dialog-bd-c);display:flex;justify-content:space-between}.footer,.section[data-bordered=true]:not(:first-of-type){border-top:1px solid var(--dialog-bd-c)}.title{font-weight:400}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { DialogFooterProps } from '../dialog/index.js';
|
|
2
|
+
export interface DrawerFooterProps extends DialogFooterProps {
|
|
3
|
+
}
|
|
4
|
+
declare var __VLS_8: {};
|
|
5
|
+
type __VLS_Slots = {} & {
|
|
6
|
+
default?: (props: typeof __VLS_8) => any;
|
|
7
|
+
};
|
|
8
|
+
declare const __VLS_base: import("vue").DefineComponent<DrawerFooterProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<DrawerFooterProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
9
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
10
|
+
declare const _default: typeof __VLS_export;
|
|
11
|
+
export default _default;
|
|
12
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
13
|
+
new (): {
|
|
14
|
+
$slots: S;
|
|
15
|
+
};
|
|
16
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import DialogFooter from "../dialog/ui/dialog-footer.vue";
|
|
3
|
+
const props = defineProps({
|
|
4
|
+
is: { type: null, required: false },
|
|
5
|
+
mod: { type: [Object, Array, null], required: false }
|
|
6
|
+
});
|
|
7
|
+
</script>
|
|
8
|
+
|
|
9
|
+
<template>
|
|
10
|
+
<DialogFooter v-bind='props'>
|
|
11
|
+
<slot />
|
|
12
|
+
</DialogFooter>
|
|
13
|
+
</template>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { DialogFooterProps } from '../dialog/index.js';
|
|
2
|
+
export interface DrawerFooterProps extends DialogFooterProps {
|
|
3
|
+
}
|
|
4
|
+
declare var __VLS_8: {};
|
|
5
|
+
type __VLS_Slots = {} & {
|
|
6
|
+
default?: (props: typeof __VLS_8) => any;
|
|
7
|
+
};
|
|
8
|
+
declare const __VLS_base: import("vue").DefineComponent<DrawerFooterProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<DrawerFooterProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
9
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
10
|
+
declare const _default: typeof __VLS_export;
|
|
11
|
+
export default _default;
|
|
12
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
13
|
+
new (): {
|
|
14
|
+
$slots: S;
|
|
15
|
+
};
|
|
16
|
+
};
|
|
@@ -14,6 +14,7 @@ const {
|
|
|
14
14
|
closeOnClickOutside: { type: Boolean, required: false },
|
|
15
15
|
withinPortal: { type: Boolean, required: false },
|
|
16
16
|
withoutOverlay: { type: Boolean, required: false },
|
|
17
|
+
classes: { type: Object, required: false },
|
|
17
18
|
portalTarget: { type: [String, Object, null], required: false },
|
|
18
19
|
is: { type: null, required: false },
|
|
19
20
|
mod: { type: [Object, Array, null], required: false },
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { DialogSectionProps } from '../dialog/index.js';
|
|
2
|
+
export interface DrawerSectionProps extends DialogSectionProps {
|
|
3
|
+
}
|
|
4
|
+
declare var __VLS_8: {};
|
|
5
|
+
type __VLS_Slots = {} & {
|
|
6
|
+
default?: (props: typeof __VLS_8) => any;
|
|
7
|
+
};
|
|
8
|
+
declare const __VLS_base: import("vue").DefineComponent<DrawerSectionProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<DrawerSectionProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
9
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
10
|
+
declare const _default: typeof __VLS_export;
|
|
11
|
+
export default _default;
|
|
12
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
13
|
+
new (): {
|
|
14
|
+
$slots: S;
|
|
15
|
+
};
|
|
16
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import DialogSection from "../dialog/ui/dialog-section.vue";
|
|
3
|
+
const props = defineProps({
|
|
4
|
+
bordered: { type: Boolean, required: false },
|
|
5
|
+
is: { type: null, required: false },
|
|
6
|
+
mod: { type: [Object, Array, null], required: false }
|
|
7
|
+
});
|
|
8
|
+
</script>
|
|
9
|
+
|
|
10
|
+
<template>
|
|
11
|
+
<DialogSection v-bind='props'>
|
|
12
|
+
<slot />
|
|
13
|
+
</DialogSection>
|
|
14
|
+
</template>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { DialogSectionProps } from '../dialog/index.js';
|
|
2
|
+
export interface DrawerSectionProps extends DialogSectionProps {
|
|
3
|
+
}
|
|
4
|
+
declare var __VLS_8: {};
|
|
5
|
+
type __VLS_Slots = {} & {
|
|
6
|
+
default?: (props: typeof __VLS_8) => any;
|
|
7
|
+
};
|
|
8
|
+
declare const __VLS_base: import("vue").DefineComponent<DrawerSectionProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<DrawerSectionProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
9
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
10
|
+
declare const _default: typeof __VLS_export;
|
|
11
|
+
export default _default;
|
|
12
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
13
|
+
new (): {
|
|
14
|
+
$slots: S;
|
|
15
|
+
};
|
|
16
|
+
};
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import type { TextInputProps } from './index.js';
|
|
2
|
-
declare var __VLS_9: {},
|
|
2
|
+
declare var __VLS_9: {}, __VLS_25: {}, __VLS_28: {}, __VLS_31: {}, __VLS_34: {};
|
|
3
3
|
type __VLS_Slots = {} & {
|
|
4
4
|
rightSection?: (props: typeof __VLS_9) => any;
|
|
5
5
|
} & {
|
|
6
|
-
leftSection?: (props: typeof
|
|
6
|
+
leftSection?: (props: typeof __VLS_25) => any;
|
|
7
7
|
} & {
|
|
8
|
-
label?: (props: typeof
|
|
8
|
+
label?: (props: typeof __VLS_28) => any;
|
|
9
9
|
} & {
|
|
10
|
-
error?: (props: typeof
|
|
10
|
+
error?: (props: typeof __VLS_31) => any;
|
|
11
11
|
} & {
|
|
12
|
-
description?: (props: typeof
|
|
12
|
+
description?: (props: typeof __VLS_34) => any;
|
|
13
13
|
};
|
|
14
14
|
declare const __VLS_base: import("vue").DefineComponent<TextInputProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<TextInputProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
15
15
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
@@ -33,8 +33,7 @@ const password = ref(true);
|
|
|
33
33
|
<template #rightSection>
|
|
34
34
|
<slot name='rightSection'>
|
|
35
35
|
<ActionIcon variant='subtle' @click='password = !password'>
|
|
36
|
-
<Icon
|
|
37
|
-
<Icon v-else name='gravity-ui:eye-slash' />
|
|
36
|
+
<Icon :name='password ? "gravity-ui:eye" : "gravity-ui:eye-slash"' />
|
|
38
37
|
</ActionIcon>
|
|
39
38
|
</slot>
|
|
40
39
|
</template>
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import type { TextInputProps } from './index.js';
|
|
2
|
-
declare var __VLS_9: {},
|
|
2
|
+
declare var __VLS_9: {}, __VLS_25: {}, __VLS_28: {}, __VLS_31: {}, __VLS_34: {};
|
|
3
3
|
type __VLS_Slots = {} & {
|
|
4
4
|
rightSection?: (props: typeof __VLS_9) => any;
|
|
5
5
|
} & {
|
|
6
|
-
leftSection?: (props: typeof
|
|
6
|
+
leftSection?: (props: typeof __VLS_25) => any;
|
|
7
7
|
} & {
|
|
8
|
-
label?: (props: typeof
|
|
8
|
+
label?: (props: typeof __VLS_28) => any;
|
|
9
9
|
} & {
|
|
10
|
-
error?: (props: typeof
|
|
10
|
+
error?: (props: typeof __VLS_31) => any;
|
|
11
11
|
} & {
|
|
12
|
-
description?: (props: typeof
|
|
12
|
+
description?: (props: typeof __VLS_34) => any;
|
|
13
13
|
};
|
|
14
14
|
declare const __VLS_base: import("vue").DefineComponent<TextInputProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<TextInputProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
15
15
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
@@ -2,7 +2,7 @@ import type { Classes } from '@nui/types';
|
|
|
2
2
|
import type { InputBaseProps } from '../types.js';
|
|
3
3
|
import type { BaseInputProps } from './input-base.vue.js';
|
|
4
4
|
import type { InputWrapperProps } from './input-wrapper.vue.js';
|
|
5
|
-
export interface ButtonInputProps extends InputWrapperProps, BaseInputProps, InputBaseProps {
|
|
5
|
+
export interface ButtonInputProps extends InputWrapperProps, Omit<BaseInputProps, 'error'>, InputBaseProps {
|
|
6
6
|
/**
|
|
7
7
|
* If set, the input can have multiple lines, for example when `component="textarea"`
|
|
8
8
|
* @default `false`
|