@vectoriox/iox-ui 5.84.0 → 5.86.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/actions-core/index.d.ts +47 -3
- package/composite-core/index.d.ts +93 -15
- package/design-core/index.d.ts +2013 -187
- package/fesm2022/vectoriox-iox-ui-actions-core.mjs +153 -70
- package/fesm2022/vectoriox-iox-ui-actions-core.mjs.map +1 -1
- package/fesm2022/vectoriox-iox-ui-composite-core.mjs +307 -39
- package/fesm2022/vectoriox-iox-ui-composite-core.mjs.map +1 -1
- package/fesm2022/vectoriox-iox-ui-design-core.mjs +2222 -85
- package/fesm2022/vectoriox-iox-ui-design-core.mjs.map +1 -1
- package/fesm2022/vectoriox-iox-ui-forms-core.mjs +27 -4
- package/fesm2022/vectoriox-iox-ui-forms-core.mjs.map +1 -1
- package/fesm2022/vectoriox-iox-ui-generation-core.mjs +250 -12
- package/fesm2022/vectoriox-iox-ui-generation-core.mjs.map +1 -1
- package/fesm2022/vectoriox-iox-ui-scene-core.mjs +101 -5
- package/fesm2022/vectoriox-iox-ui-scene-core.mjs.map +1 -1
- package/fesm2022/vectoriox-iox-ui.mjs +1545 -78
- package/fesm2022/vectoriox-iox-ui.mjs.map +1 -1
- package/forms-core/index.d.ts +23 -4
- package/generation-core/index.d.ts +13 -0
- package/index.d.ts +563 -62
- package/package.json +1 -1
- package/scene-core/index.d.ts +32 -4
- package/src/actions-core/action.model.ts +1 -1
- package/src/actions-core/dialog-motion.ts +25 -0
- package/src/actions-core/dialog-opener.ts +9 -3
- package/src/actions-core/element-actions.ts +25 -1
- package/src/actions-core/popover-opener.ts +50 -0
- package/src/actions-core/public-api.ts +1 -0
- package/src/composite-core/header.ts +25 -0
- package/src/composite-core/public-api.ts +1 -0
- package/src/composite-core/slider-runtime.ts +82 -0
- package/src/composite-core/slider.ts +194 -27
- package/src/composite-core/structure.ts +14 -9
- package/src/design-core/flavor-spec.generated.ts +2145 -85
- package/src/design-core/header-behaviour.ts +76 -0
- package/src/design-core/public-api.ts +1 -0
- package/src/design-core/theme-color.ts +21 -5
- package/src/forms-core/submit-lifecycle.ts +30 -3
- package/src/generation-core/baseline-roles.ts +1 -0
- package/src/generation-core/compose-site.ts +8 -0
- package/src/generation-core/node-baselines.generated.ts +231 -11
- package/src/generation-core/patterns.ts +2 -0
- package/src/generation-core/site-spec.generated.ts +8 -0
- package/src/scene-core/scene.ts +18 -0
- package/src/scene-core/scroll-driver.ts +83 -6
- package/styles/iox-design.css +431 -1
- package/styles/iox-forms.css +29 -4
package/styles/iox-forms.css
CHANGED
|
@@ -36,8 +36,11 @@
|
|
|
36
36
|
has to be able to fix and retry. The submit button STAYS (premium N2: it reads "Sent" with its check,
|
|
37
37
|
disabled — the success in place), and so does the row holding it or the second channel (the WhatsApp
|
|
38
38
|
button beside Send is how a visitor reaches you AFTER sending too). */
|
|
39
|
-
.iox-form[data-iox-state="success"] .iox-field,
|
|
40
|
-
.iox-form[data-iox-state="success"] .iox-field-group:not(:has(.iox-submit, .iox-role-form-channel)) { display: none !important; }
|
|
39
|
+
.iox-form[data-iox-state="success"]:not([data-iox-after-send="toast"]) .iox-field,
|
|
40
|
+
.iox-form[data-iox-state="success"]:not([data-iox-after-send="toast"]) .iox-field-group:not(:has(.iox-submit, .iox-role-form-channel)) { display: none !important; }
|
|
41
|
+
/* A form that KEEPS its fields after sending (premium M5 — After sending ▸ "Keep the fields and show a toast") never
|
|
42
|
+
shows its Success block: a toast says the Sent words and the fields stay, cleared for the next answer. */
|
|
43
|
+
.iox-form[data-iox-after-send="toast"] .iox-form-success { display: none !important; }
|
|
41
44
|
|
|
42
45
|
/* The Success and Error blocks ENTER (premium N2 — Emil 139/30): opacity and a 4px rise over 200ms, out in 120ms,
|
|
43
46
|
transitions (a fast retry interrupts from the live value, never a restart). `display` is discrete, so the exit
|
|
@@ -240,6 +243,25 @@ dialog.iox-cal::backdrop { background: transparent; }
|
|
|
240
243
|
@starting-style { dialog.iox-cal[open] { opacity: 0; transform: none; } }
|
|
241
244
|
dialog.iox-cal[data-iox-closing] { opacity: 0; transition-duration: 120ms; }
|
|
242
245
|
}
|
|
246
|
+
/* A Date field that wears the design system is timed by the LOOK (premium M5 — the calendar is a popover, and a sheet on
|
|
247
|
+
a phone): the popover tokens on a laptop, the sheet's on a phone, so a look whose motion is Off opens it with no motion
|
|
248
|
+
at all (vectoriox/iox-ui#44). Reduced motion keeps the fade (the tokens survive it) and drops the movement. */
|
|
249
|
+
.iox-es-field dialog.iox-cal {
|
|
250
|
+
transition: opacity var(--iox-popover-dur-in) var(--iox-popover-ease), transform var(--iox-popover-dur-in) var(--iox-popover-ease);
|
|
251
|
+
}
|
|
252
|
+
@starting-style { .iox-es-field dialog.iox-cal[open] { transform: scale(var(--iox-popover-scale)); } }
|
|
253
|
+
.iox-es-field dialog.iox-cal[data-iox-closing] { transform: scale(var(--iox-popover-scale)); transition-duration: var(--iox-popover-dur-out); }
|
|
254
|
+
@media (max-width: 767px) {
|
|
255
|
+
.iox-es-field dialog.iox-cal { transform: none; transition: transform var(--iox-sheet-dur-in) var(--iox-sheet-ease); }
|
|
256
|
+
@starting-style { .iox-es-field dialog.iox-cal[open] { transform: translateY(100%); } }
|
|
257
|
+
.iox-es-field dialog.iox-cal[data-iox-closing] { transform: translateY(100%); transition-duration: var(--iox-sheet-dur-out); transition-timing-function: var(--iox-sheet-ease); }
|
|
258
|
+
.iox-es-field dialog.iox-cal::backdrop { transition: opacity var(--iox-sheet-dur-in) var(--iox-sheet-ease); }
|
|
259
|
+
.iox-es-field dialog.iox-cal[data-iox-closing]::backdrop { transition-duration: var(--iox-sheet-dur-out); }
|
|
260
|
+
}
|
|
261
|
+
@media (prefers-reduced-motion: reduce) {
|
|
262
|
+
.iox-es-field dialog.iox-cal, .iox-es-field dialog.iox-cal[data-iox-closing] { transform: none !important; transition: opacity var(--iox-popover-dur-in) var(--iox-popover-ease); }
|
|
263
|
+
.iox-es-field dialog.iox-cal[data-iox-closing] { transition-duration: var(--iox-popover-dur-out); }
|
|
264
|
+
}
|
|
243
265
|
/* Opened from the KEYBOARD (Enter / Space on the date button): it simply appears, and Esc or Enter on a day closes it
|
|
244
266
|
at once — keyboard-initiated actions never animate (Emil 2). The pointer gets the motion above. */
|
|
245
267
|
dialog.iox-cal[data-iox-instant],
|
|
@@ -549,7 +571,8 @@ dialog.iox-cal[data-iox-instant]::backdrop { transition: none !important; }
|
|
|
549
571
|
/* ── Premium M3, under the field marker: a Choices field's chips wear the `chip` element style (N1); a Date's words,
|
|
550
572
|
glyph and open box, its calendar the `calendar` style and every day `calendar-day` (N8). These rules ARE the
|
|
551
573
|
contract's fieldClassBaseline entries, verbatim (generated from the element styles by build-spec.mjs; pinned by
|
|
552
|
-
token-names.spec). Hover is gated to hover devices (G1).
|
|
574
|
+
token-names.spec). Hover is gated to hover devices (G1). M4: a chip's colour moves on the hover timing (dur-hover,
|
|
575
|
+
≤150ms on `ease` — Emil 92); a chip and a day press on dur-press and release on the slower dur-fast (Emil 55/85). ── */
|
|
553
576
|
.iox-es-field .iox-field__chip {
|
|
554
577
|
background-color: transparent;
|
|
555
578
|
color: var(--iox-text);
|
|
@@ -561,10 +584,11 @@ dialog.iox-cal[data-iox-instant]::backdrop { transition: none !important; }
|
|
|
561
584
|
font-family: var(--iox-font-label);
|
|
562
585
|
font-size: var(--iox-badge-size);
|
|
563
586
|
font-weight: var(--iox-weight-label);
|
|
564
|
-
transition: border-color var(--iox-dur-
|
|
587
|
+
transition: border-color var(--iox-dur-hover) var(--iox-ease-hover), background-color var(--iox-dur-hover) var(--iox-ease-hover), color var(--iox-dur-hover) var(--iox-ease-hover), box-shadow var(--iox-dur-hover) var(--iox-ease-hover), opacity var(--iox-dur-hover) var(--iox-ease-hover), transform var(--iox-dur-fast) var(--iox-ease-standard);
|
|
565
588
|
}
|
|
566
589
|
.iox-es-field .iox-field__chip:active:not(:has(:disabled)) {
|
|
567
590
|
transform: scale(var(--iox-press-scale));
|
|
591
|
+
transition-duration: var(--iox-dur-press);
|
|
568
592
|
}
|
|
569
593
|
@media (hover: hover) and (pointer: fine) {
|
|
570
594
|
.iox-es-field .iox-field__chip:hover:not(:has(:disabled)) {
|
|
@@ -639,6 +663,7 @@ dialog.iox-cal[data-iox-instant]::backdrop { transition: none !important; }
|
|
|
639
663
|
}
|
|
640
664
|
.iox-es-field .iox-cal .iox-cal__day:active:not([aria-disabled='true']) {
|
|
641
665
|
transform: scale(var(--iox-press-scale));
|
|
666
|
+
transition-duration: var(--iox-dur-press);
|
|
642
667
|
}
|
|
643
668
|
@media (hover: hover) and (pointer: fine) {
|
|
644
669
|
.iox-es-field .iox-cal .iox-cal__day:hover:not([aria-disabled='true']) {
|