origam 2.17.1 → 2.18.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/CHANGELOG.md +690 -1
- package/dist/src/assets/css/main.css +1 -1
- package/dist/src/assets/css/tokens/dark.css +119 -20
- package/dist/src/assets/css/tokens/light.css +46 -10
- package/dist/src/assets/locales/en.json +21 -6
- package/dist/src/assets/locales/fr.json +21 -6
- package/dist/src/assets/scss/main.scss +10 -2
- package/dist/src/assets/scss/tokens/_dark.scss +2843 -10
- package/dist/src/assets/scss/tokens/_light.scss +46 -10
- package/dist/src/components/Alert/OrigamAlert.vue +6 -6
- package/dist/src/components/Avatar/OrigamAvatar.vue +15 -2
- package/dist/src/components/Badge/OrigamBadge.vue +7 -7
- package/dist/src/components/Breadcrumb/OrigamBreadcrumbItem.vue +23 -4
- package/dist/src/components/Btn/OrigamBtn.vue +21 -3
- package/dist/src/components/Btn/OrigamBtnGroup.vue +1 -1
- package/dist/src/components/Calendar/OrigamCalendar.vue +1 -1
- package/dist/src/components/Card/OrigamCard.vue +2 -0
- package/dist/src/components/Card/OrigamCardHeader.vue +7 -7
- package/dist/src/components/Carousel/OrigamCarousel.vue +14 -1
- package/dist/src/components/Chart/OrigamChartBoxPlot.vue +1 -1
- package/dist/src/components/Chart/OrigamChartBullet.vue +3 -2
- package/dist/src/components/Chart/OrigamChartCandlestick.vue +2 -2
- package/dist/src/components/Chart/OrigamChartCartesian.vue +49 -4
- package/dist/src/components/Chart/OrigamChartLegend.vue +39 -18
- package/dist/src/components/Chart/OrigamChartPareto.vue +7 -1
- package/dist/src/components/Chart/OrigamChartPictorial.vue +2 -2
- package/dist/src/components/Chart/OrigamChartRadar.vue +3 -1
- package/dist/src/components/Chart/OrigamChartSparkline.vue +3 -1
- package/dist/src/components/Chart/OrigamChartStreamgraph.vue +2 -1
- package/dist/src/components/Checkbox/OrigamCheckbox.vue +2 -0
- package/dist/src/components/Checkbox/OrigamCheckboxGroup.vue +36 -11
- package/dist/src/components/Chip/OrigamChip.vue +19 -4
- package/dist/src/components/Code/OrigamCode.vue +20 -3
- package/dist/src/components/ColorPickerField/OrigamColorPickerField.vue +30 -5
- package/dist/src/components/CommandPalette/OrigamCommandPalette.vue +3 -3
- package/dist/src/components/ConfirmWrapper/OrigamConfirmWrapper.vue +6 -6
- package/dist/src/components/ContextualMenu/OrigamContextualMenu.vue +0 -4
- package/dist/src/components/DataList/OrigamDataList.vue +2 -0
- package/dist/src/components/DataList/OrigamDataText.vue +6 -6
- package/dist/src/components/DataList/OrigamDataTitle.vue +6 -6
- package/dist/src/components/DataTable/OrigamDataTableHeaderCell.vue +1 -1
- package/dist/src/components/DataTable/OrigamDataTableHeadersCell.vue +4 -1
- package/dist/src/components/DatePicker/OrigamDatePicker.vue +2 -0
- package/dist/src/components/DatePicker/OrigamDatePickerHeader.vue +6 -6
- package/dist/src/components/DatePickerField/OrigamDatePickerField.vue +21 -1
- package/dist/src/components/Dialog/OrigamDialog.vue +25 -0
- package/dist/src/components/Dialog/OrigamDialogConfirmation.vue +6 -0
- package/dist/src/components/ExpansionPanel/OrigamExpansionPanel.vue +2 -0
- package/dist/src/components/ExpansionPanel/OrigamExpansionPanelHeader.vue +6 -6
- package/dist/src/components/Field/OrigamField.vue +47 -15
- package/dist/src/components/FileField/OrigamFileField.vue +5 -1
- package/dist/src/components/Icon/OrigamSvgIcon.vue +3 -1
- package/dist/src/components/Img/OrigamImg.vue +9 -2
- package/dist/src/components/InfiniteScroll/OrigamInfiniteScroll.vue +34 -18
- package/dist/src/components/InlineEdit/OrigamInlineEdit.vue +46 -5
- package/dist/src/components/Input/OrigamInput.vue +6 -6
- package/dist/src/components/List/OrigamListGroup.vue +4 -0
- package/dist/src/components/List/OrigamListItem.vue +68 -4
- package/dist/src/components/Masonry/OrigamMasonry.vue +18 -2
- package/dist/src/components/Menu/OrigamMenu.vue +79 -9
- package/dist/src/components/NumberField/OrigamNumberField.vue +13 -3
- package/dist/src/components/OtpInputField/OrigamOtpInputField.vue +35 -11
- package/dist/src/components/PasswordField/OrigamPasswordField.vue +5 -1
- package/dist/src/components/Radio/OrigamRadio.vue +2 -0
- package/dist/src/components/Radio/OrigamRadioGroup.vue +36 -11
- package/dist/src/components/RatingField/OrigamRatingField.vue +58 -7
- package/dist/src/components/RatingField/OrigamRatingFieldItem.vue +78 -30
- package/dist/src/components/Select/OrigamSelect.vue +44 -21
- package/dist/src/components/SliderField/OrigamSliderField.vue +20 -10
- package/dist/src/components/Snackbar/OrigamSnackbarGroup.vue +1 -1
- package/dist/src/components/Switch/OrigamSwitch.vue +2 -0
- package/dist/src/components/Tabs/OrigamTab.vue +7 -4
- package/dist/src/components/Tabs/OrigamTabPanel.vue +4 -2
- package/dist/src/components/Tabs/OrigamTabs.vue +7 -5
- package/dist/src/components/TextField/OrigamTextField.vue +5 -1
- package/dist/src/components/TextareaField/OrigamTextareaField.vue +5 -1
- package/dist/src/components/Transition/OrigamExpandX.vue +19 -3
- package/dist/src/components/Transition/OrigamExpandY.vue +19 -3
- package/dist/src/components/Transition/OrigamTranslateScale.vue +26 -4
- package/dist/src/components/Video/OrigamVideo.vue +3 -2
- package/dist/src/components/Window/OrigamWindow.vue +20 -3
- package/dist/src/composables/Commons/accessibleCommand.composable.cjs +26 -0
- package/dist/src/composables/Commons/accessibleCommand.composable.d.ts +78 -0
- package/dist/src/composables/Commons/accessibleCommand.composable.js +20 -0
- package/dist/src/composables/Commons/activator.composable.cjs +10 -1
- package/dist/src/composables/Commons/activator.composable.js +11 -2
- package/dist/src/composables/Commons/adjacent.composable.cjs +17 -0
- package/dist/src/composables/Commons/adjacent.composable.d.ts +12 -0
- package/dist/src/composables/Commons/adjacent.composable.js +17 -0
- package/dist/src/composables/Commons/adjacentInner.composable.cjs +20 -0
- package/dist/src/composables/Commons/adjacentInner.composable.d.ts +24 -5
- package/dist/src/composables/Commons/adjacentInner.composable.js +20 -0
- package/dist/src/composables/Commons/audio.composable.cjs +14 -1
- package/dist/src/composables/Commons/audio.composable.js +14 -1
- package/dist/src/composables/Commons/backButton.composable.cjs +3 -1
- package/dist/src/composables/Commons/backButton.composable.js +3 -1
- package/dist/src/composables/Commons/border.composable.d.ts +13 -0
- package/dist/src/composables/Commons/colorEffect.composable.cjs +58 -46
- package/dist/src/composables/Commons/colorEffect.composable.d.ts +10 -5
- package/dist/src/composables/Commons/colorEffect.composable.js +70 -46
- package/dist/src/composables/Commons/createLayout.composable.cjs +21 -12
- package/dist/src/composables/Commons/createLayout.composable.js +21 -12
- package/dist/src/composables/Commons/delay.composable.d.ts +16 -0
- package/dist/src/composables/Commons/dimension.composable.d.ts +11 -0
- package/dist/src/composables/Commons/elevation.composable.cjs +6 -2
- package/dist/src/composables/Commons/elevation.composable.d.ts +37 -1
- package/dist/src/composables/Commons/elevation.composable.js +7 -2
- package/dist/src/composables/Commons/goTo.composable.cjs +4 -2
- package/dist/src/composables/Commons/goTo.composable.js +5 -3
- package/dist/src/composables/Commons/group.composable.cjs +14 -14
- package/dist/src/composables/Commons/group.composable.js +14 -14
- package/dist/src/composables/Commons/hotkey.composable.d.ts +18 -7
- package/dist/src/composables/Commons/hydration.composable.d.ts +8 -0
- package/dist/src/composables/Commons/link.composable.d.ts +20 -0
- package/dist/src/composables/Commons/locationStrategies.composable.d.ts +17 -0
- package/dist/src/composables/Commons/message.composable.d.ts +19 -5
- package/dist/src/composables/Commons/position.composable.d.ts +17 -6
- package/dist/src/composables/Commons/refs.composable.d.ts +11 -5
- package/dist/src/composables/Commons/rounded.composable.d.ts +11 -1
- package/dist/src/composables/Commons/scrolling.composable.cjs +15 -12
- package/dist/src/composables/Commons/scrolling.composable.js +15 -12
- package/dist/src/composables/Commons/size.composable.d.ts +15 -0
- package/dist/src/composables/Commons/ssrBoot.composable.cjs +9 -1
- package/dist/src/composables/Commons/ssrBoot.composable.js +10 -2
- package/dist/src/composables/Commons/stack.composable.cjs +13 -1
- package/dist/src/composables/Commons/stack.composable.js +13 -1
- package/dist/src/composables/Commons/theme-props-resolver.composable.cjs +41 -32
- package/dist/src/composables/Commons/theme-props-resolver.composable.js +41 -32
- package/dist/src/composables/Commons/validation.composable.cjs +3 -3
- package/dist/src/composables/Commons/validation.composable.js +3 -3
- package/dist/src/composables/Commons/virtual.composable.cjs +24 -8
- package/dist/src/composables/Commons/virtual.composable.js +24 -8
- package/dist/src/composables/Masonry/masonry.composable.cjs +18 -11
- package/dist/src/composables/Masonry/masonry.composable.js +18 -11
- package/dist/src/composables/Parallax/parallax.composable.cjs +1 -1
- package/dist/src/composables/Parallax/parallax.composable.js +1 -1
- package/dist/src/composables/index.cjs +36 -0
- package/dist/src/composables/index.d.ts +3 -0
- package/dist/src/composables/index.js +3 -0
- package/dist/src/consts/Chart/chart-cartesian.const.cjs +5 -2
- package/dist/src/consts/Chart/chart-cartesian.const.d.ts +42 -0
- package/dist/src/consts/Chart/chart-cartesian.const.js +3 -0
- package/dist/src/consts/Commons/elevation.const.cjs +5 -1
- package/dist/src/consts/Commons/elevation.const.d.ts +52 -2
- package/dist/src/consts/Commons/elevation.const.js +4 -0
- package/dist/src/consts/Commons/ripple.const.cjs +13 -3
- package/dist/src/consts/Commons/ripple.const.js +13 -3
- package/dist/src/consts/RatingField/rating-field.const.cjs +10 -0
- package/dist/src/consts/RatingField/rating-field.const.d.ts +36 -0
- package/dist/src/consts/RatingField/rating-field.const.js +12 -0
- package/dist/src/consts/index.cjs +11 -0
- package/dist/src/consts/index.d.ts +1 -0
- package/dist/src/consts/index.js +1 -0
- package/dist/src/directives/ClickOutside/clickOutside.directive.cjs +2 -0
- package/dist/src/directives/ClickOutside/clickOutside.directive.js +2 -0
- package/dist/src/directives/Ripple/ripple.directive.cjs +2 -0
- package/dist/src/directives/Ripple/ripple.directive.js +2 -0
- package/dist/src/enums/Commons/color.enum.cjs +0 -1
- package/dist/src/enums/Commons/color.enum.d.ts +14 -5
- package/dist/src/enums/Commons/color.enum.js +0 -1
- package/dist/src/enums/Sheet/sheet.enum.d.ts +1 -1
- package/dist/src/interfaces/Chart/chart-cartesian.interface.d.ts +6 -2
- package/dist/src/interfaces/Commons/activator.interface.d.ts +3 -2
- package/dist/src/interfaces/Commons/adjacent.interface.d.ts +29 -0
- package/dist/src/interfaces/Commons/group.interface.d.ts +13 -2
- package/dist/src/interfaces/Commons/ripple.interface.d.ts +16 -0
- package/dist/src/interfaces/Commons/scroll.interface.d.ts +3 -2
- package/dist/src/interfaces/DataTable/data-table-header.interface.d.ts +2 -2
- package/dist/src/interfaces/DatePicker/date-picker-month.interface.d.ts +2 -1
- package/dist/src/interfaces/Menu/menu.interface.d.ts +28 -1
- package/dist/src/interfaces/OtpInputField/otp-input-field.interface.d.ts +21 -1
- package/dist/src/interfaces/RatingField/rating-field-item.interface.d.ts +16 -1
- package/dist/src/interfaces/index.cjs +11 -0
- package/dist/src/interfaces/index.d.ts +1 -0
- package/dist/src/interfaces/index.js +1 -0
- package/dist/src/themes/origam.theme.cjs +8 -14
- package/dist/src/themes/origam.theme.js +6 -8
- package/dist/src/types/Commons/color.type.d.ts +4 -3
- package/dist/src/types/Commons/commons.type.d.ts +33 -0
- package/dist/src/types/Commons/theme.type.d.ts +2 -1
- package/dist/src/types/Sheet/sheet.type.d.ts +2 -1
- package/dist/src/types/index.cjs +22 -0
- package/dist/src/types/index.d.ts +2 -0
- package/dist/src/types/index.js +2 -0
- package/dist/src/types/tokens.type.d.ts +1 -1
- package/dist/src/utils/Commons/a11y.util.cjs +35 -0
- package/dist/src/utils/Commons/a11y.util.d.ts +63 -0
- package/dist/src/utils/Commons/a11y.util.js +33 -0
- package/dist/src/utils/Commons/clickOutside.util.cjs +5 -1
- package/dist/src/utils/Commons/clickOutside.util.js +5 -1
- package/dist/src/utils/Commons/color.util.cjs +10 -5
- package/dist/src/utils/Commons/color.util.d.ts +34 -5
- package/dist/src/utils/Commons/color.util.js +9 -5
- package/dist/src/utils/Commons/goTo.util.cjs +31 -14
- package/dist/src/utils/Commons/goTo.util.d.ts +1 -1
- package/dist/src/utils/Commons/goTo.util.js +31 -16
- package/dist/src/utils/Commons/location.util.cjs +18 -3
- package/dist/src/utils/Commons/location.util.js +18 -3
- package/dist/src/utils/Commons/ripple.util.cjs +5 -1
- package/dist/src/utils/Commons/ripple.util.js +5 -1
- package/dist/src/utils/index.cjs +11 -0
- package/dist/src/utils/index.d.ts +1 -0
- package/dist/src/utils/index.js +1 -0
- package/package.json +13 -2
- package/dist/src/types/Commons/locale.type.cjs +0 -1
- package/dist/src/types/Commons/locale.type.d.ts +0 -0
- package/dist/src/types/Commons/locale.type.js +0 -0
|
@@ -3,9 +3,13 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.UTILITY_SHADOW_RUNGS = exports.SHADOW_UTILITY_CLASS_PREFIX = exports.SHADOW_TOKEN_PREFIX = exports.ORIGAM_SHADOW_RUNGS = exports.MATERIAL_ELEVATION_TOP_RUNG = exports.MATERIAL_ELEVATION_LADDER = exports.ELEVATION_LEGACY_BG_COLOR = exports.ELEVATION_BG_COLOR_DEPRECATION_WARNING = exports.ELEVATED_CLASS_SUFFIX = exports.CUSTOM_BOX_SHADOW_REGEX = void 0;
|
|
6
|
+
exports.UTILITY_SHADOW_RUNGS = exports.SHADOW_UTILITY_CLASS_PREFIX = exports.SHADOW_TOKEN_PREFIX = exports.SHADOW_RUNG_FALLBACK = exports.ORIGAM_SHADOW_RUNGS = exports.MATERIAL_ELEVATION_TOP_RUNG = exports.MATERIAL_ELEVATION_LADDER = exports.ELEVATION_LEGACY_BG_COLOR = exports.ELEVATION_BG_COLOR_DEPRECATION_WARNING = exports.ELEVATED_CLASS_SUFFIX = exports.CUSTOM_BOX_SHADOW_REGEX = void 0;
|
|
7
7
|
const ORIGAM_SHADOW_RUNGS = exports.ORIGAM_SHADOW_RUNGS = /* @__PURE__ */new Set(["none", "xs", "sm", "md", "lg", "xl", "2xl", "3xl"]);
|
|
8
8
|
const UTILITY_SHADOW_RUNGS = exports.UTILITY_SHADOW_RUNGS = /* @__PURE__ */new Set(["none", "xs", "sm", "md", "lg", "xl"]);
|
|
9
|
+
const SHADOW_RUNG_FALLBACK = exports.SHADOW_RUNG_FALLBACK = {
|
|
10
|
+
"2xl": "var(--origam-shadow---xl)",
|
|
11
|
+
"3xl": "var(--origam-shadow---xl)"
|
|
12
|
+
};
|
|
9
13
|
const MATERIAL_ELEVATION_LADDER = exports.MATERIAL_ELEVATION_LADDER = [{
|
|
10
14
|
maxLevel: 0,
|
|
11
15
|
rung: "none"
|
|
@@ -18,10 +18,60 @@ export declare const ORIGAM_SHADOW_RUNGS: ReadonlySet<string>;
|
|
|
18
18
|
* @description
|
|
19
19
|
* Subset of shadow rungs for which a global utility class exists in
|
|
20
20
|
* `src/assets/css/tokens/origam-utilities.css` (Phase 1 manifest).
|
|
21
|
-
* `2xl` and `3xl` are not
|
|
22
|
-
*
|
|
21
|
+
* `2xl` and `3xl` are not emitted as utilities — they take the
|
|
22
|
+
* inline-style path instead.
|
|
23
|
+
*
|
|
24
|
+
* @description
|
|
25
|
+
* ⚠️ This comment used to say they « fall back » to that path. The word
|
|
26
|
+
* was reassuring for nothing: the inline path emitted a BARE
|
|
27
|
+
* `var(--origam-shadow---2xl)`, and no sheet declares that token, so the
|
|
28
|
+
* repli led to an unresolvable reference rather than to a value (#813).
|
|
29
|
+
* The declaration then lost at computed-value time — and since it had
|
|
30
|
+
* ALREADY won the cascade, it did not cede to the component's own rule,
|
|
31
|
+
* it ERASED it. See {@link SHADOW_RUNG_FALLBACK}.
|
|
23
32
|
********************************************************/
|
|
24
33
|
export declare const UTILITY_SHADOW_RUNGS: ReadonlySet<string>;
|
|
34
|
+
/*********************************************************
|
|
35
|
+
* SHADOW_RUNG_FALLBACK
|
|
36
|
+
*
|
|
37
|
+
* @description
|
|
38
|
+
* Second argument of the `var()` emitted by `useElevation`, for the rungs
|
|
39
|
+
* `ORIGAM_SHADOW_RUNGS` accepts but NO sheet declares. Keyed by rung; a
|
|
40
|
+
* rung absent from this map is emitted as a bare `var()` because its token
|
|
41
|
+
* genuinely exists.
|
|
42
|
+
*
|
|
43
|
+
* @description
|
|
44
|
+
* ⛔ #813 — `2xl` and `3xl` are accepted by the prop and declared nowhere.
|
|
45
|
+
* Measured in Chromium: a component rule `rgba(0,0,0,.9) 0 1px 2px`
|
|
46
|
+
* computed `none` once `elevation="2xl"` was passed. The unresolvable
|
|
47
|
+
* reference does not merely fail to paint, it DESTROYS the shadow the
|
|
48
|
+
* component already had.
|
|
49
|
+
*
|
|
50
|
+
* @description
|
|
51
|
+
* The fallback targets `xl`, the top declared rung. Consequence, and it is
|
|
52
|
+
* deliberate: **`2xl` and `3xl` render exactly like `xl`** — they stop
|
|
53
|
+
* erasing, they do not become two extra rungs. Declaring real `2xl` / `3xl`
|
|
54
|
+
* tokens is a DESIGN decision, not a bug fix: the ladder has no derivable
|
|
55
|
+
* progression (`md` is a different family — a 1px ring plus a soft shadow)
|
|
56
|
+
* and `xl` is already the top of the Material 0..24 scale this DS maps
|
|
57
|
+
* (`MATERIAL_ELEVATION_TOP_RUNG`). There is no rung above to borrow from.
|
|
58
|
+
* The day those tokens are declared, this fallback goes inert on its own —
|
|
59
|
+
* nothing here has to be undone.
|
|
60
|
+
*
|
|
61
|
+
* @description
|
|
62
|
+
* ⚠️ The fallback MUST be a real shadow. `var(--origam-shadow---2xl, none)`
|
|
63
|
+
* was measured too: the declaration becomes valid but computes `none`,
|
|
64
|
+
* i.e. visually identical to the defect. A `none` fallback fixes nothing.
|
|
65
|
+
*
|
|
66
|
+
* @description
|
|
67
|
+
* Mirrors the intent of `UTILITY_RADIUS_FALLBACK` (`spacing.const.ts`),
|
|
68
|
+
* which is why `useRounded` never had this defect. It deliberately does NOT
|
|
69
|
+
* mirror its SHAPE: that map gives every rung a hard literal (`md: '8px'`),
|
|
70
|
+
* which for a 3-layer box-shadow would mean copying the token values into
|
|
71
|
+
* TypeScript — duplication plus guaranteed drift the first time a designer
|
|
72
|
+
* retunes `xl`. A var-to-var fallback carries no value at all.
|
|
73
|
+
********************************************************/
|
|
74
|
+
export declare const SHADOW_RUNG_FALLBACK: Readonly<Record<string, string>>;
|
|
25
75
|
/*********************************************************
|
|
26
76
|
* MATERIAL_ELEVATION_LADDER
|
|
27
77
|
*
|
|
@@ -16,6 +16,10 @@ export const UTILITY_SHADOW_RUNGS = /* @__PURE__ */ new Set([
|
|
|
16
16
|
"lg",
|
|
17
17
|
"xl"
|
|
18
18
|
]);
|
|
19
|
+
export const SHADOW_RUNG_FALLBACK = {
|
|
20
|
+
"2xl": "var(--origam-shadow---xl)",
|
|
21
|
+
"3xl": "var(--origam-shadow---xl)"
|
|
22
|
+
};
|
|
19
23
|
export const MATERIAL_ELEVATION_LADDER = [
|
|
20
24
|
{ maxLevel: 0, rung: "none" },
|
|
21
25
|
{ maxLevel: 1, rung: "xs" },
|
|
@@ -36,6 +36,16 @@ const RIPPLE_OPTIONS = exports.RIPPLE_OPTIONS = {
|
|
|
36
36
|
x: 0,
|
|
37
37
|
y: 0
|
|
38
38
|
};
|
|
39
|
+
function scheduleRippleTimer(el, cb, delay) {
|
|
40
|
+
const store = el._ripple;
|
|
41
|
+
if (!store) return;
|
|
42
|
+
const id = setTimeout(() => {
|
|
43
|
+
store.timers?.delete(id);
|
|
44
|
+
cb();
|
|
45
|
+
}, delay);
|
|
46
|
+
store.timers ??= /* @__PURE__ */new Set();
|
|
47
|
+
store.timers.add(id);
|
|
48
|
+
}
|
|
39
49
|
const RIPPLES = exports.RIPPLES = {
|
|
40
50
|
show(e, el, value = {}) {
|
|
41
51
|
if (!el?._ripple?.enabled) {
|
|
@@ -70,7 +80,7 @@ const RIPPLES = exports.RIPPLES = {
|
|
|
70
80
|
animation.classList.add("origam-ripple__animation--visible");
|
|
71
81
|
(0, _ripple.rippleTransform)(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`);
|
|
72
82
|
animation.dataset.activated = String(performance.now());
|
|
73
|
-
|
|
83
|
+
scheduleRippleTimer(el, () => {
|
|
74
84
|
animation.classList.remove("origam-ripple__animation--enter");
|
|
75
85
|
animation.classList.add("origam-ripple__animation--in");
|
|
76
86
|
(0, _ripple.rippleTransform)(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`);
|
|
@@ -84,10 +94,10 @@ const RIPPLES = exports.RIPPLES = {
|
|
|
84
94
|
if (animation.dataset?.isHiding) return;else animation.dataset.isHiding = "true";
|
|
85
95
|
const diff = performance.now() - Number(animation.dataset.activated);
|
|
86
96
|
const delay = Math.max(250 - diff, 0);
|
|
87
|
-
|
|
97
|
+
scheduleRippleTimer(el, () => {
|
|
88
98
|
animation.classList.remove("origam-ripple__animation--in");
|
|
89
99
|
animation.classList.add("origam-ripple__animation--out");
|
|
90
|
-
|
|
100
|
+
scheduleRippleTimer(el, () => {
|
|
91
101
|
const ripples2 = el.getElementsByClassName("origam-ripple__animation");
|
|
92
102
|
if (ripples2.length === 1 && el.dataset.previousPosition) {
|
|
93
103
|
el.style.position = el.dataset.previousPosition;
|
|
@@ -30,6 +30,16 @@ export const RIPPLE_OPTIONS = {
|
|
|
30
30
|
x: 0,
|
|
31
31
|
y: 0
|
|
32
32
|
};
|
|
33
|
+
function scheduleRippleTimer(el, cb, delay) {
|
|
34
|
+
const store = el._ripple;
|
|
35
|
+
if (!store) return;
|
|
36
|
+
const id = setTimeout(() => {
|
|
37
|
+
store.timers?.delete(id);
|
|
38
|
+
cb();
|
|
39
|
+
}, delay);
|
|
40
|
+
store.timers ??= /* @__PURE__ */ new Set();
|
|
41
|
+
store.timers.add(id);
|
|
42
|
+
}
|
|
33
43
|
export const RIPPLES = {
|
|
34
44
|
show(e, el, value = {}) {
|
|
35
45
|
if (!el?._ripple?.enabled) {
|
|
@@ -57,7 +67,7 @@ export const RIPPLES = {
|
|
|
57
67
|
animation.classList.add("origam-ripple__animation--visible");
|
|
58
68
|
rippleTransform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`);
|
|
59
69
|
animation.dataset.activated = String(performance.now());
|
|
60
|
-
|
|
70
|
+
scheduleRippleTimer(el, () => {
|
|
61
71
|
animation.classList.remove("origam-ripple__animation--enter");
|
|
62
72
|
animation.classList.add("origam-ripple__animation--in");
|
|
63
73
|
rippleTransform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`);
|
|
@@ -72,10 +82,10 @@ export const RIPPLES = {
|
|
|
72
82
|
else animation.dataset.isHiding = "true";
|
|
73
83
|
const diff = performance.now() - Number(animation.dataset.activated);
|
|
74
84
|
const delay = Math.max(250 - diff, 0);
|
|
75
|
-
|
|
85
|
+
scheduleRippleTimer(el, () => {
|
|
76
86
|
animation.classList.remove("origam-ripple__animation--in");
|
|
77
87
|
animation.classList.add("origam-ripple__animation--out");
|
|
78
|
-
|
|
88
|
+
scheduleRippleTimer(el, () => {
|
|
79
89
|
const ripples2 = el.getElementsByClassName("origam-ripple__animation");
|
|
80
90
|
if (ripples2.length === 1 && el.dataset.previousPosition) {
|
|
81
91
|
el.style.position = el.dataset.previousPosition;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.RATING_FIELD_ROOT_SELECTOR = exports.RATING_FIELD_MUTATING_KEYS = exports.RATING_FIELD_ENABLED_RADIO_SELECTOR = void 0;
|
|
7
|
+
var _hotkey = require("../../enums/Commons/hotkey.enum.cjs");
|
|
8
|
+
const RATING_FIELD_MUTATING_KEYS = exports.RATING_FIELD_MUTATING_KEYS = [_hotkey.KEYBOARD_VALUES.UP, _hotkey.KEYBOARD_VALUES.DOWN, _hotkey.KEYBOARD_VALUES.LEFT, _hotkey.KEYBOARD_VALUES.RIGHT, _hotkey.KEYBOARD_VALUES.HOME, _hotkey.KEYBOARD_VALUES.END, _hotkey.KEYBOARD_VALUES.EMPTY];
|
|
9
|
+
const RATING_FIELD_ENABLED_RADIO_SELECTOR = exports.RATING_FIELD_ENABLED_RADIO_SELECTOR = 'input[type="radio"]:not(:disabled)';
|
|
10
|
+
const RATING_FIELD_ROOT_SELECTOR = exports.RATING_FIELD_ROOT_SELECTOR = ".origam-rating-field";
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/*********************************************************
|
|
2
|
+
* RATING_FIELD_MUTATING_KEYS
|
|
3
|
+
*
|
|
4
|
+
* @description
|
|
5
|
+
* Keys whose NATIVE default action changes the selection of a radio group.
|
|
6
|
+
* Measured in Chromium on a bare `<input type="radio">` group, no JS at all:
|
|
7
|
+
* `ArrowRight` / `ArrowDown` move focus AND check the next radio (wrapping),
|
|
8
|
+
* `ArrowLeft` / `ArrowUp` do the same backwards, `Space` checks the focused
|
|
9
|
+
* radio when it is not already checked, and `Home` / `End` / `Enter` are
|
|
10
|
+
* no-ops.
|
|
11
|
+
*
|
|
12
|
+
* @description
|
|
13
|
+
* All of the above are cancelable from a `keydown` listener — verified: with
|
|
14
|
+
* `preventDefault()` on every `Arrow*`, focus and `:checked` both stayed put.
|
|
15
|
+
* That is what lets `readonly` keep the group REACHABLE (focus visible,
|
|
16
|
+
* announced) while staying inert, instead of dropping it out of the tab order.
|
|
17
|
+
*
|
|
18
|
+
* @description
|
|
19
|
+
* ⚠️ `Space` is `' '` in `KeyboardEvent.key`, NOT `'Space'` — that spelling is
|
|
20
|
+
* `KeyboardEvent.code`. `KEYBOARD_VALUES.SPACE` carries the `code` form and
|
|
21
|
+
* would never match here; `KEYBOARD_VALUES.EMPTY` is the `key` one.
|
|
22
|
+
********************************************************/
|
|
23
|
+
export declare const RATING_FIELD_MUTATING_KEYS: string[];
|
|
24
|
+
/*********************************************************
|
|
25
|
+
* RATING_FIELD_ENABLED_RADIO_SELECTOR / RATING_FIELD_ROOT_SELECTOR
|
|
26
|
+
*
|
|
27
|
+
* @description
|
|
28
|
+
* The radios a keyboard user can actually reach inside the group. `:disabled`
|
|
29
|
+
* radios are excluded by the browser from both the tab order and the arrow
|
|
30
|
+
* cycle, so `Home` / `End` must skip them too.
|
|
31
|
+
*
|
|
32
|
+
* @description
|
|
33
|
+
* The root BEM block, used to walk up from a focused radio to its group.
|
|
34
|
+
********************************************************/
|
|
35
|
+
export declare const RATING_FIELD_ENABLED_RADIO_SELECTOR = "input[type=\"radio\"]:not(:disabled)";
|
|
36
|
+
export declare const RATING_FIELD_ROOT_SELECTOR = ".origam-rating-field";
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { KEYBOARD_VALUES } from "../../enums/Commons/hotkey.enum.js";
|
|
2
|
+
export const RATING_FIELD_MUTATING_KEYS = [
|
|
3
|
+
KEYBOARD_VALUES.UP,
|
|
4
|
+
KEYBOARD_VALUES.DOWN,
|
|
5
|
+
KEYBOARD_VALUES.LEFT,
|
|
6
|
+
KEYBOARD_VALUES.RIGHT,
|
|
7
|
+
KEYBOARD_VALUES.HOME,
|
|
8
|
+
KEYBOARD_VALUES.END,
|
|
9
|
+
KEYBOARD_VALUES.EMPTY
|
|
10
|
+
];
|
|
11
|
+
export const RATING_FIELD_ENABLED_RADIO_SELECTOR = 'input[type="radio"]:not(:disabled)';
|
|
12
|
+
export const RATING_FIELD_ROOT_SELECTOR = ".origam-rating-field";
|
|
@@ -630,6 +630,17 @@ Object.keys(_slideGroup).forEach(function (key) {
|
|
|
630
630
|
}
|
|
631
631
|
});
|
|
632
632
|
});
|
|
633
|
+
var _ratingField = require("./RatingField/rating-field.const.cjs");
|
|
634
|
+
Object.keys(_ratingField).forEach(function (key) {
|
|
635
|
+
if (key === "default" || key === "__esModule") return;
|
|
636
|
+
if (key in exports && exports[key] === _ratingField[key]) return;
|
|
637
|
+
Object.defineProperty(exports, key, {
|
|
638
|
+
enumerable: true,
|
|
639
|
+
get: function () {
|
|
640
|
+
return _ratingField[key];
|
|
641
|
+
}
|
|
642
|
+
});
|
|
643
|
+
});
|
|
633
644
|
var _textField = require("./TextField/text-field.const.cjs");
|
|
634
645
|
Object.keys(_textField).forEach(function (key) {
|
|
635
646
|
if (key === "default" || key === "__esModule") return;
|
|
@@ -55,6 +55,7 @@ export * from './Form/form.const';
|
|
|
55
55
|
export * from './Input/input.const';
|
|
56
56
|
export * from './Chip/chip-group.const';
|
|
57
57
|
export * from './Slide/slide-group.const';
|
|
58
|
+
export * from './RatingField/rating-field.const';
|
|
58
59
|
export * from './TextField/text-field.const';
|
|
59
60
|
export * from './TextareaField/textarea-field.const';
|
|
60
61
|
export * from './EmptyState/empty-state.const';
|
package/dist/src/consts/index.js
CHANGED
|
@@ -55,6 +55,7 @@ export * from "./Form/form.const.js";
|
|
|
55
55
|
export * from "./Input/input.const.js";
|
|
56
56
|
export * from "./Chip/chip-group.const.js";
|
|
57
57
|
export * from "./Slide/slide-group.const.js";
|
|
58
|
+
export * from "./RatingField/rating-field.const.js";
|
|
58
59
|
export * from "./TextField/text-field.const.js";
|
|
59
60
|
export * from "./TextareaField/textarea-field.const.js";
|
|
60
61
|
export * from "./EmptyState/empty-state.const.js";
|
|
@@ -58,6 +58,8 @@ const ClickOutside = exports.ClickOutside = {
|
|
|
58
58
|
},
|
|
59
59
|
unmounted(el, binding) {
|
|
60
60
|
if (!el._clickOutside) return;
|
|
61
|
+
for (const id of el._clickOutside.timers ?? []) clearTimeout(id);
|
|
62
|
+
el._clickOutside.timers?.clear();
|
|
61
63
|
(0, _clickOutside.handleShadow)(el, app => {
|
|
62
64
|
if (!app || !el._clickOutside?.[binding.instance.$.uid]) return;
|
|
63
65
|
const {
|
|
@@ -52,6 +52,8 @@ export const ClickOutside = {
|
|
|
52
52
|
},
|
|
53
53
|
unmounted(el, binding) {
|
|
54
54
|
if (!el._clickOutside) return;
|
|
55
|
+
for (const id of el._clickOutside.timers ?? []) clearTimeout(id);
|
|
56
|
+
el._clickOutside.timers?.clear();
|
|
55
57
|
handleShadow(el, (app) => {
|
|
56
58
|
if (!app || !el._clickOutside?.[binding.instance.$.uid]) return;
|
|
57
59
|
const { onClick, onMousedown } = el._clickOutside[binding.instance.$.uid];
|
|
@@ -10,6 +10,8 @@ const Ripple = exports.Ripple = {
|
|
|
10
10
|
(0, _ripple.updateRipple)(el, binding, false);
|
|
11
11
|
},
|
|
12
12
|
unmounted: el => {
|
|
13
|
+
for (const id of el._ripple?.timers ?? []) clearTimeout(id);
|
|
14
|
+
el._ripple?.timers?.clear();
|
|
13
15
|
delete el._ripple;
|
|
14
16
|
(0, _ripple.rippleRemoveListeners)(el);
|
|
15
17
|
},
|
|
@@ -1,17 +1,26 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Interaction role for state-aware color resolution.
|
|
3
3
|
*
|
|
4
|
-
* Used by `useColorEffect` (and
|
|
5
|
-
* rung / math-derivation for a given visual state:
|
|
4
|
+
* Used by `useColorEffect` / `useStateEffect` (and their helpers) to pick
|
|
5
|
+
* the right token rung / math-derivation for a given visual state:
|
|
6
6
|
*
|
|
7
7
|
* • `default` → resting bgColor (no transformation)
|
|
8
8
|
* • `hover` → cascading `var(bgHover, color-mix(bg, black 20%))`
|
|
9
9
|
* • `active` → cascading `var(bgActive, color-mix(bg, black 30%))`
|
|
10
|
-
*
|
|
10
|
+
*
|
|
11
|
+
* ⛔ There is deliberately NO `disabled` member — #823. Disabled is an
|
|
12
|
+
* OPACITY VEIL in this DS, never a token swap: both composables compute
|
|
13
|
+
* `bgRole` from `isHover` / `isActive` alone and read `isDisabled` only to
|
|
14
|
+
* keep the dependency wired. A `disabled` rung would resolve
|
|
15
|
+
* `--origam-color__feedback--{intent}---bgDisabled` / `---fgDisabled`,
|
|
16
|
+
* which NO sheet declares for the four `feedback` intents (`action.*` has
|
|
17
|
+
* them, `feedback.*` does not — see `docs/integrations/theming-authoring.md`).
|
|
18
|
+
* A `var()` that fails at computed-value time does not fall back: the
|
|
19
|
+
* declaration has already won the cascade, becomes `unset`, and ERASES the
|
|
20
|
+
* surface instead of yielding it (the #813 / #568 mechanism).
|
|
11
21
|
*/
|
|
12
22
|
export declare enum BG_FG_ROLE {
|
|
13
23
|
DEFAULT = "default",
|
|
14
24
|
HOVER = "hover",
|
|
15
|
-
ACTIVE = "active"
|
|
16
|
-
DISABLED = "disabled"
|
|
25
|
+
ACTIVE = "active"
|
|
17
26
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Well-known bottom-sheet snap-point ids understood by `<OrigamSheet>`
|
|
3
3
|
* (`swipeable + side="bottom"`) out of the box.
|
|
4
4
|
*
|
|
5
|
-
* `TSheetSnapId` widens this set with `
|
|
5
|
+
* `TSheetSnapId` widens this set with `TAnyString` so brand
|
|
6
6
|
* integrations can add their own rungs without forking — the enum only
|
|
7
7
|
* names the ones the component ships defaults for.
|
|
8
8
|
*/
|
|
@@ -98,8 +98,12 @@ export interface IChartCartesianProps extends IChartBaseProps {
|
|
|
98
98
|
* zoomResetLabel
|
|
99
99
|
*
|
|
100
100
|
* @description
|
|
101
|
-
*
|
|
102
|
-
*
|
|
101
|
+
* Name of the "Reset zoom" control shown when `zoomable` is active
|
|
102
|
+
* and the plot is currently zoomed. Drives BOTH the `aria-label`
|
|
103
|
+
* and the VISIBLE text of the button — until #764 the visible text
|
|
104
|
+
* was a hardcoded English literal, so a French consumer read
|
|
105
|
+
* "Reset zoom" on a control whose accessible name already said
|
|
106
|
+
* "Réinitialiser le zoom".
|
|
103
107
|
* Carries a locale key, not final text — it is resolved through the
|
|
104
108
|
* DS `t()` mechanism. Defaults to `'origam.chart.zoom.reset_aria_label'`
|
|
105
109
|
* (#477).
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import type { ComponentPublicInstance } from 'vue';
|
|
2
2
|
import type { IDelayProps } from './delay.interface';
|
|
3
|
+
import type { TAnyString } from '../../types/Commons/commons.type';
|
|
3
4
|
export interface IActivatorProps extends IDelayProps {
|
|
4
|
-
target?: 'parent' | 'cursor' |
|
|
5
|
-
activator?: 'parent' | 'cursor' |
|
|
5
|
+
target?: 'parent' | 'cursor' | TAnyString | Element | ComponentPublicInstance | [x: number, y: number] | undefined;
|
|
6
|
+
activator?: 'parent' | 'cursor' | TAnyString | Element | ComponentPublicInstance;
|
|
6
7
|
activatorProps?: any;
|
|
7
8
|
openOnClick?: boolean;
|
|
8
9
|
openOnContextMenu?: boolean;
|
|
@@ -1,10 +1,37 @@
|
|
|
1
1
|
import type { TIcon } from '../../types/Icon/icon.type';
|
|
2
|
+
/*********************************************************
|
|
3
|
+
* IAdjacentProps
|
|
4
|
+
*
|
|
5
|
+
* @description
|
|
6
|
+
* Media and accessible name of a component's OUTER prepend/append zone.
|
|
7
|
+
*
|
|
8
|
+
* @description
|
|
9
|
+
* ⛔ issue #747 — `prependAriaLabel` / `appendAriaLabel` are what allow the
|
|
10
|
+
* zone to become a real `role="button"` tab stop when `click:prepend` /
|
|
11
|
+
* `click:append` is wired. Without one, `useAccessibleCommand` emits NO role
|
|
12
|
+
* and NO tabindex rather than an anonymous ARIA button (WCAG 2.1 4.1.2), and
|
|
13
|
+
* warns in development. Each accepts an i18n key or a literal string — the
|
|
14
|
+
* same contract as the existing `closeLabel` on Alert / Chip / Dialog.
|
|
15
|
+
********************************************************/
|
|
2
16
|
export interface IAdjacentProps {
|
|
3
17
|
appendAvatar?: string;
|
|
4
18
|
appendIcon?: TIcon;
|
|
5
19
|
prependAvatar?: string;
|
|
6
20
|
prependIcon?: TIcon;
|
|
21
|
+
prependAriaLabel?: string;
|
|
22
|
+
appendAriaLabel?: string;
|
|
7
23
|
}
|
|
24
|
+
/*********************************************************
|
|
25
|
+
* IAdjacentInnerProps
|
|
26
|
+
*
|
|
27
|
+
* @description
|
|
28
|
+
* Same surface for the INNER zone — the one rendered inside the field
|
|
29
|
+
* chrome rather than outside it.
|
|
30
|
+
*
|
|
31
|
+
* @description
|
|
32
|
+
* ⛔ issue #747 — `prependInnerAriaLabel` / `appendInnerAriaLabel` carry the
|
|
33
|
+
* accessible name, under exactly the contract described on `IAdjacentProps`.
|
|
34
|
+
********************************************************/
|
|
8
35
|
export interface IAdjacentInnerProps {
|
|
9
36
|
appendInnerAvatar?: string;
|
|
10
37
|
appendInnerIcon?: TIcon;
|
|
@@ -12,6 +39,8 @@ export interface IAdjacentInnerProps {
|
|
|
12
39
|
prependInnerIcon?: TIcon;
|
|
13
40
|
clearIcon?: TIcon;
|
|
14
41
|
clearable?: boolean;
|
|
42
|
+
prependInnerAriaLabel?: string;
|
|
43
|
+
appendInnerAriaLabel?: string;
|
|
15
44
|
}
|
|
16
45
|
/** Click events emitted when the user clicks the prepend/append slots. */
|
|
17
46
|
export interface IAdjacentEmits {
|
|
@@ -1,4 +1,15 @@
|
|
|
1
1
|
import type { ComponentInternalInstance, ComputedRef, Ref } from 'vue';
|
|
2
|
+
/*********************************************************
|
|
3
|
+
* prev / next (IGroupProvide)
|
|
4
|
+
*
|
|
5
|
+
* @description
|
|
6
|
+
* ⛔ #786 — renvoient l'id RETENU, ou `undefined` si rien n'a bouge
|
|
7
|
+
* (groupe vide, ou seul candidat desactive). Un appelant ne peut PAS
|
|
8
|
+
* relire `selected` juste apres l'appel : quand le modele est controle
|
|
9
|
+
* (le consommateur a pose un `v-model`), le getter de `useVModel` rend
|
|
10
|
+
* `props[prop]` — donc encore l'ANCIEN id. Voir le bloc `step` dans
|
|
11
|
+
* `group.composable.ts` pour la mesure.
|
|
12
|
+
********************************************************/
|
|
2
13
|
/*********************************************************
|
|
3
14
|
* domId (IGroupItem / IGroupProvide.items[number])
|
|
4
15
|
*
|
|
@@ -21,8 +32,8 @@ export interface IGroupProvide {
|
|
|
21
32
|
select: (id: number, value: boolean) => void;
|
|
22
33
|
selected: Ref<Readonly<Array<number>>>;
|
|
23
34
|
isSelected: (id: number) => boolean;
|
|
24
|
-
prev: () =>
|
|
25
|
-
next: () =>
|
|
35
|
+
prev: () => number | undefined;
|
|
36
|
+
next: () => number | undefined;
|
|
26
37
|
selectedClass: Ref<string | undefined>;
|
|
27
38
|
items: ComputedRef<Array<{
|
|
28
39
|
id: number;
|
|
@@ -31,6 +31,22 @@ export interface IRippleHtmlElementRipple {
|
|
|
31
31
|
isTouch?: boolean;
|
|
32
32
|
showTimer?: number;
|
|
33
33
|
showTimerCommit?: null | (() => void);
|
|
34
|
+
/*********************************************************
|
|
35
|
+
* Timers d'animation en vol (#753)
|
|
36
|
+
*
|
|
37
|
+
* @description
|
|
38
|
+
* Les trois `setTimeout` de `RIPPLES.show` / `RIPPLES.hide`
|
|
39
|
+
* orchestrent les phases de l'animation (`--enter` → `--in` →
|
|
40
|
+
* `--out`) et retirent le noeud a la fin. Rien ne les annulait au
|
|
41
|
+
* `unmounted` de la directive, alors que la cadence la plus longue
|
|
42
|
+
* (250 ms d'attente + 300 ms de sortie) depasse largement la duree de
|
|
43
|
+
* vie d'un bouton qui disparait sur son propre clic.
|
|
44
|
+
*
|
|
45
|
+
* @description
|
|
46
|
+
* La portee est l'ELEMENT (directive), pas un scope Vue : les handles
|
|
47
|
+
* vivent donc ici, avec le reste de l'etat du ripple.
|
|
48
|
+
********************************************************/
|
|
49
|
+
timers?: Set<ReturnType<typeof setTimeout>>;
|
|
34
50
|
}
|
|
35
51
|
export interface IRippleElement extends Element {
|
|
36
52
|
dataset?: IRippleElementDataset;
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import type { TScrollBehavior } from '../../types/Toolbar/toolbar.type';
|
|
2
2
|
import type { TScrollStrategy, TScrollStrategyFn } from '../../types/Commons/scroll.type';
|
|
3
|
+
import type { TAnyString } from '../../types/Commons/commons.type';
|
|
3
4
|
import type { Ref } from 'vue';
|
|
4
5
|
export interface IScrollProps {
|
|
5
6
|
/**
|
|
6
7
|
* Space-separated list of scroll behaviours, e.g. `"hide inverted"` or
|
|
7
8
|
* `"elevate active"`. `inverted` is a MODIFIER that flips the trigger of
|
|
8
9
|
* `hide` / `collapse` / `elevate` and does nothing on its own. The
|
|
9
|
-
* `
|
|
10
|
+
* `TAnyString` member keeps single-token autocomplete while allowing
|
|
10
11
|
* multi-token combinations.
|
|
11
12
|
*/
|
|
12
|
-
scrollBehavior?: TScrollBehavior |
|
|
13
|
+
scrollBehavior?: TScrollBehavior | TAnyString;
|
|
13
14
|
scrollTarget?: string;
|
|
14
15
|
scrollThreshold?: string | number;
|
|
15
16
|
}
|
|
@@ -2,7 +2,7 @@ import { ALIGN } from '../../enums/Commons/align.enum';
|
|
|
2
2
|
import type { IDataTableItem } from './items.interface';
|
|
3
3
|
import type { TDataTableCompareFunction, TDataTableHeaderCell } from '../../types/DataTable/data-table.type';
|
|
4
4
|
import type { TFilterFunction } from '../../types/Commons/filters.type';
|
|
5
|
-
import type { TSelectItemKey } from '../../types/Commons/commons.type';
|
|
5
|
+
import type { TAnyString, TSelectItemKey } from '../../types/Commons/commons.type';
|
|
6
6
|
/*********************************************************
|
|
7
7
|
* IDataTableHeaderProps / IDataTableHeader / IInternalDataTableHeader
|
|
8
8
|
*
|
|
@@ -18,7 +18,7 @@ export interface IDataTableHeaderProps {
|
|
|
18
18
|
items?: Array<IDataTableItem>;
|
|
19
19
|
}
|
|
20
20
|
export interface IDataTableHeader<T = any> {
|
|
21
|
-
key?: 'data-table-group' | 'data-table-select' | 'data-table-expand' |
|
|
21
|
+
key?: 'data-table-group' | 'data-table-select' | 'data-table-expand' | TAnyString;
|
|
22
22
|
value?: TSelectItemKey<T>;
|
|
23
23
|
title?: string;
|
|
24
24
|
fixed?: boolean;
|
|
@@ -2,9 +2,10 @@ import type { ICalendarProps, IDay } from './date-picker-calendar.interface';
|
|
|
2
2
|
import type { IColorProps } from '../Commons/color.interface';
|
|
3
3
|
import type { ICommonsComponentProps } from '../Commons/commons.interface';
|
|
4
4
|
import type { TTransitionProps } from '../../types/Transition/transition.type';
|
|
5
|
+
import type { TAnyString } from '../../types/Commons/commons.type';
|
|
5
6
|
export interface IDatePickerMonthProps extends ICommonsComponentProps, IColorProps, ICalendarProps {
|
|
6
7
|
hideWeekdays?: boolean;
|
|
7
|
-
multiple?: boolean | number |
|
|
8
|
+
multiple?: boolean | number | TAnyString;
|
|
8
9
|
range?: boolean;
|
|
9
10
|
showWeek?: boolean;
|
|
10
11
|
transition?: TTransitionProps;
|
|
@@ -7,7 +7,34 @@ export interface IMenuProvide {
|
|
|
7
7
|
unregister(): void;
|
|
8
8
|
closeParents(): void;
|
|
9
9
|
}
|
|
10
|
-
|
|
10
|
+
/*********************************************************
|
|
11
|
+
* IMenuProps
|
|
12
|
+
*
|
|
13
|
+
* @description
|
|
14
|
+
* ⛔ OUTER adjacent surface stripped (#756). `IListItemProps` carries
|
|
15
|
+
* `IAdjacentProps` (`prependIcon` / `appendIcon` / `prependAvatar` /
|
|
16
|
+
* `appendAvatar` / `prependAriaLabel` / `appendAriaLabel`) because a LIST ROW
|
|
17
|
+
* renders that zone. `<OrigamMenu>` does not: it renders rows from `items`,
|
|
18
|
+
* and each row gets its media from the ITEM object (`{ title, prependIcon }`),
|
|
19
|
+
* never from the menu's own props — `menuItemProps()` spreads the item, and
|
|
20
|
+
* `overlayProps` is filtered down to what `<origam-overlay>` declares.
|
|
21
|
+
*
|
|
22
|
+
* @description
|
|
23
|
+
* Measured, jsdom, sentinel values passed as props and grepped out of
|
|
24
|
+
* `document.body.innerHTML`: `<origam-list-item>` renders
|
|
25
|
+
* `.origam-list-item__prepend` / `__append` and carries the name;
|
|
26
|
+
* `<origam-menu model-value items=…>` renders NO such node at all. The four
|
|
27
|
+
* media props were already recorded as inert in
|
|
28
|
+
* `guards/baseline/unconsumed-props.json`; the two name props would have
|
|
29
|
+
* joined them, so the whole surface goes instead.
|
|
30
|
+
*
|
|
31
|
+
* @description
|
|
32
|
+
* ⚠️ The REST of `IListItemProps` is still inherited and still largely inert
|
|
33
|
+
* here (33 further entries in that same baseline: `href`, `to`, `tag`,
|
|
34
|
+
* `ripple`, `subtitle`, `lines`, `slim`…). Narrowing those is a separate,
|
|
35
|
+
* wider decision and is deliberately NOT done in this fix.
|
|
36
|
+
********************************************************/
|
|
37
|
+
export interface IMenuProps extends IOverlayProps, IListProps, Omit<IListItemProps, 'prependIcon' | 'appendIcon' | 'prependAvatar' | 'appendAvatar' | 'prependAriaLabel' | 'appendAriaLabel'> {
|
|
11
38
|
id?: string;
|
|
12
39
|
}
|
|
13
40
|
/** Emits fired by `<OrigamMenu>` — v-model on the open state, the
|
|
@@ -22,8 +22,28 @@ import type { TOtpInputFieldType } from '../../types/OtpInputField/otp-input-fie
|
|
|
22
22
|
* Only `fontSize` does (the visible `.origam-otp-input-field__field` cell).
|
|
23
23
|
* `Omit` strips the inherited surface back down before re-adding exactly
|
|
24
24
|
* what this component supports.
|
|
25
|
+
*
|
|
26
|
+
* @description
|
|
27
|
+
* ⛔ OUTER adjacent surface stripped for the SAME structural reason (#756).
|
|
28
|
+
* `IAdjacentProps` (`prependIcon` / `appendIcon` / `prependAvatar` /
|
|
29
|
+
* `appendAvatar` / `prependAriaLabel` / `appendAriaLabel`) is inherited from
|
|
30
|
+
* `IInputProps`, and the element that renders that zone — the
|
|
31
|
+
* `.origam-input__prepend` / `.origam-input__append` span in
|
|
32
|
+
* `OrigamInput.vue` — is never mounted here, exactly as the paragraph above
|
|
33
|
+
* says. Measured, jsdom, sentinel values passed as props and grepped out of
|
|
34
|
+
* `document.body.innerHTML`: `<origam-input>` and `<origam-text-field>` both
|
|
35
|
+
* render the zone and carry the name; `<origam-otp-input-field>` renders NO
|
|
36
|
+
* `origam-input__prepend` / `__append` node at all. The four media props were
|
|
37
|
+
* already recorded as inert in `guards/baseline/unconsumed-props.json`; the
|
|
38
|
+
* two name props would have joined them, so the whole surface goes instead.
|
|
39
|
+
*
|
|
40
|
+
* @description
|
|
41
|
+
* The INNER zone is untouched and is the one this component really has:
|
|
42
|
+
* `prependInnerAriaLabel` / `appendInnerAriaLabel` come through `IFieldProps`
|
|
43
|
+
* → `IAdjacentInnerProps`, reach `<origam-field>` via `fieldProps()`, and were
|
|
44
|
+
* measured PRESENT in the same sweep.
|
|
25
45
|
********************************************************/
|
|
26
|
-
export interface IOtpInputFieldProps extends Omit<IFieldProps, 'fontFamily' | 'fontWeight' | 'lineHeight' | 'letterSpacing'>, Omit<IInputProps, 'fontFamily' | 'fontWeight' | 'lineHeight' | 'letterSpacing'>, IVariantProps, Pick<ITypographyProps, 'fontSize'> {
|
|
46
|
+
export interface IOtpInputFieldProps extends Omit<IFieldProps, 'fontFamily' | 'fontWeight' | 'lineHeight' | 'letterSpacing'>, Omit<IInputProps, 'fontFamily' | 'fontWeight' | 'lineHeight' | 'letterSpacing' | 'prependIcon' | 'appendIcon' | 'prependAvatar' | 'appendAvatar' | 'prependAriaLabel' | 'appendAriaLabel'>, IVariantProps, Pick<ITypographyProps, 'fontSize'> {
|
|
27
47
|
autofocus?: boolean;
|
|
28
48
|
divider?: string;
|
|
29
49
|
focusAll?: boolean;
|