@riverty/web-components 6.2.1 → 6.3.1
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 +30 -0
- package/README.md +78 -0
- package/custom-elements.json +4 -0
- package/dist/cjs/index-BnETQtSf.js +16 -16
- package/dist/cjs/index.cjs.js +35 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/r-alert.cjs.entry.js +1 -1
- package/dist/cjs/r-badge.cjs.entry.js +3 -2
- package/dist/cjs/r-button.cjs.entry.js +1 -1
- package/dist/cjs/r-checkbox-group.cjs.entry.js +5 -0
- package/dist/cjs/r-checkbox.cjs.entry.js +9 -4
- package/dist/cjs/r-dialog.cjs.entry.js +2 -2
- package/dist/cjs/r-hint_2.cjs.entry.js +4 -4
- package/dist/cjs/r-icon-button_2.cjs.entry.js +43 -18
- package/dist/cjs/r-input-code.cjs.entry.js +11 -6
- package/dist/cjs/r-input-date.cjs.entry.js +11 -6
- package/dist/cjs/r-input-password.cjs.entry.js +8 -3
- package/dist/cjs/r-input-phone-number.cjs.entry.js +6 -6
- package/dist/cjs/r-input.cjs.entry.js +249 -33
- package/dist/cjs/r-pagination.cjs.entry.js +9 -3
- package/dist/cjs/r-panel.cjs.entry.js +2 -2
- package/dist/cjs/r-popover-action.cjs.entry.js +1 -1
- package/dist/cjs/r-popover-content.cjs.entry.js +1 -1
- package/dist/cjs/r-popover-headline.cjs.entry.js +1 -1
- package/dist/cjs/r-popover-trigger.cjs.entry.js +1 -1
- package/dist/cjs/r-popover.cjs.entry.js +2 -2
- package/dist/cjs/r-progress-bar.cjs.entry.js +1 -1
- package/dist/cjs/r-radio-button-description.cjs.entry.js +1 -1
- package/dist/cjs/r-radio-button-leading.cjs.entry.js +1 -1
- package/dist/cjs/r-radio-button-title.cjs.entry.js +1 -1
- package/dist/cjs/r-radio-button-trailing.cjs.entry.js +1 -1
- package/dist/cjs/r-radio-button.cjs.entry.js +5 -5
- package/dist/cjs/r-radio-group.cjs.entry.js +8 -5
- package/dist/cjs/r-select-option.cjs.entry.js +1 -1
- package/dist/cjs/r-select.cjs.entry.js +10 -4
- package/dist/cjs/r-skip-link.cjs.entry.js +1 -1
- package/dist/cjs/r-stepper-item.cjs.entry.js +2 -2
- package/dist/cjs/r-stepper.cjs.entry.js +1 -1
- package/dist/cjs/r-tab-panel.cjs.entry.js +1 -1
- package/dist/cjs/r-tab.cjs.entry.js +2 -2
- package/dist/cjs/r-tabs-list.cjs.entry.js +3 -3
- package/dist/cjs/r-tabs.cjs.entry.js +1 -1
- package/dist/cjs/r-toast-group.cjs.entry.js +1 -1
- package/dist/cjs/r-toast.cjs.entry.js +17 -9
- package/dist/cjs/web-components.cjs.js +1 -1
- package/dist/collection/components/alert/alert.css +1 -0
- package/dist/collection/components/badge/badge.css +10 -0
- package/dist/collection/components/badge/badge.js +5 -1
- package/dist/collection/components/button/button.js +1 -1
- package/dist/collection/components/checkbox/checkbox.js +30 -4
- package/dist/collection/components/checkbox-group/checkbox-group.js +26 -0
- package/dist/collection/components/dialog/dialog.js +2 -2
- package/dist/collection/components/hint/hint.js +2 -2
- package/dist/collection/components/icon-button/icon-button.js +3 -3
- package/dist/collection/components/input/exports.js +46 -0
- package/dist/collection/components/input/input.css +6 -0
- package/dist/collection/components/input/input.js +321 -32
- package/dist/collection/components/input-code/input-code.js +32 -6
- package/dist/collection/components/input-date/input-date.js +32 -6
- package/dist/collection/components/input-password/input-password.js +29 -3
- package/dist/collection/components/input-phone-number/input-phone-number.js +25 -6
- package/dist/collection/components/label/label.js +2 -2
- package/dist/collection/components/pagination/pagination.js +18 -3
- package/dist/collection/components/panel/panel.js +2 -2
- package/dist/collection/components/popover/popover.js +2 -2
- package/dist/collection/components/popover-action/popover-action.js +1 -1
- package/dist/collection/components/popover-content/popover-content.js +1 -1
- package/dist/collection/components/popover-headline/popover-headline.js +1 -1
- package/dist/collection/components/popover-trigger/popover-trigger.js +1 -1
- package/dist/collection/components/progress-bar/progress-bar.js +1 -1
- package/dist/collection/components/radio-button/radio-button.js +5 -5
- package/dist/collection/components/radio-button-description/radio-button-description.js +1 -1
- package/dist/collection/components/radio-button-leading/radio-button-leading.js +1 -1
- package/dist/collection/components/radio-button-title/radio-button-title.js +1 -1
- package/dist/collection/components/radio-button-trailing/radio-button-trailing.js +1 -1
- package/dist/collection/components/radio-group/radio-group.js +8 -5
- package/dist/collection/components/select/select.js +31 -4
- package/dist/collection/components/select-option/select-option.js +1 -1
- package/dist/collection/components/skip-link/skip-link.js +1 -1
- package/dist/collection/components/stepper/stepper.js +1 -1
- package/dist/collection/components/stepper-item/stepper-item.js +2 -2
- package/dist/collection/components/tab/tab.js +2 -2
- package/dist/collection/components/tab-panel/tab-panel.js +1 -1
- package/dist/collection/components/tabs/tabs.js +1 -1
- package/dist/collection/components/tabs-list/tabs-list.js +3 -3
- package/dist/collection/components/toast/toast.js +17 -9
- package/dist/collection/components/toast-group/toast-group.js +1 -1
- package/dist/collection/components/tooltip/tooltip.css +34 -63
- package/dist/collection/components/tooltip/tooltip.js +39 -14
- package/dist/collection/index.js +2 -1
- package/dist/collection/utils/version-checker.js +33 -0
- package/dist/esm/index-CTxpqopm.js +16 -16
- package/dist/esm/index.js +34 -0
- package/dist/esm/loader.js +1 -1
- package/dist/esm/r-alert.entry.js +1 -1
- package/dist/esm/r-badge.entry.js +3 -2
- package/dist/esm/r-button.entry.js +1 -1
- package/dist/esm/r-checkbox-group.entry.js +5 -0
- package/dist/esm/r-checkbox.entry.js +9 -4
- package/dist/esm/r-dialog.entry.js +2 -2
- package/dist/esm/r-hint_2.entry.js +4 -4
- package/dist/esm/r-icon-button_2.entry.js +43 -18
- package/dist/esm/r-input-code.entry.js +11 -6
- package/dist/esm/r-input-date.entry.js +11 -6
- package/dist/esm/r-input-password.entry.js +8 -3
- package/dist/esm/r-input-phone-number.entry.js +6 -6
- package/dist/esm/r-input.entry.js +249 -33
- package/dist/esm/r-pagination.entry.js +9 -3
- package/dist/esm/r-panel.entry.js +2 -2
- package/dist/esm/r-popover-action.entry.js +1 -1
- package/dist/esm/r-popover-content.entry.js +1 -1
- package/dist/esm/r-popover-headline.entry.js +1 -1
- package/dist/esm/r-popover-trigger.entry.js +1 -1
- package/dist/esm/r-popover.entry.js +2 -2
- package/dist/esm/r-progress-bar.entry.js +1 -1
- package/dist/esm/r-radio-button-description.entry.js +1 -1
- package/dist/esm/r-radio-button-leading.entry.js +1 -1
- package/dist/esm/r-radio-button-title.entry.js +1 -1
- package/dist/esm/r-radio-button-trailing.entry.js +1 -1
- package/dist/esm/r-radio-button.entry.js +5 -5
- package/dist/esm/r-radio-group.entry.js +8 -5
- package/dist/esm/r-select-option.entry.js +1 -1
- package/dist/esm/r-select.entry.js +10 -4
- package/dist/esm/r-skip-link.entry.js +1 -1
- package/dist/esm/r-stepper-item.entry.js +2 -2
- package/dist/esm/r-stepper.entry.js +1 -1
- package/dist/esm/r-tab-panel.entry.js +1 -1
- package/dist/esm/r-tab.entry.js +2 -2
- package/dist/esm/r-tabs-list.entry.js +3 -3
- package/dist/esm/r-tabs.entry.js +1 -1
- package/dist/esm/r-toast-group.entry.js +1 -1
- package/dist/esm/r-toast.entry.js +17 -9
- package/dist/esm/web-components.js +1 -1
- package/dist/types/components/badge/badge.d.ts +3 -0
- package/dist/types/components/checkbox/checkbox.d.ts +2 -0
- package/dist/types/components/checkbox-group/checkbox-group.d.ts +2 -0
- package/dist/types/components/input/exports.d.ts +45 -0
- package/dist/types/components/input/input.d.ts +66 -1
- package/dist/types/components/input-code/input-code.d.ts +2 -0
- package/dist/types/components/input-date/input-date.d.ts +2 -0
- package/dist/types/components/input-password/input-password.d.ts +2 -0
- package/dist/types/components/input-phone-number/input-phone-number.d.ts +2 -0
- package/dist/types/components/pagination/pagination.d.ts +1 -1
- package/dist/types/components/radio-group/radio-group.d.ts +1 -0
- package/dist/types/components/select/select.d.ts +2 -0
- package/dist/types/components/tooltip/tooltip.d.ts +1 -0
- package/dist/types/components.d.ts +63 -2
- package/dist/types/utils/version-checker.d.ts +1 -0
- package/dist/web-components/index.esm.js +1 -0
- package/dist/web-components/{p-253068b9.entry.js → p-01aefcf0.entry.js} +1 -1
- package/dist/web-components/p-05cb55db.entry.js +1 -0
- package/dist/web-components/{p-477614c5.entry.js → p-11b22309.entry.js} +1 -1
- package/dist/web-components/{p-562051aa.entry.js → p-2d878934.entry.js} +1 -1
- package/dist/web-components/p-325dbedf.entry.js +1 -0
- package/dist/web-components/{p-10cc9983.entry.js → p-34b9457b.entry.js} +1 -1
- package/dist/web-components/{p-e5b943a2.entry.js → p-36abd05a.entry.js} +1 -1
- package/dist/web-components/{p-d2447e30.entry.js → p-386d1ef9.entry.js} +1 -1
- package/dist/web-components/{p-4de76291.entry.js → p-3d67b77b.entry.js} +1 -1
- package/dist/web-components/{p-93435fcd.entry.js → p-4b12fbc0.entry.js} +1 -1
- package/dist/web-components/p-52f7b505.entry.js +1 -0
- package/dist/web-components/{p-bfc7e6c0.entry.js → p-57ebc474.entry.js} +1 -1
- package/dist/web-components/{p-a1086abe.entry.js → p-57edf7f4.entry.js} +1 -1
- package/dist/web-components/{p-cc363c3d.entry.js → p-69a24fe2.entry.js} +1 -1
- package/dist/web-components/{p-e67b13df.entry.js → p-6d92648c.entry.js} +1 -1
- package/dist/web-components/p-75052597.entry.js +1 -0
- package/dist/web-components/{p-9de3a1a5.entry.js → p-7b2c5b63.entry.js} +1 -1
- package/dist/web-components/p-7bf463ff.entry.js +1 -0
- package/dist/web-components/{p-8e125826.entry.js → p-838e43d4.entry.js} +1 -1
- package/dist/web-components/p-8c16d038.entry.js +1 -0
- package/dist/web-components/{p-075a8dc8.entry.js → p-8f8313de.entry.js} +1 -1
- package/dist/web-components/{p-3beacdab.entry.js → p-9026d5a2.entry.js} +1 -1
- package/dist/web-components/p-9c31c7c4.entry.js +1 -0
- package/dist/web-components/p-9c415b9c.entry.js +1 -0
- package/dist/web-components/p-b303b2cc.entry.js +1 -0
- package/dist/web-components/p-b8df041d.entry.js +1 -0
- package/dist/web-components/p-bc30844f.entry.js +1 -0
- package/dist/web-components/{p-bde44ec4.entry.js → p-c4a77a65.entry.js} +1 -1
- package/dist/web-components/{p-d0310ed4.entry.js → p-c549addf.entry.js} +1 -1
- package/dist/web-components/p-c65df19f.entry.js +1 -0
- package/dist/web-components/p-cf3f044d.entry.js +1 -0
- package/dist/web-components/p-d9778cfa.entry.js +1 -0
- package/dist/web-components/{p-44f87e16.entry.js → p-dbe4ccb8.entry.js} +1 -1
- package/dist/web-components/p-ded50850.entry.js +1 -0
- package/dist/web-components/{p-02b22f8e.entry.js → p-e5be895b.entry.js} +1 -1
- package/dist/web-components/{p-495ba3d2.entry.js → p-e6b34c1e.entry.js} +1 -1
- package/dist/web-components/p-ec3c4800.entry.js +1 -0
- package/dist/web-components/p-f670fd87.entry.js +1 -0
- package/dist/web-components/web-components.esm.js +1 -1
- package/package.json +3 -2
- package/dist/web-components/p-3b8c8951.entry.js +0 -1
- package/dist/web-components/p-4214867d.entry.js +0 -1
- package/dist/web-components/p-42c857e9.entry.js +0 -1
- package/dist/web-components/p-5b850e0f.entry.js +0 -1
- package/dist/web-components/p-6013dfc8.entry.js +0 -1
- package/dist/web-components/p-62e7ae04.entry.js +0 -1
- package/dist/web-components/p-71519d37.entry.js +0 -1
- package/dist/web-components/p-88f7b47f.entry.js +0 -1
- package/dist/web-components/p-8975a6a3.entry.js +0 -1
- package/dist/web-components/p-91cc0bde.entry.js +0 -1
- package/dist/web-components/p-947969d7.entry.js +0 -1
- package/dist/web-components/p-bbba6d79.entry.js +0 -1
- package/dist/web-components/p-c1030394.entry.js +0 -1
- package/dist/web-components/p-caf8f067.entry.js +0 -1
- package/dist/web-components/p-cf4ff357.entry.js +0 -1
- package/dist/web-components/p-dc9cca06.entry.js +0 -1
- package/dist/web-components/p-efec231a.entry.js +0 -1
|
@@ -3,7 +3,54 @@
|
|
|
3
3
|
var index = require('./index-BnETQtSf.js');
|
|
4
4
|
var formData = require('./formData-B2DZyLxP.js');
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
/**
|
|
7
|
+
* Native HTML input attributes that can be passed through.
|
|
8
|
+
* Using Set for O(1) lookup performance instead of O(n) array includes.
|
|
9
|
+
*/
|
|
10
|
+
const nativeInputAttributesSet = new Set([
|
|
11
|
+
'accept', 'autocorrect', 'capture', 'dirname',
|
|
12
|
+
'height', 'incremental', 'list', 'multiple', 'size', 'src', 'width'
|
|
13
|
+
]);
|
|
14
|
+
/**
|
|
15
|
+
* Special case mappings for attributes that need custom camelCase conversion
|
|
16
|
+
* beyond simple hyphen-based transformation. Maps HTML attribute name (lowercase)
|
|
17
|
+
* to JSX property name (camelCase).
|
|
18
|
+
*/
|
|
19
|
+
const attributeCamelCaseMap = {
|
|
20
|
+
'autocorrect': 'autoCorrect',
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Component-specific props that should NOT be passed to the native input.
|
|
24
|
+
* Using Set for O(1) lookup performance.
|
|
25
|
+
*/
|
|
26
|
+
const excludedAttributesSet = new Set([
|
|
27
|
+
'internal', 'full-width', 'fullwidth', 'validity-marker', 'validitymarker',
|
|
28
|
+
'error', 'valid', 'invalid', 'hint', 'field-indicator', 'fieldindicator',
|
|
29
|
+
'value-missing-message', 'valuemissingmessage', 'type-mismatch-message', 'typemismatchmessage',
|
|
30
|
+
'pattern-mismatch-message', 'patternmismatchmessage', 'too-long-message', 'toolongmessage',
|
|
31
|
+
'too-short-message', 'tooshortmessage', 'range-overflow-message', 'rangeoverflowmessage',
|
|
32
|
+
'range-underflow-message', 'rangeunderflowmessage', 'step-mismatch-message', 'stepmismatchmessage',
|
|
33
|
+
'bad-input-message', 'badinputmessage', 'custom-error-message', 'customerrormessage'
|
|
34
|
+
]);
|
|
35
|
+
/**
|
|
36
|
+
* Framework/DOM-specific attributes that should never be passed through.
|
|
37
|
+
*/
|
|
38
|
+
const frameworkAttributesSet = new Set([
|
|
39
|
+
'class', 'style', 'id', 'slot', 'ref', 'key'
|
|
40
|
+
]);
|
|
41
|
+
/**
|
|
42
|
+
* ARIA attributes that are already handled explicitly by the component
|
|
43
|
+
* and should not be passed through to avoid conflicts.
|
|
44
|
+
*/
|
|
45
|
+
const managedAriaAttributesSet = new Set([
|
|
46
|
+
'aria-invalid',
|
|
47
|
+
'aria-required',
|
|
48
|
+
'aria-placeholder',
|
|
49
|
+
'aria-describedby',
|
|
50
|
+
'data-value'
|
|
51
|
+
]);
|
|
52
|
+
|
|
53
|
+
const inputCss = ":host{display:inline-flex;flex-direction:column;vertical-align:top;--r-label--margin-bottom:0}:host slot{display:contents}:host([readonly]:not([readonly=false])){--r-input--container--background-color:var(--r-background-soft, #f3f1f0);--r-input--container--border-color:transparent transparent var(--r-border-soft, #686868) transparent;--r-input--container--cursor:text}:host(:hover:not([disabled]:not([disabled=false])):not([readonly]:not([readonly=false]))){--r-input--container--background-color:var(--r-background-interactive-hovered, rgba(40, 40, 40, 0.04))}:host(.focused){--r-input--container--box-shadow:0 0 0 6px var(--r-border-focused-outlined);--r-input--container--outline:2px solid var(--r-border-focused);--r-input--container--outline-offset:2px}:host(:active:not([disabled]:not([disabled=false])):not([readonly]:not([readonly=false]))){--r-input--container--background-color:var(--r-background-interactive-pressed, rgba(40, 40, 40, 0.12))}:host([expanded]:not([expanded=false])),:host([full-width]:not([full-width=false])){display:block}:host([disabled]:not([disabled=false])){--r-input--container--opacity:0.4;--r-input--container--cursor:not-allowed;--r-input--container--pointer-events:none;--r-input--container--background-color:transparent}:host([invalid]:not([invalid=false])){--r-input--container--border-color:var(--r-status-error-regular, #b00c15);--r-input--container--background-color:var(--r-status-error-soft, #fef6f6)}:host([size]){--r-input--width:auto;--r-input--input--width:auto;--r-input--container--display:inline-flex}.r-input{display:var(--r-input--display, flex);flex:var(--r-input--flex, 1);flex-direction:var(--r-input--flex-direction, column);width:var(--r-input--width, auto);font-family:var(--r-input--font-family, system-ui);position:var(--r-input--position, relative);border-radius:var(--r-input--border-radius, 0);cursor:var(--r-input--cursor, inherit)}.r-input--label-container{display:var(--r-input--label-container--display, flex);gap:var(--r-input--label-container--gap, var(--r-spacing-100, 1rem));align-items:var(--r-input--label-container--align-items, center);justify-content:var(--r-input--label-container--align-items, space-between)}.r-input--label-container ::slotted([slot=popover]){display:var(--r-input--popover--display, inline-flex);height:var(--r-input--popover--height, var(--r-spacing-150, 1.5));align-items:var(--r-input--popover--align-items, center);justify-content:var(--r-input--popover--justify-content, center);margin-right:var(--r-input--popover--margin-right, -0.25rem);--r-popover--trigger--min-width:var(--r-input--popover-trigger--min-width, var(--r-spacing-150, 1.5));--r-popover--trigger--min-height:var(--r-input--popover--trigger--min-height, var(--r-spacing-150, 1.5))}.r-input--label{cursor:var(--r-input--label--cursor, inherit)}.r-input--input{font-family:var(--r-input--input--font-family, system-ui);font-size:var(--r-input--input--font-size, 1em);width:var(--r-input--input--width, 100%);max-width:var(--r-input--input--max-width, 100%);height:var(--r-input--input--height, var(--r-spacing-275, 2.75rem));border-radius:var(--r-input--input--border-radius, 0);border:var(--r-input--input--border, none);color:var(--r-input--input--color, var(--r-text-regular, #282828));background-color:var(--r-input--input--background-color, none);appearance:var(--r-input--input--appearance, none);box-sizing:var(--r-input--input--box-sizing, border-box);outline:var(--r-input--input--outline, none);cursor:var(--r-input--input--cursor, inherit);pointer-events:var(--r-input--input--pointer-events, auto)}.r-input--input:autofill,.r-input--input:-webkit-autofill{-webkit-background-clip:text !important}.r-input--input::-ms-reveal{display:var(--r-input--input--ms-reveal--display, none)}.r-input--input::placeholder{color:var(--r-input--input--placeholder--color, var(--r-text-soft, #686868))}.r-input--input[type=search]::-webkit-search-cancel-button{cursor:var(--r-input--input-clear--cursor, pointer);display:var(--r-input--input-clear--display, block);height:var(--r-input--input-clear--height, 0.875rem);width:var(--r-input--input-clear--width, 0.875rem);appearance:var(--r-input--input-clear--appearance, none);background-repeat:var(--r-input--input-clear--background-repeat, no-repeat);background-image:var(--r-input--input-clear--background-image, url(\"data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20stroke-width%3D%221.5%22%20viewBox%3D%220.75%200.75%2022.5%2022.5%22%3E%3Cpath%20id%3D%22Vector%202269%22%20stroke%3D%22currentColor%22%20d%3D%22M1.5%201.5L22.5%2022.5%22%2F%3E%3Cpath%20id%3D%22Vector%202270%22%20stroke%3D%22currentColor%22%20d%3D%22M22.5%201.5L1.5%2022.5%22%2F%3E%3C%2Fsvg%3E\"));background-size:var(--r-input--input-clear--background-size, contain);margin-inline:var(--r-input--input-clear--margin-inline, 0);color:currentColor}.r-input--button{position:var(--r-input--icon-button--position, absolute);width:var(--r-input--icon-button--width, calc(1.125em + var(--r-input--icon--width)));height:var(--r-input--icon-button--height, 100%);top:var(--r-input--icon-button--top, 0);right:var(--r-input--icon-button--right, auto);bottom:var(--r-input--icon-button--bottom, auto);left:var(--r-input--icon-button--left, 0);cursor:var(--r-input--icon-button--cursor, inherit)}.r-input--container{position:var(--r-input--container--position, relative);display:var(--r-input--container--display, flex);align-items:var(--r-input--container--align-items, center);gap:var(--r-input--container--gap, 0.625rem);height:var(--r-input--container--height, var(--r-spacing-275, 2.75rem));background-color:var(--r-input--container--background-color, var(--r-background-softest, #fff));border-width:var(--r-input--container--border-width, 1px);border-style:var(--r-input--container--border-style, solid);border-color:var(--r-input--container--border-color, var(--r-border-soft, #686868));box-sizing:var(--r-input--container--box-sizing, border-box);box-shadow:var(--r-input--container--box-shadow, none);outline:var(--r-input--container--outline, none);outline-offset:var(--r-input--container--outline-offset, 0);padding-top:var(--r-input--container--padding-top, 0.6875rem);padding-right:var(--r-input--container--padding-right, var(--r-spacing-075, 0.75rem));padding-bottom:var(--r-input--container--padding-bottom, 0.6875rem);padding-left:var(--r-input--container--padding-left, var(--r-spacing-0275, 0.75rem));opacity:var(--r-input--container--opacity, 1);pointer-events:var(--r-input--container--pointer-events, auto);line-height:var(--r-input--container--line-height, 1);cursor:var(--r-input--container--cursor, inherit);margin-top:var(--r-input--container--margin-top, var(--r-spacing-025, 0.25rem))}.r-input--container slot[name=leading]{color:var(--r-input--container-leading--color, var(--r-icon-soft, #686868))}.r-input--message:has(r-hint),.r-input--message ::slotted([slot=message]){margin-top:var(--r-input--message--margin-top, var(--r-spacing-025, 0.25rem))}.r-input--trailing{display:var(--r-input--trailing--display, flex);margin-left:var(--r-input--trailing--margin-left, auto);align-items:var(--r-input--trailing--align-items, center);gap:var(--r-input--trailing--gap, 0.625rem)}.r-input--trailing:empty{--r-input--trailing--display:none}.r-input--validation-icon{display:var(--r-input--validation-icon--display, inline-block)}.r-input--readonly-icon{color:var(--r-input--readonly-icon--color, var(--r-icon-soft, #686868))}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}";
|
|
7
54
|
|
|
8
55
|
const RInput = class {
|
|
9
56
|
constructor(hostRef) {
|
|
@@ -14,6 +61,11 @@ const RInput = class {
|
|
|
14
61
|
this.rFocus = index.createEvent(this, "rFocus");
|
|
15
62
|
this.rChange = index.createEvent(this, "rChange");
|
|
16
63
|
this.rReset = index.createEvent(this, "rReset");
|
|
64
|
+
this.rBeforeInput = index.createEvent(this, "rBeforeInput");
|
|
65
|
+
this.rInvalid = index.createEvent(this, "rInvalid");
|
|
66
|
+
this.rKeyDown = index.createEvent(this, "rKeyDown");
|
|
67
|
+
this.rKeyUp = index.createEvent(this, "rKeyUp");
|
|
68
|
+
this.rSelect = index.createEvent(this, "rSelect");
|
|
17
69
|
/**
|
|
18
70
|
* Input type (e.g. `text`, `email`, `number`, `password`).
|
|
19
71
|
* See HTMLInputElement `type` for supported values.
|
|
@@ -23,6 +75,8 @@ const RInput = class {
|
|
|
23
75
|
* Current value. Mutable: can be changed programmatically or through user input.
|
|
24
76
|
*/
|
|
25
77
|
this.value = '';
|
|
78
|
+
/** Internal state for options extracted from slotted datalist */
|
|
79
|
+
this.slottedOptions = [];
|
|
26
80
|
/**
|
|
27
81
|
* When `true` field renders valid/invalid marker within.
|
|
28
82
|
*/
|
|
@@ -38,11 +92,37 @@ const RInput = class {
|
|
|
38
92
|
/** Private flag to prevent validation during reset */
|
|
39
93
|
this.isResetting = false;
|
|
40
94
|
this.nativeElement = null;
|
|
95
|
+
/**
|
|
96
|
+
* Helper to set the native input element ref and apply boolean properties
|
|
97
|
+
* that don't get properly set through JSX attribute spreading.
|
|
98
|
+
*/
|
|
99
|
+
this.setNativeInputRef = (el) => {
|
|
100
|
+
this.nativeElement = el;
|
|
101
|
+
if (el) {
|
|
102
|
+
el.addEventListener('beforeinput', this.onBeforeInput);
|
|
103
|
+
// Manually apply boolean native attributes as properties
|
|
104
|
+
// This is necessary because Stencil's JSX doesn't always properly
|
|
105
|
+
// set boolean DOM properties when spreading attributes
|
|
106
|
+
const passthroughAttrs = this.collectNativeAttributes();
|
|
107
|
+
// List of boolean native input properties that need manual application
|
|
108
|
+
const booleanProps = ['multiple'];
|
|
109
|
+
for (const prop of booleanProps) {
|
|
110
|
+
if (prop in passthroughAttrs && passthroughAttrs[prop] === true) {
|
|
111
|
+
el[prop] = true;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
};
|
|
41
116
|
this.uniqueId = `r-input-${Date.now().toString(32)}${Math.random().toString(32)}`.replace(/\./g, '');
|
|
42
117
|
/**
|
|
43
118
|
* Initial attributes state
|
|
44
119
|
* */
|
|
45
120
|
this.initial = {};
|
|
121
|
+
/**
|
|
122
|
+
* Cache for passthrough attributes to avoid recomputing on every render.
|
|
123
|
+
* Cleared when attributes might have changed.
|
|
124
|
+
*/
|
|
125
|
+
this.passthroughAttrsCache = null;
|
|
46
126
|
this.getValidityStateData = (element) => {
|
|
47
127
|
let validityState = '';
|
|
48
128
|
let validityMessage = '';
|
|
@@ -118,9 +198,25 @@ const RInput = class {
|
|
|
118
198
|
this.host.classList.add('focused');
|
|
119
199
|
this.rFocus.emit();
|
|
120
200
|
};
|
|
201
|
+
this.onBeforeInput = (event) => {
|
|
202
|
+
this.rBeforeInput.emit(event);
|
|
203
|
+
};
|
|
204
|
+
this.onInvalid = (event) => {
|
|
205
|
+
this.rInvalid.emit(event);
|
|
206
|
+
};
|
|
207
|
+
this.onKeyDown = (event) => {
|
|
208
|
+
this.rKeyDown.emit(event);
|
|
209
|
+
};
|
|
210
|
+
this.onKeyUp = (event) => {
|
|
211
|
+
this.rKeyUp.emit(event);
|
|
212
|
+
};
|
|
213
|
+
this.onSelect = (event) => {
|
|
214
|
+
this.rSelect.emit(event);
|
|
215
|
+
};
|
|
121
216
|
this.contributeToFormData = (event) => {
|
|
122
217
|
formData.appendControlToFormData(this.nativeElement || this.host, event.formData);
|
|
123
218
|
};
|
|
219
|
+
this.datalistObserver = null;
|
|
124
220
|
this.onResetForm = () => {
|
|
125
221
|
if (this.readonly)
|
|
126
222
|
return;
|
|
@@ -232,6 +328,11 @@ const RInput = class {
|
|
|
232
328
|
this.value = value;
|
|
233
329
|
this.validateFormElement(this.nativeElement);
|
|
234
330
|
}
|
|
331
|
+
/** Validates an element, displays provided message in case value is invalid. */
|
|
332
|
+
async setCustomValidity(message) {
|
|
333
|
+
this.customErrorMessage = message;
|
|
334
|
+
this.validateFormElement(this.nativeElement);
|
|
335
|
+
}
|
|
235
336
|
/**
|
|
236
337
|
* Validates the input without triggering UI and returns a boolean indicating its validity.
|
|
237
338
|
* @returns A boolean indicating whether the input is valid.
|
|
@@ -259,6 +360,56 @@ const RInput = class {
|
|
|
259
360
|
this.touched = false;
|
|
260
361
|
this.dirty = false;
|
|
261
362
|
}
|
|
363
|
+
get datalistId() {
|
|
364
|
+
return `${this.uniqueId}-list`;
|
|
365
|
+
}
|
|
366
|
+
/**
|
|
367
|
+
* Checks if an attribute should be excluded from passthrough.
|
|
368
|
+
*/
|
|
369
|
+
shouldExcludeAttribute(attrName) {
|
|
370
|
+
return (frameworkAttributesSet.has(attrName) ||
|
|
371
|
+
excludedAttributesSet.has(attrName) ||
|
|
372
|
+
managedAriaAttributesSet.has(attrName));
|
|
373
|
+
}
|
|
374
|
+
/**
|
|
375
|
+
* Collects native HTML input attributes from the host element that aren't
|
|
376
|
+
* already handled by explicit props. This allows passing through attributes
|
|
377
|
+
* like 'list', 'multiple', 'size', etc. without creating explicit props.
|
|
378
|
+
* Optimized with Set lookups (O(1)) and caching.
|
|
379
|
+
*/
|
|
380
|
+
collectNativeAttributes() {
|
|
381
|
+
// Return cached result if available
|
|
382
|
+
if (this.passthroughAttrsCache !== null) {
|
|
383
|
+
return this.passthroughAttrsCache;
|
|
384
|
+
}
|
|
385
|
+
const collected = {};
|
|
386
|
+
const hostAttrs = this.host.attributes;
|
|
387
|
+
// Early return if no attributes to process
|
|
388
|
+
if (!hostAttrs || hostAttrs.length === 0) {
|
|
389
|
+
this.passthroughAttrsCache = collected;
|
|
390
|
+
return collected;
|
|
391
|
+
}
|
|
392
|
+
for (const attr of Array.from(hostAttrs)) {
|
|
393
|
+
const attrName = attr.name.toLowerCase();
|
|
394
|
+
// Skip framework/component-specific attributes using helper method
|
|
395
|
+
if (this.shouldExcludeAttribute(attrName)) {
|
|
396
|
+
continue;
|
|
397
|
+
}
|
|
398
|
+
// Include data-* or native input attributes (exclude aria- - component manages ARIA via inputAttrs)
|
|
399
|
+
if (attrName.startsWith('data-') || nativeInputAttributesSet.has(attrName)) {
|
|
400
|
+
// Use special camelCase mapping for certain attributes that need it for JSX properties
|
|
401
|
+
// Otherwise keep the attribute name as-is for native HTML attributes
|
|
402
|
+
const jsxAttrName = attributeCamelCaseMap[attrName] || attrName;
|
|
403
|
+
// Handle boolean attributes: if value is empty or matches attribute name, set to true
|
|
404
|
+
// This ensures proper JSX rendering for attributes like 'multiple'
|
|
405
|
+
const attrValue = attr.value;
|
|
406
|
+
collected[jsxAttrName] = (attrValue === '' || attrValue === attrName) ? true : attrValue;
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
// Cache the result
|
|
410
|
+
this.passthroughAttrsCache = collected;
|
|
411
|
+
return collected;
|
|
412
|
+
}
|
|
262
413
|
/** Identify wrapping form element */
|
|
263
414
|
get parentFormEl() {
|
|
264
415
|
return this.host.closest('form') || document.querySelector(`#${this.form}`) || null;
|
|
@@ -272,7 +423,7 @@ const RInput = class {
|
|
|
272
423
|
return this.invalid && !!((_a = this.error) === null || _a === void 0 ? void 0 : _a.length);
|
|
273
424
|
}
|
|
274
425
|
get hasValidationError() {
|
|
275
|
-
return (this.validityState !== 'valid' || this.invalid) && !!(this.validityMessage || this.customErrorMessage);
|
|
426
|
+
return (this.validityState && this.validityState !== 'valid' || this.invalid) && !!(this.validityMessage || this.customErrorMessage);
|
|
276
427
|
}
|
|
277
428
|
get hasMessage() {
|
|
278
429
|
return this.hasError || this.hasValidationError;
|
|
@@ -291,12 +442,52 @@ const RInput = class {
|
|
|
291
442
|
return !!this.host.querySelector('[slot="trailing"]');
|
|
292
443
|
}
|
|
293
444
|
get validEmailPattern() {
|
|
445
|
+
if (!this.value)
|
|
446
|
+
return false;
|
|
294
447
|
const regex = new RegExp(this.pattern, 'u');
|
|
295
448
|
return regex.test(this.value);
|
|
296
449
|
}
|
|
297
450
|
componentWillLoad() {
|
|
298
451
|
this.initial['value'] = this.value;
|
|
299
452
|
this.initial['invalid'] = this.invalid;
|
|
453
|
+
// Clear passthrough attributes cache to ensure fresh collection on load
|
|
454
|
+
this.passthroughAttrsCache = null;
|
|
455
|
+
// Extract options from slotted datalist
|
|
456
|
+
this.extractSlottedDatalistOptions();
|
|
457
|
+
}
|
|
458
|
+
/**
|
|
459
|
+
* Extracts options from a slotted <datalist> element.
|
|
460
|
+
* Supports both default slot and slot="datalist" usage.
|
|
461
|
+
*/
|
|
462
|
+
extractSlottedDatalistOptions() {
|
|
463
|
+
// First check for slot="datalist"
|
|
464
|
+
const slottedDatalist = this.host.querySelector('datalist[slot="datalist"]');
|
|
465
|
+
if (!slottedDatalist) {
|
|
466
|
+
// Check for datalist in default slot
|
|
467
|
+
const defaultSlotDatalist = Array.from(this.host.querySelectorAll('datalist'))
|
|
468
|
+
.find(el => !el.hasAttribute('slot'));
|
|
469
|
+
if (!defaultSlotDatalist) {
|
|
470
|
+
return;
|
|
471
|
+
}
|
|
472
|
+
this.slottedOptions = this.parseDatalistOptions(defaultSlotDatalist);
|
|
473
|
+
}
|
|
474
|
+
else {
|
|
475
|
+
this.slottedOptions = this.parseDatalistOptions(slottedDatalist);
|
|
476
|
+
}
|
|
477
|
+
}
|
|
478
|
+
/**
|
|
479
|
+
* Parses options from a HTMLDataListElement into InputOption array.
|
|
480
|
+
*/
|
|
481
|
+
parseDatalistOptions(datalist) {
|
|
482
|
+
const options = [];
|
|
483
|
+
const optionElements = datalist.querySelectorAll('option');
|
|
484
|
+
optionElements.forEach(opt => {
|
|
485
|
+
options.push({
|
|
486
|
+
value: opt.value,
|
|
487
|
+
label: opt.label || opt.textContent || opt.value
|
|
488
|
+
});
|
|
489
|
+
});
|
|
490
|
+
return options;
|
|
300
491
|
}
|
|
301
492
|
connectFormEventListeners() {
|
|
302
493
|
var _a, _b, _c;
|
|
@@ -304,18 +495,49 @@ const RInput = class {
|
|
|
304
495
|
(_b = this.parentFormEl) === null || _b === void 0 ? void 0 : _b.addEventListener('submit', this.onSubmitForm, { capture: true });
|
|
305
496
|
(_c = this.parentFormEl) === null || _c === void 0 ? void 0 : _c.addEventListener('reset', this.onResetForm);
|
|
306
497
|
}
|
|
307
|
-
disconnectFormEventListeners() {
|
|
308
|
-
var _a, _b, _c;
|
|
309
|
-
(_a = this.parentFormEl) === null || _a === void 0 ? void 0 : _a.removeEventListener('formdata', this.contributeToFormData);
|
|
310
|
-
(_b = this.parentFormEl) === null || _b === void 0 ? void 0 : _b.removeEventListener('submit', this.onSubmitForm);
|
|
311
|
-
(_c = this.parentFormEl) === null || _c === void 0 ? void 0 : _c.removeEventListener('reset', this.onResetForm);
|
|
312
|
-
}
|
|
313
498
|
connectedCallback() {
|
|
314
499
|
this.connectFormEventListeners();
|
|
315
|
-
|
|
500
|
+
this.setupDatalistObserver();
|
|
501
|
+
if (this.autofocus && !RInput.autofocusHandled) {
|
|
502
|
+
RInput.autofocusHandled = true;
|
|
503
|
+
queueMicrotask(() => { var _a; return (_a = this.host.querySelector('input[autofocus]')) === null || _a === void 0 ? void 0 : _a.focus({ preventScroll: true }); });
|
|
504
|
+
}
|
|
316
505
|
}
|
|
317
506
|
disconnectedCallback() {
|
|
507
|
+
var _a;
|
|
318
508
|
this.disconnectFormEventListeners();
|
|
509
|
+
this.disconnectDatalistObserver();
|
|
510
|
+
(_a = this.nativeElement) === null || _a === void 0 ? void 0 : _a.removeEventListener('beforeinput', this.onBeforeInput);
|
|
511
|
+
}
|
|
512
|
+
setupDatalistObserver() {
|
|
513
|
+
this.extractSlottedDatalistOptions();
|
|
514
|
+
if (typeof MutationObserver === 'undefined') {
|
|
515
|
+
return;
|
|
516
|
+
}
|
|
517
|
+
this.datalistObserver = new MutationObserver((mutations) => {
|
|
518
|
+
for (const mutation of mutations) {
|
|
519
|
+
if (mutation.type === 'childList') {
|
|
520
|
+
this.extractSlottedDatalistOptions();
|
|
521
|
+
break;
|
|
522
|
+
}
|
|
523
|
+
}
|
|
524
|
+
});
|
|
525
|
+
this.datalistObserver.observe(this.host, {
|
|
526
|
+
childList: true,
|
|
527
|
+
subtree: false
|
|
528
|
+
});
|
|
529
|
+
}
|
|
530
|
+
disconnectDatalistObserver() {
|
|
531
|
+
if (this.datalistObserver) {
|
|
532
|
+
this.datalistObserver.disconnect();
|
|
533
|
+
this.datalistObserver = null;
|
|
534
|
+
}
|
|
535
|
+
}
|
|
536
|
+
disconnectFormEventListeners() {
|
|
537
|
+
var _a, _b, _c;
|
|
538
|
+
(_a = this.parentFormEl) === null || _a === void 0 ? void 0 : _a.removeEventListener('formdata', this.contributeToFormData);
|
|
539
|
+
(_b = this.parentFormEl) === null || _b === void 0 ? void 0 : _b.removeEventListener('submit', this.onSubmitForm);
|
|
540
|
+
(_c = this.parentFormEl) === null || _c === void 0 ? void 0 : _c.removeEventListener('reset', this.onResetForm);
|
|
319
541
|
}
|
|
320
542
|
handleValueChange() {
|
|
321
543
|
if (!this.isResetting) {
|
|
@@ -323,12 +545,18 @@ const RInput = class {
|
|
|
323
545
|
}
|
|
324
546
|
}
|
|
325
547
|
handleTypeChange() {
|
|
326
|
-
|
|
548
|
+
if (this.nativeElement) {
|
|
549
|
+
this.setValue(this.nativeElement.value);
|
|
550
|
+
}
|
|
327
551
|
}
|
|
328
552
|
render() {
|
|
329
553
|
const { name, placeholder, required, fieldIndicator, maxlength, minlength, min, max, value, disabled, form, pattern, invalid, valid, hint, label, internal, uniqueId, autocomplete, readonly, autofocus, passwordrules, enterkeyhint, spellcheck, autocapitalize, validityMarker } = this;
|
|
330
|
-
|
|
331
|
-
|
|
554
|
+
// Collect any native input attributes that were set on the host element
|
|
555
|
+
const passthroughAttrs = this.collectNativeAttributes();
|
|
556
|
+
// Combine options from prop and slotted datalist (prop takes precedence)
|
|
557
|
+
const options = [...(this.slottedOptions || [])];
|
|
558
|
+
const hasDatalist = options.length > 0;
|
|
559
|
+
const inputAttrs = Object.assign(Object.assign({ disabled,
|
|
332
560
|
readonly,
|
|
333
561
|
required,
|
|
334
562
|
label,
|
|
@@ -340,20 +568,15 @@ const RInput = class {
|
|
|
340
568
|
max,
|
|
341
569
|
form,
|
|
342
570
|
pattern,
|
|
343
|
-
autocomplete,
|
|
344
|
-
autofocus: autofocus || null,
|
|
345
|
-
passwordrules,
|
|
571
|
+
autocomplete, autofocus: autofocus || null, passwordrules,
|
|
346
572
|
enterkeyhint,
|
|
347
573
|
autocapitalize,
|
|
348
|
-
spellcheck,
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
'aria-required': `${required || false}`,
|
|
355
|
-
'aria-describedby': this.ariaDescribedBy
|
|
356
|
-
};
|
|
574
|
+
spellcheck, inputmode: this.inputmode || null, id: uniqueId }, passthroughAttrs), {
|
|
575
|
+
// Component-controlled values always win
|
|
576
|
+
'data-value': value, 'aria-invalid': `${invalid || false}`, 'aria-required': `${required || false}`, 'aria-describedby': this.ariaDescribedBy,
|
|
577
|
+
// list attribute: use internal datalist when options provided, otherwise use passthrough value (explicit takes precedence)
|
|
578
|
+
list: hasDatalist ? this.datalistId : (passthroughAttrs.list || null)
|
|
579
|
+
});
|
|
357
580
|
const labelAttr = label ? {
|
|
358
581
|
id: `${uniqueId}-label`,
|
|
359
582
|
fieldIndicator
|
|
@@ -375,19 +598,11 @@ const RInput = class {
|
|
|
375
598
|
const iconColor = shouldShowInvalidMarker ? colors.invalid : colors.valid;
|
|
376
599
|
return index.h("r-icon", { class: "r-input--validation-icon", "aria-hidden": "true", size: "s", name: iconName, color: iconColor });
|
|
377
600
|
};
|
|
378
|
-
// Filter out event listener properties based on naming convention.
|
|
379
|
-
// Pass them to native element.
|
|
380
|
-
const eventListeners = Object.entries(this).reduce((acc, [key, value]) => {
|
|
381
|
-
if (typeof value === 'function' && key.startsWith('on')) {
|
|
382
|
-
acc[key] = value;
|
|
383
|
-
}
|
|
384
|
-
return acc;
|
|
385
|
-
}, {});
|
|
386
601
|
return (index.h(index.Host, { onClick: this.handleClick, onKeyup: this.handleKeyup, "data-touched": `${this.touched}`, "data-dirty": `${this.dirty}` }, index.h("div", { class: internal ? 'visually-hidden' : 'r-input--label-container' }, index.h("label", { htmlFor: uniqueId }, label ?
|
|
387
602
|
index.h("r-label", Object.assign({ class: "r-input--label" }, labelAttr), label)
|
|
388
603
|
:
|
|
389
604
|
index.h("slot", { name: "label" })), index.h("slot", { name: "popover" })), hint &&
|
|
390
|
-
index.h("r-hint", { id: `${uniqueId}-hint`, role: "note" }, hint), index.h("div", { class: "r-input--container" }, index.h("slot", { name: "leading" }), index.h("input", Object.assign({ class: "r-input--input", type: this.type }, inputAttrs,
|
|
605
|
+
index.h("r-hint", { id: `${uniqueId}-hint`, role: "note" }, hint), index.h("div", { class: "r-input--container" }, index.h("slot", { name: "leading" }), index.h("input", Object.assign({ class: "r-input--input", type: this.type }, inputAttrs, { ref: this.setNativeInputRef, value: this.value, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onInvalid: this.onInvalid, onKeyDown: this.onKeyDown, onKeyUp: this.onKeyUp, onSelect: this.onSelect })), hasDatalist && (index.h("datalist", { ref: (el) => el && (el.id = this.datalistId) }, options.map((option) => (index.h("option", { value: option.value }, option.label || option.value))))), index.h("div", { class: "r-input--trailing" }, this.readonly &&
|
|
391
606
|
index.h("r-icon", { class: "r-input--readonly-icon", name: "pen-disabled", size: "s" }), renderValidationMarker(), this.hasTrailingSlot &&
|
|
392
607
|
index.h("slot", { name: "trailing" }))), index.h("div", { id: `${uniqueId}-message`, "aria-live": !internal ? 'polite' : null, class: !internal ? 'r-input--message' : 'visually-hidden' }, index.h("slot", { name: "message" }, this.hasMessage && index.h("r-hint", { variant: valid ? 'success' : 'error' }, this.hasError && this.error, this.hasValidationError && (this.customErrorMessage || this.validityMessage))))));
|
|
393
608
|
}
|
|
@@ -397,6 +612,7 @@ const RInput = class {
|
|
|
397
612
|
"type": ["handleTypeChange"]
|
|
398
613
|
}; }
|
|
399
614
|
};
|
|
615
|
+
RInput.autofocusHandled = false;
|
|
400
616
|
RInput.style = inputCss;
|
|
401
617
|
|
|
402
618
|
exports.r_input = RInput;
|
|
@@ -192,6 +192,9 @@ const RPagination = class {
|
|
|
192
192
|
}
|
|
193
193
|
return isArrowButton ? buttonElement : (_e = this.el.shadowRoot) === null || _e === void 0 ? void 0 : _e.querySelector(`.r-pagination--item[data-index="${this.pageActive}"]`);
|
|
194
194
|
}
|
|
195
|
+
handlePropsChange() {
|
|
196
|
+
this.setPaginationState();
|
|
197
|
+
}
|
|
195
198
|
componentWillLoad() {
|
|
196
199
|
this.setPaginationState();
|
|
197
200
|
}
|
|
@@ -203,9 +206,6 @@ const RPagination = class {
|
|
|
203
206
|
componentDidRender() {
|
|
204
207
|
this.syncHeaderWidth();
|
|
205
208
|
}
|
|
206
|
-
componentDidUpdate() {
|
|
207
|
-
this.setPaginationState(); // Recalculate when props change
|
|
208
|
-
}
|
|
209
209
|
render() {
|
|
210
210
|
const { active, previous, next, first, itemsPerPage, itemsPerPageOptions, startText, middleText, endText, selectText, listBoxPosition } = this;
|
|
211
211
|
const itemTemplate = (type, index$1) => {
|
|
@@ -308,6 +308,12 @@ const RPagination = class {
|
|
|
308
308
|
return (index.h(index.Host, { role: "navigation" }, index.h("div", { class: "r-pagination" }, this.resultsLine && renderHeader(), renderList())));
|
|
309
309
|
}
|
|
310
310
|
get el() { return index.getElement(this); }
|
|
311
|
+
static get watchers() { return {
|
|
312
|
+
"totalResults": ["handlePropsChange"],
|
|
313
|
+
"itemsPerPage": ["handlePropsChange"],
|
|
314
|
+
"variant": ["handlePropsChange"],
|
|
315
|
+
"pageActive": ["handlePropsChange"]
|
|
316
|
+
}; }
|
|
311
317
|
};
|
|
312
318
|
RPagination.style = paginationCss;
|
|
313
319
|
|
|
@@ -168,10 +168,10 @@ const Panel = class {
|
|
|
168
168
|
}
|
|
169
169
|
}
|
|
170
170
|
render() {
|
|
171
|
-
return (index.h(index.Host, { key: '
|
|
171
|
+
return (index.h(index.Host, { key: '44996078c23da8ce9b5b48044d24d45778e688b4', role: "navigation", collapsed: this.isCollapsed }, index.h("div", { key: 'a217b08d3fda5e4f8761d971074e3de797363f32', class: "r-panel" }, index.h("div", { key: '8ff71b762feffd1cc9478014e011fc60875a5e3d', class: "r-panel--header" }, this.hasHeader && (index.h("a", { key: '9ad8475299e9f04341cc1c4b5b9e65551f2f6ca2', class: "logo-wrapper", href: this.logoLink }, this.isCollapsed ?
|
|
172
172
|
index.h("slot", { name: "logo-collapsed" })
|
|
173
173
|
:
|
|
174
|
-
index.h("slot", { name: "logo-expanded" }))), this.variant === 'modal' ? (index.h("r-button", { class: "r-panel--trigger", variant: "blank", icon: "cross", rAriaLabel: `${this.labelCollapse}`, onClick: this.handleFullyCollapsedButtonClick })) : this.variant === 'drawer' ? (index.h("r-button", { class: "r-panel--trigger", variant: "blank", icon: "angle-left", rAriaLabel: this.isCollapsed ? `${this.labelExpand}` : `${this.labelCollapse}`, onClick: this.handleSemiCollapsedButtonClick })) : this.variant === 'visible' ? (null) : null), index.h("div", { key: '
|
|
174
|
+
index.h("slot", { name: "logo-expanded" }))), this.variant === 'modal' ? (index.h("r-button", { class: "r-panel--trigger", variant: "blank", icon: "cross", rAriaLabel: `${this.labelCollapse}`, onClick: this.handleFullyCollapsedButtonClick })) : this.variant === 'drawer' ? (index.h("r-button", { class: "r-panel--trigger", variant: "blank", icon: "angle-left", rAriaLabel: this.isCollapsed ? `${this.labelExpand}` : `${this.labelCollapse}`, onClick: this.handleSemiCollapsedButtonClick })) : this.variant === 'visible' ? (null) : null), index.h("div", { key: '14b5a3ee0e11eda6585a84e0f05aa682950fbce2', class: "r-panel--body" }, index.h("slot", { key: 'e008d4f4796415779cd8e3dbda696b966b4ac184' })), this.hasFooter && !this.isCollapsed && (index.h("div", { key: '702c5859f2a7aa60903ec1df29f8977cf46dd0b8', class: "r-panel--footer" }, index.h("slot", { key: '347796d3e0bbffed77ae9368270f6e27eb93e156', name: "footer" }))))));
|
|
175
175
|
}
|
|
176
176
|
get host() { return index.getElement(this); }
|
|
177
177
|
static get watchers() { return {
|
|
@@ -71,7 +71,7 @@ const PopoverAction = class {
|
|
|
71
71
|
return focusable.focusableElements(this.host);
|
|
72
72
|
}
|
|
73
73
|
render() {
|
|
74
|
-
return (index.h(index.Host, { key: '
|
|
74
|
+
return (index.h(index.Host, { key: 'a2e9f0482b6de85e54d5fb6c748113efbb76b887', slot: "action" }, index.h("slot", { key: '656f07644cd0d2e9a15263f644676a3e698d005d', onSlotchange: this.handleSlotChange })));
|
|
75
75
|
}
|
|
76
76
|
get host() { return index.getElement(this); }
|
|
77
77
|
};
|
|
@@ -53,7 +53,7 @@ const PopoverContent = class {
|
|
|
53
53
|
return focusable.focusableElements(this.host);
|
|
54
54
|
}
|
|
55
55
|
render() {
|
|
56
|
-
return (index.h(index.Host, { key: '
|
|
56
|
+
return (index.h(index.Host, { key: '2384c04a8610e5d26bcd3e3fb4e70c99fca7d76a', slot: "content", class: "r-typography" }, index.h("slot", { key: '52ce40873c2e32725ee8ef8fc385d498ff8b973c' })));
|
|
57
57
|
}
|
|
58
58
|
get host() { return index.getElement(this); }
|
|
59
59
|
};
|
|
@@ -19,7 +19,7 @@ const PopoverHeadline = class {
|
|
|
19
19
|
theming.stopInverseThemeAwareness(this.host, themeContextElement);
|
|
20
20
|
}
|
|
21
21
|
render() {
|
|
22
|
-
return (index.h(index.Host, { key: '
|
|
22
|
+
return (index.h(index.Host, { key: 'bdbaecb36f49d54a1b33ef27d1c954834df68198', slot: "headline" }, index.h("slot", { key: '82eb6ae289211e5a23149e12125c1c30cf6b3ffd' })));
|
|
23
23
|
}
|
|
24
24
|
get host() { return index.getElement(this); }
|
|
25
25
|
};
|
|
@@ -61,7 +61,7 @@ const PopoverTrigger = class {
|
|
|
61
61
|
(_a = this.activeElement) === null || _a === void 0 ? void 0 : _a.blur();
|
|
62
62
|
}
|
|
63
63
|
render() {
|
|
64
|
-
return (index.h(index.Host, { key: '
|
|
64
|
+
return (index.h(index.Host, { key: '6c97f11b7263d0cf574fdafcef3d7a9733fe7925', slot: "trigger", onMouseEnter: this.handleMouseEnter, onMouseLeave: this.handleMouseLeave }, index.h("slot", { key: '7d434e3505eda793e8d1d50f9fb1aa608061fa50' })));
|
|
65
65
|
}
|
|
66
66
|
get host() { return index.getElement(this); }
|
|
67
67
|
};
|
|
@@ -331,8 +331,8 @@ const Popover = class {
|
|
|
331
331
|
}
|
|
332
332
|
render() {
|
|
333
333
|
const TAG = !this.activeElement ? 'button' : 'div';
|
|
334
|
-
return (index.h(index.Host, { key: '
|
|
335
|
-
index.h("r-icon-button", { key: '
|
|
334
|
+
return (index.h(index.Host, { key: '655880fb3d3f069e13bc7025f932abc192df8918', id: this.uniqueId, "data-position": this.positionState, "data-open": `${this.isOpen}`, open: this.isOpen }, index.h("div", { key: '6617392de14d78a1a53172fc689245749f01909a', class: "r-popover" }, index.h(TAG, { key: '87dc99d5ab380b7f288fa9fba0e861feacff6e20', class: "r-popover--trigger", "aria-label": !this.activeElement ? this.triggerAriaLabel : null, ref: el => this.triggerElement = el, "aria-haspopup": "dialog", popoverTarget: !this.activeElement ? `${this.uniqueId}-board` : null, popoverTargetAction: !this.activeElement ? this.triggerAction : null }, index.h("slot", { key: '51c875b84c1311e40292cf7fe80f7753fcd15abf', name: "trigger" })), index.h("div", { key: '24a2d6a90d0fe9167a08328e80ed6164c94170f0', class: "r-popover--board", id: `${this.uniqueId}-board`, role: "dialog", "aria-label": this.headlineSlotContent, popover: this.dismissMode, ref: el => this.boardElement = el, onToggle: this.onToggle, onKeyDown: this.onKeyDown }, this.hasDismiss &&
|
|
335
|
+
index.h("r-icon-button", { key: '51e2563b582c5300eff1a032829bfdfb4947bdb6', ref: el => this.dismissElement = el, class: "r-popover--dismiss", name: "cross", onClick: this.onClickDismiss, label: this.dismissAriaLabel }), index.h("div", { key: '6abf0772e1b45c1c6be7eeeb5a0b37469e17c4de', class: "r-popover--board-content" }, index.h("slot", { key: 'd4af6923192d72fb77e0591dbc9f163965fdb9b7', name: "headline" }), index.h("slot", { key: '469fb95a09ce36ad41b7a76e3f09c8834c4e7e14', name: "content" }), index.h("slot", { key: '17145240e43b06ae7186ad8d46a3d10b7996d3f2', name: "action" })), index.h("div", { key: '68e7ce9cdbe5c5b765d5866d9ea6c80d6b830630', class: "r-popover--board-pointer", "aria-hidden": "true" }, index.h("svg", { key: '55d0e368d2af54a082fc8323b9b1e40457a5a62b', width: "16", height: "8", viewBox: "0 0 16 8", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, index.h("path", { key: '86db95e48bed58187dea614c81527f6bd7ef9f3e', d: "M8 8L0 0L16 0L8 8Z", fill: "currentColor" })))))));
|
|
336
336
|
}
|
|
337
337
|
get host() { return index.getElement(this); }
|
|
338
338
|
static get watchers() { return {
|
|
@@ -17,7 +17,7 @@ const ProgressBar = class {
|
|
|
17
17
|
max: '100',
|
|
18
18
|
'aria-label': rAriaLabel
|
|
19
19
|
};
|
|
20
|
-
return (index.h(index.Host, { key: '
|
|
20
|
+
return (index.h(index.Host, { key: '832812688a18bea634c8ff2c5ea69599cdefdcff' }, index.h("progress", Object.assign({ key: 'd3384feada9ee1594e3ee331377d30ae1e8725f1' }, progressBarAttrs, { class: "r-progress-bar" }))));
|
|
21
21
|
}
|
|
22
22
|
};
|
|
23
23
|
ProgressBar.style = progressBarCss;
|
|
@@ -9,7 +9,7 @@ const RadioButtonDescription = class {
|
|
|
9
9
|
index.registerInstance(this, hostRef);
|
|
10
10
|
}
|
|
11
11
|
render() {
|
|
12
|
-
return (index.h(index.Host, { key: '
|
|
12
|
+
return (index.h(index.Host, { key: '30f29f811a727ba758a1e5b89fb86baf78076694', slot: "description" }, index.h("div", { key: '233da5297c2b1e47def8e92f0d8e9a5fba846dc8', class: "r-radio-button-description", style: { display: 'contents' } }, index.h("slot", { key: 'f00f06ec8f07b3995fb2249977cad70df930a4c9' }))));
|
|
13
13
|
}
|
|
14
14
|
get host() { return index.getElement(this); }
|
|
15
15
|
};
|
|
@@ -9,7 +9,7 @@ const RadioButtonLeading = class {
|
|
|
9
9
|
index.registerInstance(this, hostRef);
|
|
10
10
|
}
|
|
11
11
|
render() {
|
|
12
|
-
return (index.h(index.Host, { key: '
|
|
12
|
+
return (index.h(index.Host, { key: 'fcfa2b1df999df8a168bd0255ad7855dce28485c', slot: "leading" }, index.h("div", { key: '2d0e091a66adb24576f5e4a2f0959b8c83dc2017', class: "r-radio-button-leading", style: { display: 'contents' } }, index.h("slot", { key: 'cebdf0262db3ce092efbe2e8e830aa54903aa59e' }))));
|
|
13
13
|
}
|
|
14
14
|
get host() { return index.getElement(this); }
|
|
15
15
|
};
|
|
@@ -9,7 +9,7 @@ const RadioButtonTitle = class {
|
|
|
9
9
|
index.registerInstance(this, hostRef);
|
|
10
10
|
}
|
|
11
11
|
render() {
|
|
12
|
-
return (index.h(index.Host, { key: '
|
|
12
|
+
return (index.h(index.Host, { key: '12da195c66d902eba41e84b1ccaf3efbabbac144', slot: "title" }, index.h("div", { key: '84fc3a3e1d0b9b641a7fb859d03e904b5009cb44', class: "r-radio-button-title", style: { display: 'contents' } }, index.h("slot", { key: '6562965e5dfa79f4b9f80f22b4293e8ea600e4b2' }))));
|
|
13
13
|
}
|
|
14
14
|
get host() { return index.getElement(this); }
|
|
15
15
|
};
|
|
@@ -9,7 +9,7 @@ const RadioButtonTrailing = class {
|
|
|
9
9
|
index.registerInstance(this, hostRef);
|
|
10
10
|
}
|
|
11
11
|
render() {
|
|
12
|
-
return (index.h(index.Host, { key: '
|
|
12
|
+
return (index.h(index.Host, { key: 'b9fc1731ecc2b522e341cfaceb5b703c8d74253f', slot: "trailing" }, index.h("div", { key: 'f1319664b1543a4a784cb2cd665567a4d561bdc3', class: "r-radio-button-trailing", style: { display: 'contents' } }, index.h("slot", { key: 'dbed8559c3b0a5ba2580fe9e8c297e7eb947e5a5' }))));
|
|
13
13
|
}
|
|
14
14
|
get host() { return index.getElement(this); }
|
|
15
15
|
};
|
|
@@ -126,11 +126,11 @@ const RadioButton = class {
|
|
|
126
126
|
required,
|
|
127
127
|
autofocus
|
|
128
128
|
};
|
|
129
|
-
return (index.h(index.Host, { key: '
|
|
130
|
-
index.h("div", { key: '
|
|
131
|
-
index.h("div", { key: '
|
|
132
|
-
index.h("r-hint", { key: '
|
|
133
|
-
index.h("r-hint", { key: '
|
|
129
|
+
return (index.h(index.Host, { key: 'ce9e98b6480c18675ac0dac4b118e574872f9af7' }, index.h("label", { key: 'adb23e0f9092e7c5bc2c0c70df71fa255f8a441b', class: "r-radio-button", onClick: this.onClick, onKeyDown: this.onKeydown }, index.h("input", Object.assign({ key: 'cdd35d3caebb8e7eb8162dcc97c73f85067a55bb' }, inputAttrs, { id: `${uniqueId}-input`, class: "r-radio-button--input", ref: el => this.nativeEl = el, onFocus: this.onFocus, onBlur: this.onBlur })), index.h("span", { key: '89e258e8d5b41a51ff48ad26f1e83bcdb447089a', class: "r-radio-button--box" }), this.isLeading &&
|
|
130
|
+
index.h("div", { key: '14e5cbd3fb54b86761f68f53f64081be3021bf9d', class: "r-radio-button--leading" }, index.h("slot", { key: '8350ee29002de443338179d8e926356fa080cb97', name: "leading" }, this.icon && index.h("r-icon", { key: 'ba1ad94e6eabd2aa113e46ddc4f5f7cdc8e39635', name: this.icon, size: "m" }))), index.h("div", { key: '75c735e748dc36c3c785cb048f920060f31c7c9a', class: "r-radio-button--text" }, index.h("slot", { key: 'b2f39d35860d6ed36bf1913836af065ed093a9b4', name: "title" }, index.h("div", { key: '4f6fdd992b61a01c13810fbee76f66d514f8e8e2', style: { display: 'contents' } }, index.h("slot", { key: 'b0d6d3eb4b9687751822fd6e026cc5eec2fe3d6b' }))), index.h("slot", { key: '66f2d4a0262d494b4c5c700e48abb7210e5fc8df', name: "description" }, this.description)), this.isTrailing &&
|
|
131
|
+
index.h("div", { key: '64bb5efd43a7e52461dff3e3416c968bbe44d1a4', class: "r-radio-button--trailing" }, index.h("slot", { key: '20798c2198cc1360f6b04fa0a94984bb697eda6c', name: "trailing" }))), invalid && error &&
|
|
132
|
+
index.h("r-hint", { key: '06bd4aa937a926612c428e9f9cfcde98e60c6ca7', role: "alert", variant: "error", id: `${uniqueId}-hint` }, this.error), hint &&
|
|
133
|
+
index.h("r-hint", { key: '5031e00344241c184fb8ef2aa8275274415b8a3e', role: "note", variant: "information", id: `${uniqueId}-hint` }, hint)));
|
|
134
134
|
}
|
|
135
135
|
get host() { return index.getElement(this); }
|
|
136
136
|
};
|