@vonage/vivid 3.39.0 → 3.41.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/accordion/index.js +2 -2
- package/accordion-item/index.js +2 -2
- package/alert/index.js +7 -5
- package/audio-player/index.js +33 -0
- package/avatar/index.js +2 -2
- package/badge/index.js +2 -2
- package/banner/index.js +9 -5
- package/breadcrumb/index.js +1 -1
- package/breadcrumb-item/index.js +3 -3
- package/button/index.js +5 -4
- package/calendar/index.js +1 -1
- package/calendar-event/index.js +1 -1
- package/card/index.js +4 -3
- package/checkbox/index.js +3 -3
- package/combobox/index.js +9 -7
- package/custom-elements.json +809 -5
- package/data-grid/index.js +3 -2
- package/date-picker/index.js +11 -9
- package/date-range-picker/index.js +11 -9
- package/dialog/index.js +10 -6
- package/divider/index.js +1 -1
- package/elevation/index.js +1 -1
- package/empty-state/index.js +2 -2
- package/fab/index.js +3 -3
- package/file-picker/index.js +6 -5
- package/focus/index.js +1 -1
- package/header/index.js +2 -2
- package/icon/index.js +1 -1
- package/index.js +60 -55
- package/layout/index.js +1 -1
- package/lib/alert/alert.d.ts +3 -1
- package/lib/alert/locale.d.ts +3 -0
- package/lib/audio-player/audio-player.d.ts +17 -0
- package/lib/audio-player/audio-player.template.d.ts +4 -0
- package/lib/audio-player/definition.d.ts +4 -0
- package/lib/audio-player/locale.d.ts +5 -0
- package/lib/banner/banner.d.ts +3 -1
- package/lib/banner/locale.d.ts +3 -0
- package/lib/card/card.d.ts +3 -0
- package/lib/card/card.template.d.ts +1 -1
- package/lib/card/definition.d.ts +1 -0
- package/lib/checkbox/checkbox.d.ts +2 -0
- package/lib/components.d.ts +2 -0
- package/lib/dialog/dialog.d.ts +4 -0
- package/lib/dialog/locale.d.ts +3 -0
- package/lib/enums.d.ts +2 -1
- package/lib/menu/menu.d.ts +1 -0
- package/lib/number-field/locale.d.ts +4 -0
- package/lib/number-field/number-field.d.ts +4 -2
- package/lib/progress/progress.d.ts +1 -0
- package/lib/progress-ring/progress-ring.d.ts +1 -0
- package/lib/radio/radio.d.ts +1 -0
- package/lib/selectable-box/definition.d.ts +3 -0
- package/lib/selectable-box/selectable-box.d.ts +12 -0
- package/lib/selectable-box/selectable-box.template.d.ts +4 -0
- package/lib/slider/definition.d.ts +1 -0
- package/lib/slider/slider.d.ts +5 -0
- package/lib/split-button/locale.d.ts +3 -0
- package/lib/split-button/split-button.d.ts +3 -1
- package/lib/text-area/text-area.d.ts +3 -0
- package/lib/text-field/text-field.d.ts +5 -2
- package/listbox/index.js +5 -4
- package/locales/en-GB.js +21 -0
- package/locales/en-US.js +21 -0
- package/locales/ja-JP.js +21 -0
- package/locales/zh-CN.js +21 -0
- package/menu/index.js +9 -8
- package/menu-item/index.js +3 -3
- package/nav/index.js +1 -1
- package/nav-disclosure/index.js +3 -3
- package/nav-item/index.js +3 -3
- package/note/index.js +2 -2
- package/number-field/index.js +8 -6
- package/option/index.js +3 -3
- package/package.json +1 -1
- package/pagination/index.js +6 -5
- package/popup/index.js +7 -6
- package/progress/index.js +1 -1
- package/progress-ring/index.js +1 -1
- package/radio/index.js +2 -2
- package/radio-group/index.js +2 -2
- package/select/index.js +10 -8
- package/selectable-box/index.js +23 -0
- package/shared/Reflector.js +65 -0
- package/shared/date-picker/calendar/segment.d.ts +21 -0
- package/shared/date-picker/date-picker-base.d.ts +1 -0
- package/shared/definition.js +3 -3
- package/shared/definition10.js +89 -227
- package/shared/definition11.js +151 -29
- package/shared/definition12.js +37 -766
- package/shared/definition13.js +747 -106
- package/shared/definition14.js +122 -192
- package/shared/definition15.js +156 -664
- package/shared/definition16.js +576 -1123
- package/shared/definition17.js +1278 -143
- package/shared/definition18.js +64 -298
- package/shared/definition19.js +358 -211
- package/shared/definition2.js +2 -2
- package/shared/definition20.js +259 -67
- package/shared/definition21.js +66 -58
- package/shared/definition22.js +43 -84
- package/shared/definition23.js +76 -2352
- package/shared/definition24.js +2362 -45
- package/shared/definition25.js +63 -27
- package/shared/definition26.js +24 -51
- package/shared/definition27.js +36 -813
- package/shared/definition28.js +837 -49
- package/shared/definition29.js +52 -89
- package/shared/definition3.js +1 -1
- package/shared/definition30.js +88 -24
- package/shared/definition31.js +25 -12
- package/shared/definition32.js +12 -52
- package/shared/definition33.js +28 -487
- package/shared/definition34.js +442 -197
- package/shared/definition35.js +260 -185
- package/shared/definition36.js +188 -69
- package/shared/definition37.js +72 -52
- package/shared/definition38.js +65 -421
- package/shared/definition39.js +435 -35
- package/shared/definition4.js +44 -16
- package/shared/definition40.js +32 -680
- package/shared/definition41.js +661 -77
- package/shared/definition42.js +103 -555
- package/shared/definition43.js +76 -103
- package/shared/definition44.js +522 -87
- package/shared/definition45.js +133 -22
- package/shared/definition46.js +131 -58
- package/shared/definition47.js +16 -501
- package/shared/definition48.js +69 -23
- package/shared/definition49.js +477 -108
- package/shared/definition5.js +160 -44
- package/shared/definition50.js +25 -271
- package/shared/definition51.js +103 -122
- package/shared/definition52.js +277 -122
- package/shared/definition53.js +274 -103
- package/shared/definition54.js +126 -71
- package/shared/definition55.js +128 -294
- package/shared/definition56.js +91 -13
- package/shared/definition57.js +298 -39
- package/shared/definition58.js +11 -175
- package/shared/definition59.js +47 -0
- package/shared/definition6.js +43 -33
- package/shared/definition60.js +181 -0
- package/shared/definition7.js +39 -105
- package/shared/definition8.js +122 -38
- package/shared/definition9.js +56 -89
- package/shared/enums.js +72 -0
- package/shared/icon.js +2 -2
- package/shared/index2.js +28 -1
- package/shared/key-codes.js +1 -1
- package/shared/key-codes2.js +9 -0
- package/shared/listbox.js +3 -8
- package/shared/localization/Locale.d.ts +12 -0
- package/shared/patterns/form-elements/form-elements.d.ts +6 -6
- package/shared/presentationDate.js +196 -143
- package/shared/radio.js +7 -0
- package/shared/text-field.js +1 -1
- package/shared/utils/Reflector.d.ts +8 -0
- package/shared/utils/randomId.d.ts +1 -0
- package/side-drawer/index.js +1 -1
- package/slider/index.js +3 -3
- package/split-button/index.js +6 -3
- package/style.css +889 -722
- package/styles/core/all.css +1 -1
- package/styles/core/theme.css +1 -1
- package/styles/core/typography.css +1 -1
- package/styles/tokens/theme-dark.css +4 -4
- package/styles/tokens/theme-light.css +4 -4
- package/styles/tokens/vivid-2-compat.css +1 -1
- package/switch/index.js +3 -3
- package/tab/index.js +3 -3
- package/tab-panel/index.js +1 -1
- package/tabs/index.js +5 -5
- package/tag/index.js +3 -3
- package/tag-group/index.js +1 -1
- package/text-area/index.js +4 -3
- package/text-field/index.js +4 -3
- package/toggletip/index.js +8 -7
- package/tooltip/index.js +8 -7
- package/tree-item/index.js +3 -3
- package/tree-view/index.js +1 -1
- package/vivid.api.json +392 -0
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import { B as Button } from './
|
|
2
|
-
import { P as Popup } from './
|
|
3
|
-
import { T as TextField } from './
|
|
1
|
+
import { B as Button } from './definition11.js';
|
|
2
|
+
import { P as Popup } from './definition60.js';
|
|
3
|
+
import { T as TextField } from './definition53.js';
|
|
4
4
|
import './affix.js';
|
|
5
5
|
import { f as focusTemplateFactory } from './focus2.js';
|
|
6
6
|
import { a as FormElementHelperText } from './index2.js';
|
|
7
|
-
import { D as Divider } from './
|
|
7
|
+
import { D as Divider } from './definition21.js';
|
|
8
8
|
import { h as html, F as FoundationElement, a as attr, o as observable, v as volatile, D as DOM } from './index.js';
|
|
9
9
|
import { r as ref } from './ref.js';
|
|
10
|
-
import { w as when } from './when.js';
|
|
11
10
|
import { r as repeat } from './repeat.js';
|
|
11
|
+
import { w as when } from './when.js';
|
|
12
12
|
import { c as classNames } from './class-names.js';
|
|
13
13
|
import { L as Localized } from './localized.js';
|
|
14
14
|
import { F as FormAssociated } from './form-associated.js';
|
|
15
15
|
import { a as applyMixins } from './apply-mixins.js';
|
|
16
16
|
|
|
17
|
-
const styles = "/**\n * Do not edit directly\n * Generated on
|
|
17
|
+
const styles = "/**\n * Do not edit directly\n * Generated on Wed, 22 Nov 2023 16:09:43 GMT\n */\n:host {\n display: inline-block;\n}\n\n.base {\n display: inline-block;\n inline-size: 100%;\n}\n\n.control {\n inline-size: 100%;\n}\n\n.dialog {\n display: inline-flex;\n flex-direction: column;\n padding: 12px;\n gap: 12px;\n}\n.dialog .footer {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n padding: 8px;\n gap: 8px;\n}\n\n.segments {\n display: flex;\n gap: 24px;\n}\n\n.segment {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n.segment .header {\n display: flex;\n align-items: center;\n padding-block: 8px;\n}\n.segment .title {\n display: flex;\n flex-grow: 1;\n justify-content: center;\n}\n.segment .title-action {\n block-size: 24px;\n border-radius: 6px;\n font: var(--vvd-typography-base-extended);\n padding-inline: 6px;\n}\n\n.calendar {\n display: flex;\n flex-direction: column;\n margin-top: 8px;\n gap: 4px;\n}\n.calendar .calendar-separator {\n margin-inline: 10px;\n}\n.calendar .calendar-weekdays {\n display: flex;\n justify-content: center;\n}\n.calendar .calendar-weekday {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n block-size: 16px;\n font: var(--vvd-typography-base-condensed);\n inline-size: 40px;\n}\n.calendar .calendar-week {\n display: flex;\n justify-content: center;\n}\n.calendar .calendar-day {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n aspect-ratio: 1/1;\n block-size: 28px;\n border-radius: 50%;\n font: var(--vvd-typography-base);\n margin-inline: 6px;\n --focus-inset: -2px;\n}\n.calendar .calendar-day.start, .calendar .calendar-day.end {\n border: 2px solid var(--vvd-color-cta-50);\n background-color: var(--vvd-color-cta-200);\n}\n.calendar .calendar-day::before, .calendar .calendar-day::after {\n position: absolute;\n z-index: -1;\n display: block;\n width: 20px;\n height: 28px;\n}\n.calendar .calendar-day::before {\n right: 50%;\n}\n.calendar .calendar-day::after {\n left: 50%;\n}\n.calendar .calendar-day.range::before, .calendar .calendar-day.range::after {\n background-color: var(--vvd-color-cta-50);\n}\n.calendar .calendar-day.range:not(.start)::before, .calendar .calendar-day.range:not(.end)::after {\n content: \"\";\n}\n.calendar .calendar-day.outside-month, .calendar .calendar-day:disabled {\n color: var(--vvd-color-neutral-400);\n}\n\n.months-separator {\n margin-inline: -12px;\n}\n\n.month-grid {\n display: flex;\n flex-direction: column;\n gap: 34px;\n}\n.month-grid .months-row {\n display: flex;\n justify-content: center;\n gap: 29px;\n}\n.month-grid .month {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n aspect-ratio: 1/1;\n block-size: 48px;\n border-radius: 50%;\n font: var(--vvd-typography-base-extended);\n text-transform: uppercase;\n}\n.month-grid .month:disabled {\n color: var(--vvd-color-neutral-400);\n}\n\n.button {\n position: relative;\n padding: 0;\n border: none;\n background-color: var(--_appearance-color-fill);\n color: var(--_appearance-color-text);\n cursor: pointer;\n}\n.button {\n /* @cssprop [--vvd-date-picker-accent-primary=var(--vvd-color-canvas-text)] */\n --_connotation-color-primary: var(--vvd-date-picker-accent-primary, var(--vvd-color-canvas-text));\n /* @cssprop [--vvd-date-picker-accent-faint=var(--vvd-color-neutral-50)] */\n --_connotation-color-faint: var(--vvd-date-picker-accent-faint, var(--vvd-color-neutral-50));\n /* @cssprop [--vvd-date-picker-accent-soft=var(--vvd-color-neutral-100)] */\n --_connotation-color-soft: var(--vvd-date-picker-accent-soft, var(--vvd-color-neutral-100));\n /* @cssprop [--vvd-date-picker-accent-dim=var(--vvd-color-neutral-200)] */\n --_connotation-color-dim: var(--vvd-date-picker-accent-dim, var(--vvd-color-neutral-200));\n /* @cssprop [--vvd-date-picker-accent-pale=var(--vvd-color-neutral-300)] */\n --_connotation-color-pale: var(--vvd-date-picker-accent-pale, var(--vvd-color-neutral-300));\n}\n.button {\n --_appearance-color-text: var(--_connotation-color-primary);\n --_appearance-color-fill: transparent;\n --_appearance-color-outline: transparent;\n}\n.button:where(:hover, .hover):where(:not(:disabled, .disabled, .readonly)) {\n --_appearance-color-text: var(--_connotation-color-primary);\n --_appearance-color-fill: var(--_connotation-color-faint);\n --_appearance-color-outline: transparent;\n}\n.button:where(:active, .active):where(:not(:disabled, .disabled)) {\n --_appearance-color-text: var(--_connotation-color-primary);\n --_appearance-color-fill: var(--_connotation-color-soft);\n --_appearance-color-outline: transparent;\n}\n.button:where(.selected, [aria-current]):where(:not(:disabled, .disabled, :hover, .hover)) {\n --_appearance-color-text: var(--_connotation-color-primary);\n --_appearance-color-fill: var(--_connotation-color-dim);\n --_appearance-color-outline: transparent;\n}\n.button:where(.selected, [aria-current]):where(:hover, .hover) {\n --_appearance-color-text: var(--_connotation-color-primary);\n --_appearance-color-fill: var(--_connotation-color-pale);\n --_appearance-color-outline: transparent;\n}\n.button:where(.selected, [aria-current]):where(:disabled, .disabled) {\n --_appearance-color-text: var(--_connotation-color-pale);\n --_appearance-color-fill: var(--_connotation-color-dim);\n --_appearance-color-outline: transparent;\n}\n.button .focus-indicator {\n color: var(--vvd-color-canvas-text);\n --focus-stroke-gap-color: transparent;\n}\n.button:focus-visible {\n outline: none;\n}\n.button:not(:focus-visible) .focus-indicator {\n display: none;\n}\n.button.current {\n border: 1px solid var(--vvd-color-neutral-200);\n}\n.button:disabled {\n cursor: not-allowed;\n}";
|
|
18
18
|
|
|
19
19
|
function _typeof(obj) {
|
|
20
20
|
"@babel/helpers - typeof";
|
|
@@ -5250,94 +5250,84 @@ function renderDialogHeader(context) {
|
|
|
5250
5250
|
const focusTemplate = focusTemplateFactory(context);
|
|
5251
5251
|
return html`<div class="header">
|
|
5252
5252
|
${when(
|
|
5253
|
-
(x) => x.
|
|
5254
|
-
html`
|
|
5255
|
-
<${buttonTag}
|
|
5256
|
-
class="vwc-button"
|
|
5257
|
-
size="super-condensed"
|
|
5258
|
-
icon="chevron-left-line"
|
|
5259
|
-
aria-label="${(x) => x.locale.datePicker.prevYearLabel}"
|
|
5260
|
-
?disabled="${(x) => x._isPrevYearDisabled}"
|
|
5261
|
-
@click="${(x) => x._onPrevYearClick()}"
|
|
5262
|
-
></${buttonTag}>
|
|
5263
|
-
`
|
|
5264
|
-
)}
|
|
5265
|
-
${when(
|
|
5266
|
-
(x) => !x._inMonthPicker,
|
|
5253
|
+
(x) => x.prevYearButton,
|
|
5267
5254
|
html`
|
|
5268
5255
|
<${buttonTag}
|
|
5256
|
+
tabindex="1"
|
|
5269
5257
|
class="vwc-button"
|
|
5270
5258
|
size="super-condensed"
|
|
5271
|
-
icon="double-chevron-left-line"
|
|
5272
|
-
aria-label="${(
|
|
5273
|
-
?disabled="${(
|
|
5274
|
-
@click="${(
|
|
5259
|
+
icon="${(_, c) => c.parent._inMonthPicker ? "chevron-left-line" : "double-chevron-left-line"}"
|
|
5260
|
+
aria-label="${(_, c) => c.parent.locale.datePicker.prevYearLabel}"
|
|
5261
|
+
?disabled="${(_, c) => c.parent._isPrevYearDisabled}"
|
|
5262
|
+
@click="${(_, c) => c.parent._onPrevYearClick()}"
|
|
5275
5263
|
></${buttonTag}>
|
|
5264
|
+
`
|
|
5265
|
+
)}
|
|
5266
|
+
${when(
|
|
5267
|
+
(x) => x.prevMonthButton,
|
|
5268
|
+
html`
|
|
5276
5269
|
<${buttonTag}
|
|
5270
|
+
tabindex="1"
|
|
5277
5271
|
class="vwc-button"
|
|
5278
5272
|
size="super-condensed"
|
|
5279
5273
|
icon="chevron-left-line"
|
|
5280
|
-
aria-label="${(
|
|
5281
|
-
?disabled="${(
|
|
5282
|
-
@click="${(
|
|
5274
|
+
aria-label="${(_, c) => c.parent.locale.datePicker.prevMonthLabel}"
|
|
5275
|
+
?disabled="${(_, c) => c.parent._isPrevMonthDisabled}"
|
|
5276
|
+
@click="${(_, c) => c.parent._onPrevMonthClick()}"
|
|
5283
5277
|
></${buttonTag}>
|
|
5284
5278
|
`
|
|
5285
5279
|
)}
|
|
5286
|
-
|
|
5287
5280
|
<div class="title">
|
|
5281
|
+
${when((x) => x.titleClickable, html`
|
|
5288
5282
|
<button
|
|
5289
|
-
|
|
5283
|
+
tabindex="1"
|
|
5284
|
+
id="${(x) => `grid-label-${x.id}`}"
|
|
5290
5285
|
class="title-action button"
|
|
5291
5286
|
aria-live="polite"
|
|
5292
|
-
@click="${(
|
|
5287
|
+
@click="${(_, c) => c.parent._onTitleActionClick()}"
|
|
5293
5288
|
>
|
|
5294
5289
|
${() => focusTemplate}
|
|
5295
|
-
${
|
|
5296
|
-
(x) => x._inMonthPicker,
|
|
5297
|
-
html` ${(x) => x._monthPickerYear} `
|
|
5298
|
-
)}
|
|
5299
|
-
${when(
|
|
5300
|
-
(x) => !x._inMonthPicker,
|
|
5301
|
-
html`
|
|
5302
|
-
${(x) => `${x.locale.datePicker.months.name[x._selectedMonth.month]} ${x._selectedMonth.year}`}
|
|
5303
|
-
`
|
|
5304
|
-
)}
|
|
5290
|
+
${(x) => x.title}
|
|
5305
5291
|
</button>
|
|
5292
|
+
`)}
|
|
5293
|
+
${when((x) => !x.titleClickable, html`
|
|
5294
|
+
<div
|
|
5295
|
+
id="${(x) => `grid-label-${x.id}`}"
|
|
5296
|
+
class="title-action"
|
|
5297
|
+
aria-live="polite"
|
|
5298
|
+
>
|
|
5299
|
+
${(x) => x.title}
|
|
5300
|
+
</div>
|
|
5301
|
+
`)}
|
|
5306
5302
|
</div>
|
|
5307
5303
|
|
|
5308
5304
|
${when(
|
|
5309
|
-
(x) => x.
|
|
5305
|
+
(x) => x.nextMonthButton,
|
|
5310
5306
|
html`
|
|
5311
|
-
|
|
5312
|
-
|
|
5313
|
-
|
|
5314
|
-
|
|
5315
|
-
|
|
5316
|
-
|
|
5317
|
-
|
|
5318
|
-
|
|
5319
|
-
|
|
5307
|
+
<${buttonTag}
|
|
5308
|
+
tabindex="1"
|
|
5309
|
+
class="vwc-button"
|
|
5310
|
+
size="super-condensed"
|
|
5311
|
+
icon="chevron-right-line"
|
|
5312
|
+
aria-label="${(_, c) => c.parent.locale.datePicker.nextMonthLabel}"
|
|
5313
|
+
?disabled="${(_, c) => c.parent._isNextMonthDisabled}"
|
|
5314
|
+
@click="${(_, c) => c.parent._onNextMonthClick()}"
|
|
5315
|
+
></${buttonTag}>
|
|
5316
|
+
`
|
|
5320
5317
|
)}
|
|
5321
5318
|
${when(
|
|
5322
|
-
(x) =>
|
|
5319
|
+
(x) => x.nextYearButton,
|
|
5323
5320
|
html`
|
|
5324
|
-
|
|
5325
|
-
|
|
5326
|
-
|
|
5327
|
-
|
|
5328
|
-
|
|
5329
|
-
|
|
5330
|
-
|
|
5331
|
-
|
|
5332
|
-
|
|
5333
|
-
|
|
5334
|
-
size="super-condensed"
|
|
5335
|
-
icon="double-chevron-right-line"
|
|
5336
|
-
aria-label="${(x) => x.locale.datePicker.nextYearLabel}"
|
|
5337
|
-
?disabled="${(x) => x._isNextYearDisabled}"
|
|
5338
|
-
@click="${(x) => x._onNextYearClick()}"
|
|
5339
|
-
></${buttonTag}>
|
|
5340
|
-
`
|
|
5321
|
+
<${buttonTag}
|
|
5322
|
+
tabindex="1"
|
|
5323
|
+
class="vwc-button"
|
|
5324
|
+
size="super-condensed"
|
|
5325
|
+
icon="${(_, c) => c.parent._inMonthPicker ? "chevron-right-line" : "double-chevron-right-line"}"
|
|
5326
|
+
aria-label="${(_, c) => c.parent.locale.datePicker.nextYearLabel}"
|
|
5327
|
+
?disabled="${(_, c) => c.parent._isNextYearDisabled}"
|
|
5328
|
+
@click="${(_, c) => c.parent._onNextYearClick()}"
|
|
5329
|
+
></${buttonTag}>
|
|
5330
|
+
`
|
|
5341
5331
|
)}
|
|
5342
5332
|
</div>`;
|
|
5343
5333
|
}
|
|
@@ -5347,11 +5337,11 @@ function renderCalendarGrid(context) {
|
|
|
5347
5337
|
return html`<div
|
|
5348
5338
|
class="calendar"
|
|
5349
5339
|
role="grid"
|
|
5350
|
-
aria-labelledby="grid-label"
|
|
5340
|
+
aria-labelledby="${(x) => `grid-label-${x.id}`}"
|
|
5351
5341
|
>
|
|
5352
5342
|
<div class="calendar-weekdays" role="row">
|
|
5353
5343
|
${repeat(
|
|
5354
|
-
(x) => x.
|
|
5344
|
+
(x) => x.calendar.weekdays,
|
|
5355
5345
|
html`
|
|
5356
5346
|
<div
|
|
5357
5347
|
class="calendar-weekday"
|
|
@@ -5365,53 +5355,68 @@ function renderCalendarGrid(context) {
|
|
|
5365
5355
|
</div>
|
|
5366
5356
|
<${dividerTag} class="calendar-separator" role="presentation"></${dividerTag}>
|
|
5367
5357
|
${repeat(
|
|
5368
|
-
(x) => x.
|
|
5358
|
+
(x) => x.calendar.grid,
|
|
5369
5359
|
html`
|
|
5370
5360
|
<div class="calendar-week" role="row">
|
|
5371
5361
|
${repeat(
|
|
5372
5362
|
(x) => x,
|
|
5373
|
-
html
|
|
5363
|
+
html`
|
|
5364
|
+
${when(
|
|
5365
|
+
(x, c) => c.parentContext.parentContext.parent._hideDatesOutsideMonth && x.isOutsideMonth,
|
|
5366
|
+
html`<div class="calendar-day"></div>`
|
|
5367
|
+
)}
|
|
5368
|
+
${when(
|
|
5369
|
+
(x, c) => !c.parentContext.parentContext.parent._hideDatesOutsideMonth || !x.isOutsideMonth,
|
|
5370
|
+
html`
|
|
5371
|
+
<button
|
|
5374
5372
|
class="${(x, c) => classNames(
|
|
5375
|
-
|
|
5376
|
-
|
|
5377
|
-
|
|
5378
|
-
|
|
5379
|
-
|
|
5380
|
-
|
|
5381
|
-
|
|
5382
|
-
|
|
5383
|
-
|
|
5373
|
+
"calendar-day",
|
|
5374
|
+
"button",
|
|
5375
|
+
["current", x.date === c.parentContext.parentContext.parent._currentDate],
|
|
5376
|
+
["selected", c.parentContext.parentContext.parent._isDateSelected(x.date)],
|
|
5377
|
+
["range", c.parentContext.parentContext.parent._isDateInSelectedRange(x.date)],
|
|
5378
|
+
["start", c.parentContext.parentContext.parent._isDateRangeStart(x.date)],
|
|
5379
|
+
["end", c.parentContext.parentContext.parent._isDateRangeEnd(x.date)],
|
|
5380
|
+
["outside-month", x.isOutsideMonth]
|
|
5381
|
+
)}"
|
|
5384
5382
|
role="gridcell"
|
|
5385
|
-
?disabled="${(x, c) => !c.parentContext.parent._isDateInValidRange(x.date)}"
|
|
5386
|
-
tabindex="${(x, c) => x.date === c.parentContext.parent._tabbableDate ?
|
|
5387
|
-
aria-selected="${(x, c) => c.parentContext.parent._isDateAriaSelected(x.date)}"
|
|
5383
|
+
?disabled="${(x, c) => !c.parentContext.parentContext.parent._isDateInValidRange(x.date)}"
|
|
5384
|
+
tabindex="${(x, c) => x.date === c.parentContext.parentContext.parent._tabbableDate ? 2 : -1}"
|
|
5385
|
+
aria-selected="${(x, c) => c.parentContext.parentContext.parent._isDateAriaSelected(x.date)}"
|
|
5388
5386
|
data-date="${(x) => x.date}"
|
|
5389
|
-
@click="${(x, c) => c.parentContext.parent._onDateClick(x.date)}"
|
|
5390
|
-
@focus="${(x, c) => c.parentContext.parent._onDateFocus(x.date)}"
|
|
5391
|
-
@mouseenter="${(x, c) => c.parentContext.parent._onDateMouseEnter(x.date)}"
|
|
5392
|
-
@mouseleave="${(x, c) => c.parentContext.parent._onDateMouseLeave(x.date)}"
|
|
5393
|
-
@keydown="${(x, c) => c.parentContext.parent._onDateKeydown(
|
|
5394
|
-
|
|
5395
|
-
|
|
5396
|
-
|
|
5387
|
+
@click="${(x, c) => c.parentContext.parentContext.parent._onDateClick(x.date)}"
|
|
5388
|
+
@focus="${(x, c) => c.parentContext.parentContext.parent._onDateFocus(x.date)}"
|
|
5389
|
+
@mouseenter="${(x, c) => c.parentContext.parentContext.parent._onDateMouseEnter(x.date)}"
|
|
5390
|
+
@mouseleave="${(x, c) => c.parentContext.parentContext.parent._onDateMouseLeave(x.date)}"
|
|
5391
|
+
@keydown="${(x, c) => c.parentContext.parentContext.parent._onDateKeydown(
|
|
5392
|
+
x.date,
|
|
5393
|
+
c.event
|
|
5394
|
+
)}"
|
|
5397
5395
|
>
|
|
5398
5396
|
${() => focusTemplate} ${(x) => x.label}
|
|
5399
5397
|
</button>`
|
|
5400
|
-
|
|
5398
|
+
)}
|
|
5401
5399
|
</div>
|
|
5402
5400
|
`
|
|
5403
|
-
|
|
5404
|
-
</div
|
|
5401
|
+
)}
|
|
5402
|
+
</div>`
|
|
5403
|
+
)}`;
|
|
5405
5404
|
}
|
|
5406
5405
|
function renderMonthPickerGrid(context) {
|
|
5406
|
+
const dividerTag = context.tagFor(Divider);
|
|
5407
5407
|
const focusTemplate = focusTemplateFactory(context);
|
|
5408
|
-
return html
|
|
5408
|
+
return html`
|
|
5409
|
+
<${dividerTag}
|
|
5410
|
+
class="months-separator"
|
|
5411
|
+
role="presentation"
|
|
5412
|
+
></${dividerTag}>
|
|
5413
|
+
<div
|
|
5409
5414
|
class="month-grid"
|
|
5410
5415
|
role="grid"
|
|
5411
5416
|
aria-labelledby="grid-label"
|
|
5412
5417
|
>
|
|
5413
5418
|
${repeat(
|
|
5414
|
-
(x) => x.
|
|
5419
|
+
(x) => x.months,
|
|
5415
5420
|
html`
|
|
5416
5421
|
<div class="months-row" role="row">
|
|
5417
5422
|
${repeat(
|
|
@@ -5425,29 +5430,29 @@ function renderMonthPickerGrid(context) {
|
|
|
5425
5430
|
"current",
|
|
5426
5431
|
areMonthsEqual(
|
|
5427
5432
|
x.month,
|
|
5428
|
-
c.parentContext.parent._currentMonth
|
|
5433
|
+
c.parentContext.parentContext.parent._currentMonth
|
|
5429
5434
|
)
|
|
5430
5435
|
],
|
|
5431
5436
|
[
|
|
5432
5437
|
"selected",
|
|
5433
5438
|
areMonthsEqual(
|
|
5434
5439
|
x.month,
|
|
5435
|
-
c.parentContext.parent._selectedMonth
|
|
5440
|
+
c.parentContext.parentContext.parent._selectedMonth
|
|
5436
5441
|
)
|
|
5437
5442
|
]
|
|
5438
5443
|
)}"
|
|
5439
5444
|
role="gridcell"
|
|
5440
|
-
tabindex="${(x, c) => c.parentContext.parent._tabbableMonth && areMonthsEqual(x.month, c.parentContext.parent._tabbableMonth) ?
|
|
5445
|
+
tabindex="${(x, c) => c.parentContext.parentContext.parent._tabbableMonth && areMonthsEqual(x.month, c.parentContext.parentContext.parent._tabbableMonth) ? 2 : -1}"
|
|
5441
5446
|
aria-label="${(x) => x.monthName}"
|
|
5442
5447
|
aria-selected="${(x, c) => areMonthsEqual(
|
|
5443
5448
|
x.month,
|
|
5444
|
-
c.parentContext.parent._selectedMonth
|
|
5449
|
+
c.parentContext.parentContext.parent._selectedMonth
|
|
5445
5450
|
)}"
|
|
5446
5451
|
data-month="${(x) => monthToStr(x.month)}"
|
|
5447
|
-
?disabled="${(x, c) => !c.parentContext.parent._isMonthInValidRange(x.month)}"
|
|
5448
|
-
@click="${(x, c) => c.parentContext.parent._onMonthClick(x.month)}"
|
|
5449
|
-
@focus="${(x, c) => c.parentContext.parent._onMonthFocus(x.month)}"
|
|
5450
|
-
@keydown="${(x, c) => c.parentContext.parent._onMonthKeydown(
|
|
5452
|
+
?disabled="${(x, c) => !c.parentContext.parentContext.parent._isMonthInValidRange(x.month)}"
|
|
5453
|
+
@click="${(x, c) => c.parentContext.parentContext.parent._onMonthClick(x.month)}"
|
|
5454
|
+
@focus="${(x, c) => c.parentContext.parentContext.parent._onMonthFocus(x.month)}"
|
|
5455
|
+
@keydown="${(x, c) => c.parentContext.parentContext.parent._onMonthKeydown(
|
|
5451
5456
|
x.month,
|
|
5452
5457
|
c.event
|
|
5453
5458
|
)}"
|
|
@@ -5465,7 +5470,6 @@ const DatePickerBaseTemplate = (context, _) => {
|
|
|
5465
5470
|
const popupTag = context.tagFor(Popup);
|
|
5466
5471
|
const textFieldTag = context.tagFor(TextField);
|
|
5467
5472
|
const buttonTag = context.tagFor(Button);
|
|
5468
|
-
const dividerTag = context.tagFor(Divider);
|
|
5469
5473
|
return html`<div class="base" @keydown="${(x, { event }) => x._onBaseKeyDown(event)}">
|
|
5470
5474
|
<${textFieldTag} id="text-field"
|
|
5471
5475
|
${ref("_textFieldEl")}
|
|
@@ -5501,29 +5505,33 @@ const DatePickerBaseTemplate = (context, _) => {
|
|
|
5501
5505
|
<div class="dialog" role="dialog" ${ref(
|
|
5502
5506
|
"_dialogEl"
|
|
5503
5507
|
)} aria-modal="true" aria-label="${(x) => x.locale.datePicker.chooseDateLabel}">
|
|
5508
|
+
<div class="segments">
|
|
5509
|
+
${repeat(
|
|
5510
|
+
(x) => x._segments,
|
|
5511
|
+
html`
|
|
5512
|
+
<div class="segment">
|
|
5504
5513
|
${renderDialogHeader(context)}
|
|
5505
5514
|
${when(
|
|
5506
|
-
|
|
5507
|
-
|
|
5508
|
-
|
|
5509
|
-
class="months-separator"
|
|
5510
|
-
role="presentation"
|
|
5511
|
-
></${dividerTag}>
|
|
5512
|
-
${renderMonthPickerGrid(context)}
|
|
5513
|
-
`
|
|
5514
|
-
)}
|
|
5515
|
+
(x) => x.type === "month-picker",
|
|
5516
|
+
html`${renderMonthPickerGrid(context)}`
|
|
5517
|
+
)}
|
|
5515
5518
|
${when(
|
|
5516
|
-
|
|
5517
|
-
|
|
5519
|
+
(x) => x.type === "calendar",
|
|
5520
|
+
html`${renderCalendarGrid(context)}`
|
|
5521
|
+
)}
|
|
5522
|
+
</div>`
|
|
5518
5523
|
)}
|
|
5524
|
+
</div>
|
|
5519
5525
|
<div class="footer">
|
|
5520
5526
|
<${buttonTag}
|
|
5527
|
+
tabindex="3"
|
|
5521
5528
|
class="vwc-button"
|
|
5522
5529
|
size="condensed"
|
|
5523
5530
|
label="${(x) => x.locale.datePicker.clearLabel}"
|
|
5524
5531
|
@click="${(x) => x._onClearClick()}"
|
|
5525
5532
|
></${buttonTag}>
|
|
5526
5533
|
<${buttonTag}
|
|
5534
|
+
tabindex="3"
|
|
5527
5535
|
class="vwc-button"
|
|
5528
5536
|
size="condensed"
|
|
5529
5537
|
appearance="filled"
|
|
@@ -5675,6 +5683,11 @@ class DatePickerBase extends FormAssociatedDatePickerBase {
|
|
|
5675
5683
|
/// Used to stop the popup from immediately opening when closing popup and returning focus to text field
|
|
5676
5684
|
this.#isClosingPopup = false;
|
|
5677
5685
|
this._presentationValue = "";
|
|
5686
|
+
this._numCalendars = 1;
|
|
5687
|
+
/**
|
|
5688
|
+
* @internal
|
|
5689
|
+
*/
|
|
5690
|
+
this._hideDatesOutsideMonth = false;
|
|
5678
5691
|
this._lastFocussedDate = null;
|
|
5679
5692
|
this._monthPickerYear = null;
|
|
5680
5693
|
this._lastFocussedMonth = null;
|
|
@@ -5719,6 +5732,19 @@ class DatePickerBase extends FormAssociatedDatePickerBase {
|
|
|
5719
5732
|
lastFocusableEl: focusableEls[focusableEls.length - 1]
|
|
5720
5733
|
};
|
|
5721
5734
|
}
|
|
5735
|
+
_adjustSelectedMonthToEnsureVisibilityOf(date) {
|
|
5736
|
+
const month = monthOfDate(date);
|
|
5737
|
+
const firstDisplayedMonth = this._selectedMonth;
|
|
5738
|
+
const lastDisplayedMonth = addMonths(this._selectedMonth, this._numCalendars - 1);
|
|
5739
|
+
if (compareMonths(month, firstDisplayedMonth) < 0) {
|
|
5740
|
+
this._selectedMonth = month;
|
|
5741
|
+
return true;
|
|
5742
|
+
} else if (compareMonths(month, lastDisplayedMonth) > 0) {
|
|
5743
|
+
this._selectedMonth = addMonths(month, 1 - this._numCalendars);
|
|
5744
|
+
return true;
|
|
5745
|
+
}
|
|
5746
|
+
return false;
|
|
5747
|
+
}
|
|
5722
5748
|
/**
|
|
5723
5749
|
* @internal
|
|
5724
5750
|
*/
|
|
@@ -5758,7 +5784,7 @@ class DatePickerBase extends FormAssociatedDatePickerBase {
|
|
|
5758
5784
|
if (this.proxy) {
|
|
5759
5785
|
this.proxy.setCustomValidity(this._getCustomValidationError() ?? "");
|
|
5760
5786
|
}
|
|
5761
|
-
super.validate(this._textFieldEl?.
|
|
5787
|
+
super.validate(this._textFieldEl?.querySelector("input") ?? void 0);
|
|
5762
5788
|
}
|
|
5763
5789
|
#dismissOnClickOutside;
|
|
5764
5790
|
#isClosingPopup;
|
|
@@ -5902,13 +5928,44 @@ class DatePickerBase extends FormAssociatedDatePickerBase {
|
|
|
5902
5928
|
_onNextMonthClick() {
|
|
5903
5929
|
this._selectedMonth = addMonths(this._selectedMonth, 1);
|
|
5904
5930
|
}
|
|
5905
|
-
// --- Calendar ---
|
|
5906
5931
|
/**
|
|
5907
|
-
* The calendar grid used to render the calendar.
|
|
5908
5932
|
* @internal
|
|
5909
5933
|
*/
|
|
5910
|
-
get
|
|
5911
|
-
|
|
5934
|
+
get _segments() {
|
|
5935
|
+
const segments = [];
|
|
5936
|
+
if (this._inMonthPicker) {
|
|
5937
|
+
segments.push({
|
|
5938
|
+
id: 0,
|
|
5939
|
+
type: "month-picker",
|
|
5940
|
+
title: `${this._monthPickerYear}`,
|
|
5941
|
+
titleClickable: true,
|
|
5942
|
+
prevYearButton: true,
|
|
5943
|
+
nextYearButton: true,
|
|
5944
|
+
months: buildMonthPickerGrid(
|
|
5945
|
+
this._monthPickerYear,
|
|
5946
|
+
this.locale.datePicker
|
|
5947
|
+
)
|
|
5948
|
+
});
|
|
5949
|
+
} else {
|
|
5950
|
+
for (let i = 0; i < this._numCalendars; i++) {
|
|
5951
|
+
const month = addMonths(this._selectedMonth, i);
|
|
5952
|
+
const isSingle = this._numCalendars === 1;
|
|
5953
|
+
const isFirst = i === 0;
|
|
5954
|
+
const isLast = i === this._numCalendars - 1;
|
|
5955
|
+
segments.push({
|
|
5956
|
+
id: i,
|
|
5957
|
+
type: "calendar",
|
|
5958
|
+
title: `${this.locale.datePicker.months.name[month.month]} ${month.year}`,
|
|
5959
|
+
titleClickable: isSingle,
|
|
5960
|
+
prevYearButton: isFirst && isSingle,
|
|
5961
|
+
prevMonthButton: isFirst,
|
|
5962
|
+
nextMonthButton: isLast,
|
|
5963
|
+
nextYearButton: isLast && isSingle,
|
|
5964
|
+
calendar: buildCalendarGrid(month, this.locale.datePicker)
|
|
5965
|
+
});
|
|
5966
|
+
}
|
|
5967
|
+
}
|
|
5968
|
+
return segments;
|
|
5912
5969
|
}
|
|
5913
5970
|
/**
|
|
5914
5971
|
* @internal
|
|
@@ -5960,9 +6017,7 @@ class DatePickerBase extends FormAssociatedDatePickerBase {
|
|
|
5960
6017
|
newDate = addDays(date, 1);
|
|
5961
6018
|
}
|
|
5962
6019
|
if (newDate && this._isDateInValidRange(newDate)) {
|
|
5963
|
-
|
|
5964
|
-
if (!areMonthsEqual(newMonth, this._selectedMonth)) {
|
|
5965
|
-
this._selectedMonth = newMonth;
|
|
6020
|
+
if (this._adjustSelectedMonthToEnsureVisibilityOf(newDate)) {
|
|
5966
6021
|
DOM.processUpdates();
|
|
5967
6022
|
}
|
|
5968
6023
|
this._dialogEl.querySelector(
|
|
@@ -5979,15 +6034,19 @@ class DatePickerBase extends FormAssociatedDatePickerBase {
|
|
|
5979
6034
|
this._lastFocussedDate = date;
|
|
5980
6035
|
}
|
|
5981
6036
|
get _tabbableDate() {
|
|
5982
|
-
const
|
|
6037
|
+
const datesInSegments = this._segments.filter((segment) => segment.type === "calendar").flatMap(
|
|
6038
|
+
(segment) => segment.calendar.grid.flat().map((d) => d.date)
|
|
6039
|
+
);
|
|
5983
6040
|
const candidates = [
|
|
5984
6041
|
this._lastFocussedDate,
|
|
5985
6042
|
...this._getSelectedDates(),
|
|
5986
6043
|
currentDateStr(),
|
|
5987
|
-
...
|
|
6044
|
+
...datesInSegments
|
|
5988
6045
|
];
|
|
6046
|
+
const firstVisibleMonth = this._selectedMonth;
|
|
6047
|
+
const lastVisibleMonth = addMonths(this._selectedMonth, this._numCalendars - 1);
|
|
5989
6048
|
return candidates.find(
|
|
5990
|
-
(date) => date &&
|
|
6049
|
+
(date) => date && compareMonths(monthOfDate(date), firstVisibleMonth) >= 0 && compareMonths(monthOfDate(date), lastVisibleMonth) <= 0 && this._isDateInValidRange(date)
|
|
5991
6050
|
) ?? null;
|
|
5992
6051
|
}
|
|
5993
6052
|
/**
|
|
@@ -5996,16 +6055,6 @@ class DatePickerBase extends FormAssociatedDatePickerBase {
|
|
|
5996
6055
|
get _inMonthPicker() {
|
|
5997
6056
|
return this._monthPickerYear !== null;
|
|
5998
6057
|
}
|
|
5999
|
-
/**
|
|
6000
|
-
* The months grid used to render the month picker.
|
|
6001
|
-
* @internal
|
|
6002
|
-
*/
|
|
6003
|
-
get _monthPickerGrid() {
|
|
6004
|
-
return buildMonthPickerGrid(
|
|
6005
|
-
this._monthPickerYear ?? this._currentMonth.year,
|
|
6006
|
-
this.locale.datePicker
|
|
6007
|
-
);
|
|
6008
|
-
}
|
|
6009
6058
|
/**
|
|
6010
6059
|
* Handle month selected in the month picker.
|
|
6011
6060
|
* @internal
|
|
@@ -6048,16 +6097,17 @@ class DatePickerBase extends FormAssociatedDatePickerBase {
|
|
|
6048
6097
|
this._lastFocussedMonth = month;
|
|
6049
6098
|
}
|
|
6050
6099
|
get _tabbableMonth() {
|
|
6051
|
-
const
|
|
6052
|
-
|
|
6100
|
+
const monthsInSegments = this._segments.filter(
|
|
6101
|
+
(segments) => segments.type === "month-picker"
|
|
6102
|
+
).flatMap((segment) => segment.months.flat().map((c) => c.month));
|
|
6053
6103
|
const candidates = [
|
|
6054
6104
|
this._lastFocussedMonth,
|
|
6055
6105
|
this._selectedMonth,
|
|
6056
6106
|
getCurrentMonth(),
|
|
6057
|
-
...
|
|
6107
|
+
...monthsInSegments
|
|
6058
6108
|
];
|
|
6059
6109
|
return candidates.find(
|
|
6060
|
-
(month) => month && month.year ===
|
|
6110
|
+
(month) => month && month.year === this._monthPickerYear && this._isMonthInValidRange(month)
|
|
6061
6111
|
) ?? null;
|
|
6062
6112
|
}
|
|
6063
6113
|
// --- Dialog footer ---
|
|
@@ -6104,6 +6154,9 @@ __decorateClass([
|
|
|
6104
6154
|
__decorateClass([
|
|
6105
6155
|
volatile
|
|
6106
6156
|
], DatePickerBase.prototype, "_isNextYearDisabled", 1);
|
|
6157
|
+
__decorateClass([
|
|
6158
|
+
observable
|
|
6159
|
+
], DatePickerBase.prototype, "_numCalendars", 2);
|
|
6107
6160
|
__decorateClass([
|
|
6108
6161
|
observable
|
|
6109
6162
|
], DatePickerBase.prototype, "_lastFocussedDate", 2);
|
|
@@ -6130,4 +6183,4 @@ const parsePresentationDate = (presentationDate, locale) => {
|
|
|
6130
6183
|
return formatDateStr(date);
|
|
6131
6184
|
};
|
|
6132
6185
|
|
|
6133
|
-
export { DatePickerBase as D, DatePickerBaseTemplate as a, compareDateStr as c, formatPresentationDate as f, isValidDateStr as i,
|
|
6186
|
+
export { DatePickerBase as D, DatePickerBaseTemplate as a, compareDateStr as c, formatPresentationDate as f, isValidDateStr as i, parsePresentationDate as p, styles as s };
|
package/shared/radio.js
CHANGED
|
@@ -133,7 +133,14 @@ var __decorateClass = (decorators, target, key, kind) => {
|
|
|
133
133
|
return result;
|
|
134
134
|
};
|
|
135
135
|
class Radio extends Radio$1 {
|
|
136
|
+
constructor() {
|
|
137
|
+
super(...arguments);
|
|
138
|
+
this.ariaLabel = null;
|
|
139
|
+
}
|
|
136
140
|
}
|
|
141
|
+
__decorateClass([
|
|
142
|
+
attr({ attribute: "aria-label" })
|
|
143
|
+
], Radio.prototype, "ariaLabel", 2);
|
|
137
144
|
__decorateClass([
|
|
138
145
|
attr
|
|
139
146
|
], Radio.prototype, "label", 2);
|
package/shared/text-field.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
const styles = "/**\n * Do not edit directly\n * Generated on
|
|
1
|
+
const styles = "/**\n * Do not edit directly\n * Generated on Wed, 22 Nov 2023 16:09:43 GMT\n */\n:host {\n display: inline-block;\n}\n\n.base {\n --_text-field-gutter: calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2))) / 2.5);\n --_text-field-icon-size: calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2))) / 2);\n display: inline-grid;\n width: 100%;\n gap: 4px;\n grid-template-columns: min-content 1fr max-content;\n}\n.base {\n --_appearance-color-text: var(--vvd-color-canvas-text);\n --_appearance-color-fill: var(--_connotation-color-backdrop);\n --_appearance-color-outline: var(--_connotation-color-intermediate);\n}\n.base.appearance-ghost {\n --_appearance-color-text: var(--_connotation-color-primary);\n --_appearance-color-fill: transparent;\n --_appearance-color-outline: transparent;\n}\n.base:where(:hover, .hover):where(:not(:disabled, .disabled, .readonly)) {\n --_appearance-color-text: var(--vvd-color-canvas-text);\n --_appearance-color-fill: var(--_connotation-color-backdrop);\n --_appearance-color-outline: var(--_connotation-color-firm);\n}\n.base:where(:hover, .hover):where(:not(:disabled, .disabled, .readonly)).appearance-ghost {\n --_appearance-color-text: var(--_connotation-color-primary);\n --_appearance-color-fill: var(--_connotation-color-faint);\n --_appearance-color-outline: transparent;\n}\n.base:where(:disabled, .disabled) {\n --_appearance-color-text: var(--vvd-color-neutral-300);\n --_appearance-color-fill: var(--vvd-color-neutral-100);\n --_appearance-color-outline: var(--vvd-color-neutral-300);\n}\n.base:where(:disabled, .disabled).appearance-ghost {\n --_appearance-color-text: var(--vvd-color-neutral-300);\n --_appearance-color-fill: transparent;\n --_appearance-color-outline: transparent;\n}\n.base:where(.readonly):where(:not(:disabled, .disabled)) {\n --_appearance-color-text: var(--vvd-color-canvas-text);\n --_appearance-color-fill: var(--vvd-color-neutral-200);\n --_appearance-color-outline: var(--vvd-color-neutral-400);\n}\n.base:where(.readonly):where(:not(:disabled, .disabled)).appearance-ghost {\n --_appearance-color-text: var(--vvd-color-neutral-600);\n --_appearance-color-fill: transparent;\n --_appearance-color-outline: transparent;\n}\n.base.connotation-success {\n /* @cssprop [--vvd-text-field-success-primary=var(--vvd-color-success-500)] */\n --_connotation-color-primary: var(--vvd-text-field-success-primary, var(--vvd-color-success-500));\n /* @cssprop [--vvd-text-field-success-backdrop=var(--vvd-color-success-50)] */\n --_connotation-color-backdrop: var(--vvd-text-field-success-backdrop, var(--vvd-color-success-50));\n /* @cssprop [--vvd-text-field-success-intermediate=var(--vvd-color-success-500)] */\n --_connotation-color-intermediate: var(--vvd-text-field-success-intermediate, var(--vvd-color-success-500));\n /* @cssprop [--vvd-text-field-success-firm=var(--vvd-color-success-600)] */\n --_connotation-color-firm: var(--vvd-text-field-success-firm, var(--vvd-color-success-600));\n /* @cssprop [--vvd-text-field-success-faint=var(--vvd-color-success-50)] */\n --_connotation-color-faint: var(--vvd-text-field-success-faint, var(--vvd-color-success-50));\n /* @cssprop [--vvd-text-field-success-soft=var(--vvd-color-success-100)] */\n --_connotation-color-soft: var(--vvd-text-field-success-soft, var(--vvd-color-success-100));\n}\n.base.connotation-alert {\n /* @cssprop [--vvd-text-field-alert-primary=var(--vvd-color-alert-500)] */\n --_connotation-color-primary: var(--vvd-text-field-alert-primary, var(--vvd-color-alert-500));\n /* @cssprop [--vvd-text-field-alert-backdrop=var(--vvd-color-alert-50)] */\n --_connotation-color-backdrop: var(--vvd-text-field-alert-backdrop, var(--vvd-color-alert-50));\n /* @cssprop [--vvd-text-field-alert-intermediate=var(--vvd-color-alert-500)] */\n --_connotation-color-intermediate: var(--vvd-text-field-alert-intermediate, var(--vvd-color-alert-500));\n /* @cssprop [--vvd-text-field-alert-firm=var(--vvd-color-alert-600)] */\n --_connotation-color-firm: var(--vvd-text-field-alert-firm, var(--vvd-color-alert-600));\n /* @cssprop [--vvd-text-field-alert-faint=var(--vvd-color-alert-50)] */\n --_connotation-color-faint: var(--vvd-text-field-alert-faint, var(--vvd-color-alert-50));\n /* @cssprop [--vvd-text-field-alert-soft=var(--vvd-color-alert-100)] */\n --_connotation-color-soft: var(--vvd-text-field-alert-soft, var(--vvd-color-alert-100));\n}\n.base:not(.connotation-success, .connotation-alert) {\n /* @cssprop [--vvd-text-field-accent-primary=var(--vvd-color-canvas-text)] */\n --_connotation-color-primary: var(--vvd-text-field-accent-primary, var(--vvd-color-canvas-text));\n /* @cssprop [--vvd-text-field-accent-backdrop=var(--vvd-color-canvas)] */\n --_connotation-color-backdrop: var(--vvd-text-field-accent-backdrop, var(--vvd-color-canvas));\n /* @cssprop [--vvd-text-field-accent-intermediate=var(--vvd-color-neutral-500)] */\n --_connotation-color-intermediate: var(--vvd-text-field-accent-intermediate, var(--vvd-color-neutral-500));\n /* @cssprop [--vvd-text-field-accent-firm=var(--vvd-color-canvas-text)] */\n --_connotation-color-firm: var(--vvd-text-field-accent-firm, var(--vvd-color-canvas-text));\n /* @cssprop [--vvd-text-field-accent-faint=var(--vvd-color-neutral-50)] */\n --_connotation-color-faint: var(--vvd-text-field-accent-faint, var(--vvd-color-neutral-50));\n /* @cssprop [--vvd-text-field-accent-soft=var(--vvd-color-neutral-100)] */\n --_connotation-color-soft: var(--vvd-text-field-accent-soft, var(--vvd-color-neutral-100));\n}\n@supports (user-select: none) {\n .base {\n user-select: none;\n }\n}\n.base:not(.disabled) {\n --_low-ink-color: var(--vvd-color-neutral-600);\n}\n.base.disabled {\n --_low-ink-color: var(--_appearance-color-text);\n}\n\n.label:not(slot),\n.label::slotted(label) {\n color: var(--vvd-color-canvas-text);\n contain: inline-size;\n font: var(--vvd-typography-base);\n grid-column: 1/4;\n grid-row: 1;\n}\n.char-count + .label:not(slot),\n.char-count + .label::slotted(label) {\n grid-column: 1/3;\n}\n\n.char-count {\n color: var(--_low-ink-color);\n font: var(--vvd-typography-base);\n grid-column: 3/4;\n}\n\n.fieldset {\n position: relative;\n display: flex;\n align-items: center;\n background-color: var(--_appearance-color-fill);\n font: var(--vvd-typography-base);\n grid-column: 1/4;\n padding-block: 0;\n transition: color 0.2s, background-color 0.2s;\n /* Shape */\n}\n.fieldset::after {\n position: absolute;\n display: block;\n block-size: 100%;\n border-radius: inherit;\n box-shadow: inset 0 0 0 1px var(--_appearance-color-outline);\n content: \"\";\n inline-size: 100%;\n pointer-events: none;\n transition: box-shadow 0.2s;\n}\n.fieldset:focus-visible {\n outline: none;\n}\n.base > .fieldset {\n block-size: calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density, 0), 2)));\n}\n.base:not(.shape-pill) .fieldset {\n border-radius: 6px;\n}\n.base.shape-pill .fieldset {\n border-radius: 24px;\n}\n\n.wrapper {\n block-size: 100%;\n border-radius: inherit;\n inline-size: 100%;\n}\n.wrapper:focus-visible {\n outline: none;\n}\n\n.control:not(slot), .control::slotted(input) {\n width: 100%;\n box-sizing: border-box;\n border: 0 none;\n appearance: none; /* for box-shadow visibility on IOS */\n background-color: transparent;\n block-size: 100%;\n border-radius: inherit;\n color: inherit;\n font: inherit;\n padding-block: 0;\n padding-inline-end: var(--_text-field-gutter);\n padding-inline-start: var(--_text-field-gutter);\n}\n.control:not(slot):disabled, .control::slotted(input:disabled) {\n cursor: not-allowed;\n opacity: 1; /* 2. correct opacity on iOS */\n -webkit-text-fill-color: var(--_appearance-color-text); /* 1. sets text fill to current `color` for safari */\n}\n.control:not(slot)::placeholder {\n opacity: 1 !important; /* 2. correct opacity on iOS */\n -webkit-text-fill-color: var(--_low-ink-color) !important; /* 1. sets text fill to current `color` for safari */\n}\n.control:not(slot):focus-visible, .control::slotted(input:focus-visible) {\n outline: none;\n}\n.has-icon .control:not(slot), .has-icon .control::slotted(input) {\n padding-inline-start: calc(var(--_text-field-icon-size) + var(--_text-field-gutter) * 2);\n}\n\n.icon {\n position: absolute;\n z-index: 1;\n color: var(--_low-ink-color);\n font-size: var(--_text-field-icon-size);\n inset-block-start: 50%;\n inset-inline-start: calc(100% + var(--_text-field-gutter));\n line-height: 1;\n transform: translateY(-50%);\n}\n\n.leading-items-wrapper {\n position: relative;\n}\n.base.no-leading .leading-items-wrapper {\n display: none;\n}\n\n.action-items-wrapper {\n margin-inline-end: 4px;\n}\n.base:not(.action-items) .action-items-wrapper {\n display: none;\n}\n\n.focus-indicator {\n --focus-stroke-gap-color: transparent;\n pointer-events: none;\n}\n.wrapper:not(:focus-visible, :focus-within) > .focus-indicator, .fieldset:not(:focus-visible, :focus-within) > .focus-indicator {\n display: none;\n}";
|
|
2
2
|
|
|
3
3
|
export { styles as s };
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare class Reflector<S, T extends HTMLElement> {
|
|
2
|
+
#private;
|
|
3
|
+
constructor(source: S, target: T);
|
|
4
|
+
attribute(propertyName: keyof S, attributeName: string): void;
|
|
5
|
+
booleanAttribute(propertyName: keyof S, attributeName: string): void;
|
|
6
|
+
property(propertyName: keyof S, targetProperty: keyof T, skipIfEqual?: boolean): void;
|
|
7
|
+
destroy(): void;
|
|
8
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const generateRandomId: () => string;
|
package/side-drawer/index.js
CHANGED