@aquera/nile-elements 1.6.0 → 1.6.2
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/README.md +9 -0
- package/dist/index.cjs.js +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.js +1103 -629
- package/dist/internal/enum.cjs.js +1 -1
- package/dist/internal/enum.cjs.js.map +1 -1
- package/dist/internal/enum.esm.js +1 -1
- package/dist/nile-badge/index.cjs.js +1 -1
- package/dist/nile-badge/index.esm.js +1 -1
- package/dist/nile-badge/nile-badge.cjs.js +1 -1
- package/dist/nile-badge/nile-badge.cjs.js.map +1 -1
- package/dist/nile-badge/nile-badge.esm.js +1 -1
- package/dist/nile-button/index.cjs.js +1 -1
- package/dist/nile-button/index.esm.js +1 -1
- package/dist/nile-button/nile-button.cjs.js +1 -1
- package/dist/nile-button/nile-button.cjs.js.map +1 -1
- package/dist/nile-button/nile-button.esm.js +1 -1
- package/dist/nile-carousel/index.cjs.js +1 -1
- package/dist/nile-carousel/index.esm.js +1 -1
- package/dist/nile-carousel/nile-carousel.cjs.js +1 -1
- package/dist/nile-carousel/nile-carousel.cjs.js.map +1 -1
- package/dist/nile-carousel/nile-carousel.esm.js +1 -1
- package/dist/nile-dialog/index.cjs.js +1 -1
- package/dist/nile-dialog/index.esm.js +1 -1
- package/dist/nile-dialog/nile-dialog.cjs.js +1 -1
- package/dist/nile-dialog/nile-dialog.cjs.js.map +1 -1
- package/dist/nile-dialog/nile-dialog.esm.js +1 -1
- package/dist/nile-drawer/index.cjs.js +1 -1
- package/dist/nile-drawer/index.esm.js +1 -1
- package/dist/nile-drawer/nile-drawer.cjs.js +1 -1
- package/dist/nile-drawer/nile-drawer.cjs.js.map +1 -1
- package/dist/nile-drawer/nile-drawer.esm.js +1 -1
- package/dist/nile-floating-panel/index.cjs.js +1 -1
- package/dist/nile-floating-panel/index.esm.js +1 -1
- package/dist/nile-floating-panel/nile-floating-panel.cjs.js +1 -1
- package/dist/nile-floating-panel/nile-floating-panel.cjs.js.map +1 -1
- package/dist/nile-floating-panel/nile-floating-panel.css.cjs.js +1 -1
- package/dist/nile-floating-panel/nile-floating-panel.css.cjs.js.map +1 -1
- package/dist/nile-floating-panel/nile-floating-panel.css.esm.js +137 -21
- package/dist/nile-floating-panel/nile-floating-panel.esm.js +1 -1
- package/dist/nile-icon/icons/svg/folder_delete.cjs.js +2 -0
- package/dist/nile-icon/icons/svg/folder_delete.cjs.js.map +1 -0
- package/dist/nile-icon/icons/svg/folder_delete.esm.js +1 -0
- package/dist/nile-icon/icons/svg/index.cjs.js +1 -1
- package/dist/nile-icon/icons/svg/index.esm.js +1 -1
- package/dist/nile-icon/icons/svg/layers-three-02.cjs.js +1 -1
- package/dist/nile-icon/icons/svg/layers-three-02.cjs.js.map +1 -1
- package/dist/nile-icon/icons/svg/layers-three-02.esm.js +1 -1
- package/dist/nile-icon/index.cjs.js +1 -1
- package/dist/nile-icon/index.cjs.js.map +1 -1
- package/dist/nile-icon/index.esm.js +1 -1
- package/dist/nile-icon-button/index.cjs.js +1 -1
- package/dist/nile-icon-button/index.esm.js +1 -1
- package/dist/nile-icon-button/nile-icon-button.cjs.js +1 -1
- package/dist/nile-icon-button/nile-icon-button.cjs.js.map +1 -1
- package/dist/nile-icon-button/nile-icon-button.esm.js +1 -1
- package/dist/nile-input/index.cjs.js +1 -1
- package/dist/nile-input/index.esm.js +1 -1
- package/dist/nile-input/nile-input.cjs.js +1 -1
- package/dist/nile-input/nile-input.cjs.js.map +1 -1
- package/dist/nile-input/nile-input.esm.js +1 -1
- package/dist/nile-lite-tooltip/index.cjs.js +1 -1
- package/dist/nile-lite-tooltip/index.esm.js +1 -1
- package/dist/nile-lite-tooltip/nile-lite-tooltip.cjs.js +1 -1
- package/dist/nile-lite-tooltip/nile-lite-tooltip.cjs.js.map +1 -1
- package/dist/nile-lite-tooltip/nile-lite-tooltip.esm.js +1 -1
- package/dist/nile-menu-item/index.cjs.js +1 -1
- package/dist/nile-menu-item/index.esm.js +1 -1
- package/dist/nile-menu-item/nile-menu-item.cjs.js +1 -1
- package/dist/nile-menu-item/nile-menu-item.cjs.js.map +1 -1
- package/dist/nile-menu-item/nile-menu-item.esm.js +1 -1
- package/dist/nile-option/index.cjs.js +1 -1
- package/dist/nile-option/index.esm.js +1 -1
- package/dist/nile-option/nile-option.cjs.js +1 -1
- package/dist/nile-option/nile-option.cjs.js.map +1 -1
- package/dist/nile-option/nile-option.esm.js +1 -1
- package/dist/nile-otp-input/index.cjs.js +2 -0
- package/dist/nile-otp-input/index.cjs.js.map +1 -0
- package/dist/nile-otp-input/index.esm.js +1 -0
- package/dist/nile-otp-input/nile-otp-input.cjs.js +2 -0
- package/dist/nile-otp-input/nile-otp-input.cjs.js.map +1 -0
- package/dist/nile-otp-input/nile-otp-input.css.cjs.js +2 -0
- package/dist/nile-otp-input/nile-otp-input.css.cjs.js.map +1 -0
- package/dist/nile-otp-input/nile-otp-input.css.esm.js +257 -0
- package/dist/nile-otp-input/nile-otp-input.enum.cjs.js +2 -0
- package/dist/nile-otp-input/nile-otp-input.enum.cjs.js.map +1 -0
- package/dist/nile-otp-input/nile-otp-input.enum.esm.js +1 -0
- package/dist/nile-otp-input/nile-otp-input.esm.js +103 -0
- package/dist/nile-select/index.cjs.js +1 -1
- package/dist/nile-select/index.esm.js +1 -1
- package/dist/nile-select/nile-select.cjs.js +1 -1
- package/dist/nile-select/nile-select.cjs.js.map +1 -1
- package/dist/nile-select/nile-select.esm.js +1 -1
- package/dist/nile-side-bar-action-menu-item/index.cjs.js +1 -1
- package/dist/nile-side-bar-action-menu-item/index.esm.js +1 -1
- package/dist/nile-side-bar-action-menu-item/nile-side-bar-action-menu-item.cjs.js +1 -1
- package/dist/nile-side-bar-action-menu-item/nile-side-bar-action-menu-item.cjs.js.map +1 -1
- package/dist/nile-side-bar-action-menu-item/nile-side-bar-action-menu-item.esm.js +1 -1
- package/dist/nile-tab/index.cjs.js +1 -1
- package/dist/nile-tab/index.esm.js +1 -1
- package/dist/nile-tab/nile-tab.cjs.js +1 -1
- package/dist/nile-tab/nile-tab.cjs.js.map +1 -1
- package/dist/nile-tab/nile-tab.esm.js +1 -1
- package/dist/nile-tab-group/index.cjs.js +1 -1
- package/dist/nile-tab-group/index.esm.js +1 -1
- package/dist/nile-tab-group/nile-tab-group.cjs.js +1 -1
- package/dist/nile-tab-group/nile-tab-group.cjs.js.map +1 -1
- package/dist/nile-tab-group/nile-tab-group.esm.js +1 -1
- package/dist/nile-tag/index.cjs.js +1 -1
- package/dist/nile-tag/index.esm.js +1 -1
- package/dist/nile-tag/nile-tag.cjs.js +1 -1
- package/dist/nile-tag/nile-tag.cjs.js.map +1 -1
- package/dist/nile-tag/nile-tag.esm.js +1 -1
- package/dist/nile-toast/index.cjs.js +1 -1
- package/dist/nile-toast/index.esm.js +1 -1
- package/dist/nile-toast/nile-toast.cjs.js +1 -1
- package/dist/nile-toast/nile-toast.cjs.js.map +1 -1
- package/dist/nile-toast/nile-toast.esm.js +1 -1
- package/dist/nile-tree/index.cjs.js +1 -1
- package/dist/nile-tree/index.esm.js +1 -1
- package/dist/nile-tree/nile-tree.cjs.js +1 -1
- package/dist/nile-tree/nile-tree.cjs.js.map +1 -1
- package/dist/nile-tree/nile-tree.esm.js +1 -1
- package/dist/nile-tree-item/index.cjs.js +1 -1
- package/dist/nile-tree-item/index.esm.js +1 -1
- package/dist/nile-tree-item/nile-tree-item.cjs.js +1 -1
- package/dist/nile-tree-item/nile-tree-item.cjs.js.map +1 -1
- package/dist/nile-tree-item/nile-tree-item.esm.js +1 -1
- package/dist/nile-virtual-select/index.cjs.js +1 -1
- package/dist/nile-virtual-select/index.esm.js +1 -1
- package/dist/nile-virtual-select/nile-virtual-select.cjs.js +2 -2
- package/dist/nile-virtual-select/nile-virtual-select.esm.js +1 -1
- package/dist/src/index.d.ts +2 -1
- package/dist/src/index.js +2 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/internal/enum.d.ts +21 -0
- package/dist/src/internal/enum.js +23 -1
- package/dist/src/internal/enum.js.map +1 -1
- package/dist/src/nile-floating-panel/index.js.map +1 -1
- package/dist/src/nile-floating-panel/nile-floating-panel.css.d.ts +1 -1
- package/dist/src/nile-floating-panel/nile-floating-panel.css.js +147 -20
- package/dist/src/nile-floating-panel/nile-floating-panel.css.js.map +1 -1
- package/dist/src/nile-floating-panel/nile-floating-panel.d.ts +92 -24
- package/dist/src/nile-floating-panel/nile-floating-panel.js +489 -159
- package/dist/src/nile-floating-panel/nile-floating-panel.js.map +1 -1
- package/dist/src/nile-icon/icons/svg/folder_delete.d.ts +5 -0
- package/dist/src/nile-icon/icons/svg/folder_delete.js +5 -0
- package/dist/src/nile-icon/icons/svg/folder_delete.js.map +1 -0
- package/dist/src/nile-icon/icons/svg/index.d.ts +1 -0
- package/dist/src/nile-icon/icons/svg/index.js +1 -0
- package/dist/src/nile-icon/icons/svg/index.js.map +1 -1
- package/dist/src/nile-icon/icons/svg/layers-three-02.d.ts +1 -1
- package/dist/src/nile-icon/icons/svg/layers-three-02.js +1 -1
- package/dist/src/nile-icon/icons/svg/layers-three-02.js.map +1 -1
- package/dist/src/nile-otp-input/index.d.ts +1 -0
- package/dist/src/nile-otp-input/index.js +2 -0
- package/dist/src/nile-otp-input/index.js.map +1 -0
- package/dist/src/nile-otp-input/nile-otp-input.css.d.ts +12 -0
- package/dist/src/nile-otp-input/nile-otp-input.css.js +269 -0
- package/dist/src/nile-otp-input/nile-otp-input.css.js.map +1 -0
- package/dist/src/nile-otp-input/nile-otp-input.d.ts +156 -0
- package/dist/src/nile-otp-input/nile-otp-input.enum.d.ts +26 -0
- package/dist/src/nile-otp-input/nile-otp-input.enum.js +32 -0
- package/dist/src/nile-otp-input/nile-otp-input.enum.js.map +1 -0
- package/dist/src/nile-otp-input/nile-otp-input.js +762 -0
- package/dist/src/nile-otp-input/nile-otp-input.js.map +1 -0
- package/dist/src/nile-otp-input/nile-otp-input.test.d.ts +1 -0
- package/dist/src/nile-otp-input/nile-otp-input.test.js +493 -0
- package/dist/src/nile-otp-input/nile-otp-input.test.js.map +1 -0
- package/dist/src/version.js +2 -2
- package/dist/src/version.js.map +1 -1
- package/dist/tippy.esm-57628c2b.esm.js +1 -0
- package/dist/tippy.esm-78baa8f2.cjs.js +2 -0
- package/dist/tippy.esm-78baa8f2.cjs.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +5 -3
- package/plop-templates/lit/index.ts.hbs +1 -1
- package/plop-templates/lit/lit.css.ts.hbs +1 -1
- package/plop-templates/lit/lit.ts.hbs +1 -1
- package/src/index.ts +3 -2
- package/src/internal/enum.ts +23 -1
- package/src/nile-floating-panel/index.ts +0 -1
- package/src/nile-floating-panel/nile-floating-panel.css.ts +149 -21
- package/src/nile-floating-panel/nile-floating-panel.ts +498 -190
- package/src/nile-icon/icons/svg/folder_delete.ts +5 -0
- package/src/nile-icon/icons/svg/index.ts +1 -0
- package/src/nile-icon/icons/svg/layers-three-02.ts +1 -1
- package/src/nile-otp-input/index.ts +1 -0
- package/src/nile-otp-input/nile-otp-input.css.ts +271 -0
- package/src/nile-otp-input/nile-otp-input.enum.ts +30 -0
- package/src/nile-otp-input/nile-otp-input.test.ts +732 -0
- package/src/nile-otp-input/nile-otp-input.ts +835 -0
- package/vscode-html-custom-data.json +383 -23
- package/dist/nile-floating-panel/anchor-manager.cjs.js +0 -2
- package/dist/nile-floating-panel/anchor-manager.cjs.js.map +0 -1
- package/dist/nile-floating-panel/anchor-manager.esm.js +0 -1
- package/dist/nile-floating-panel/content-manager.cjs.js +0 -2
- package/dist/nile-floating-panel/content-manager.cjs.js.map +0 -1
- package/dist/nile-floating-panel/content-manager.esm.js +0 -1
- package/dist/nile-floating-panel/event-manager.cjs.js +0 -2
- package/dist/nile-floating-panel/event-manager.cjs.js.map +0 -1
- package/dist/nile-floating-panel/event-manager.esm.js +0 -1
- package/dist/nile-floating-panel/position-manager.cjs.js +0 -2
- package/dist/nile-floating-panel/position-manager.cjs.js.map +0 -1
- package/dist/nile-floating-panel/position-manager.esm.js +0 -1
- package/dist/nile-floating-panel/style-manager.cjs.js +0 -2
- package/dist/nile-floating-panel/style-manager.cjs.js.map +0 -1
- package/dist/nile-floating-panel/style-manager.esm.js +0 -1
- package/dist/nile-floating-panel/types.cjs.js +0 -2
- package/dist/nile-floating-panel/types.cjs.js.map +0 -1
- package/dist/nile-floating-panel/types.esm.js +0 -1
- package/dist/src/nile-floating-panel/anchor-manager.d.ts +0 -6
- package/dist/src/nile-floating-panel/anchor-manager.js +0 -27
- package/dist/src/nile-floating-panel/anchor-manager.js.map +0 -1
- package/dist/src/nile-floating-panel/content-manager.d.ts +0 -5
- package/dist/src/nile-floating-panel/content-manager.js +0 -44
- package/dist/src/nile-floating-panel/content-manager.js.map +0 -1
- package/dist/src/nile-floating-panel/event-manager.d.ts +0 -14
- package/dist/src/nile-floating-panel/event-manager.js +0 -52
- package/dist/src/nile-floating-panel/event-manager.js.map +0 -1
- package/dist/src/nile-floating-panel/position-manager.d.ts +0 -17
- package/dist/src/nile-floating-panel/position-manager.js +0 -72
- package/dist/src/nile-floating-panel/position-manager.js.map +0 -1
- package/dist/src/nile-floating-panel/style-manager.d.ts +0 -9
- package/dist/src/nile-floating-panel/style-manager.js +0 -44
- package/dist/src/nile-floating-panel/style-manager.js.map +0 -1
- package/dist/src/nile-floating-panel/types.d.ts +0 -11
- package/dist/src/nile-floating-panel/types.js +0 -2
- package/dist/src/nile-floating-panel/types.js.map +0 -1
- package/src/nile-floating-panel/anchor-manager.ts +0 -33
- package/src/nile-floating-panel/content-manager.ts +0 -54
- package/src/nile-floating-panel/event-manager.ts +0 -74
- package/src/nile-floating-panel/position-manager.ts +0 -102
- package/src/nile-floating-panel/style-manager.ts +0 -54
- package/src/nile-floating-panel/types.ts +0 -15
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
import{css as r}from"lit";const o=r`
|
|
2
|
+
:host {
|
|
3
|
+
display: block;
|
|
4
|
+
--ng-private-outline-transparent: var(--ng-border-width-1) solid transparent;
|
|
5
|
+
-webkit-font-smoothing: var(--nile-webkit-font-smoothing, var(--ng-webkit-font-smoothing, antialiased));
|
|
6
|
+
-moz-osx-font-smoothing: var(--nile-moz-osx-font-smoothing, var(--ng-moz-osx-font-smoothing, grayscale));
|
|
7
|
+
text-rendering: var(--nile-text-rendering, var(--ng-text-rendering, optimizeLegibility));
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.form-control {
|
|
11
|
+
display: flex;
|
|
12
|
+
flex-direction: column;
|
|
13
|
+
gap: var(--nile-spacing-sm, var(--ng-spacing-1-5));
|
|
14
|
+
align-items: flex-start;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.form-control .form-control__label {
|
|
18
|
+
display: none;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.form-control--has-label .form-control__label {
|
|
22
|
+
display: inline-block;
|
|
23
|
+
color: var(--nile-colors-dark-900, var(--ng-colors-text-secondary-700));
|
|
24
|
+
font-family: var(--nile-font-family-serif, var(--ng-font-family-body ));
|
|
25
|
+
font-size: var(--nile-type-scale-3, var(--ng-font-size-text-sm ));
|
|
26
|
+
font-style: normal;
|
|
27
|
+
font-weight: var(--nile-font-weight-medium, var(--ng-font-weight-500 ));
|
|
28
|
+
line-height: var(--nile-type-scale-6, var(--ng-line-height-text-sm ));
|
|
29
|
+
letter-spacing: 0.2px;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
:host([required]) .form-control--has-label .form-control__label::after {
|
|
33
|
+
content: '*';
|
|
34
|
+
margin-inline-start: -2px;
|
|
35
|
+
color: var(--nile-colors-red-700, var(--ng-colors-text-error-primary-600));
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.otp {
|
|
39
|
+
position: relative;
|
|
40
|
+
display: flex;
|
|
41
|
+
align-items: center;
|
|
42
|
+
gap: var(--nile-spacing-md, var(--ng-spacing-2));
|
|
43
|
+
width: fit-content;
|
|
44
|
+
max-width: 100%;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/* ---- Base cell ---- */
|
|
48
|
+
|
|
49
|
+
.otp__cell {
|
|
50
|
+
box-sizing: border-box;
|
|
51
|
+
width: var(--nile-spacing-5xl, var(--ng-spacing-10));
|
|
52
|
+
height: var(--nile-spacing-5xl, var(--ng-spacing-10));
|
|
53
|
+
min-height: var(--nile-spacing-5xl, var(--ng-spacing-10));
|
|
54
|
+
padding: var(--nile-spacing-xxs, var(--ng-spacing-0-5)) var(--nile-spacing-md, var(--ng-spacing-2));
|
|
55
|
+
border: 1px solid var(--nile-colors-border-field, var(--ng-colors-border-primary));
|
|
56
|
+
border-radius: var(--nile-radius-radius-2xl, var(--ng-radius-lg));
|
|
57
|
+
background-color: var(--nile-colors-white-base, var(--ng-colors-bg-primary));
|
|
58
|
+
box-shadow: var(--nile-box-shadow-1, var(--ng-shadow-xs));
|
|
59
|
+
outline: var(--nile-outline-none, var(--ng-private-outline-transparent));
|
|
60
|
+
color: var(--nile-colors-dark-500, var(--ng-colors-text-placeholder-subtle));
|
|
61
|
+
text-align: center;
|
|
62
|
+
font-family: var(--nile-font-family, var(--ng-font-family-display));
|
|
63
|
+
font-size: var(--nile-type-scale-4, var(--ng-font-size-text-md));
|
|
64
|
+
font-style: normal;
|
|
65
|
+
font-weight: var(--nile-font-weight-medium, var(--ng-font-weight-500));
|
|
66
|
+
line-height: var(--nile-type-scale-4, var(--ng-line-height-text-md));
|
|
67
|
+
letter-spacing: 0.2px;
|
|
68
|
+
overflow: clip;
|
|
69
|
+
caret-color: transparent;
|
|
70
|
+
cursor: pointer;
|
|
71
|
+
transition: 150ms color, 150ms border, 150ms box-shadow, 150ms background-color, 150ms outline;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.otp__cell[type='password'] {
|
|
75
|
+
font-family: caption;
|
|
76
|
+
letter-spacing: 0;
|
|
77
|
+
}
|
|
78
|
+
/* ---- Hover (mirrors .input--standard:hover) ---- */
|
|
79
|
+
|
|
80
|
+
.otp:not(.otp--disabled):not(.otp--readonly) .otp__cell:hover {
|
|
81
|
+
border-color: var(--nile-colors-dark-900, var(--ng-colors-border-neutral));
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.otp--warning:not(.otp--disabled) .otp__cell:hover {
|
|
85
|
+
border-color: var(--nile-colors-dark-900, var(--ng-colors-border-warning));
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
.otp--error:not(.otp--disabled) .otp__cell:hover {
|
|
89
|
+
border-color: var(--nile-colors-dark-900, var(--ng-colors-border-error));
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
.otp--success:not(.otp--disabled) .otp__cell:hover {
|
|
93
|
+
border-color: var(--nile-colors-dark-900, var(--ng-colors-border-success));
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/* ---- Focus / active cell (mirrors .input--standard.input--focused) ---- */
|
|
97
|
+
|
|
98
|
+
.otp__cell:focus {
|
|
99
|
+
outline: none;
|
|
100
|
+
background-color: var(--nile-colors-white-base, var(--ng-colors-bg-primary));
|
|
101
|
+
border-color: var(--nile-colors-primary-500, var(--ng-colors-border-brand ));
|
|
102
|
+
box-shadow: var(--nile-input-shadow-standard-focused-not-disabled, var(--ng-box-shadow-1));
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
.otp__cell--active {
|
|
106
|
+
position: relative;
|
|
107
|
+
cursor: text;
|
|
108
|
+
caret-color: auto;
|
|
109
|
+
background-color: var(--nile-colors-white-base, var(--ng-colors-bg-primary ));
|
|
110
|
+
border-color: var(--nile-colors-primary-500, var(--ng-colors-border-brand ));
|
|
111
|
+
box-shadow: var(--nile-input-shadow-standard-focused-not-disabled, var(--ng-box-shadow-1));
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
.otp__cell--active::before {
|
|
115
|
+
content: "";
|
|
116
|
+
position: absolute;
|
|
117
|
+
inset: 0;
|
|
118
|
+
pointer-events: none;
|
|
119
|
+
border-radius: inherit;
|
|
120
|
+
box-shadow: inset 0 0 0 1px var(--nile-colors-primary-500, var(--ng-colors-border-brand));
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
.otp--warning .otp__cell:focus,
|
|
124
|
+
.otp--warning .otp__cell--active {
|
|
125
|
+
border-color: var(--nile-colors-primary-500, var(--ng-colors-border-warning));
|
|
126
|
+
box-shadow: var(--nile-input-shadow-standard-focused-not-disabled, var(--ng-box-shadow-1));
|
|
127
|
+
outline: var(--nile-border-width-1, var(--ng-border-width-1)) solid var(--nile-outline-none, var(--ng-colors-border-warning));
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
.otp--warning .otp__cell--active::before {
|
|
131
|
+
box-shadow: inset 0 0 0 1px var(--nile-colors-yellow-500, var(--ng-colors-border-warning));
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
.otp--success .otp__cell:focus,
|
|
135
|
+
.otp--success .otp__cell--active {
|
|
136
|
+
border-color: var(--nile-colors-primary-500, var(--ng-colors-border-success));
|
|
137
|
+
box-shadow: var(--nile-input-shadow-standard-focused-not-disabled, var(--ng-box-shadow-1));
|
|
138
|
+
outline: var(--nile-border-width-1, var(--ng-border-width-1)) solid var(--nile-outline-none, var(--ng-colors-border-success));
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
.otp--success .otp__cell--active::before {
|
|
142
|
+
box-shadow: inset 0 0 0 1px var(--nile-colors-green-500, var(--ng-colors-border-success));
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
.otp--error .otp__cell:focus,
|
|
146
|
+
.otp--error .otp__cell--active {
|
|
147
|
+
border-color: var(--nile-colors-primary-500, var(--ng-colors-border-error));
|
|
148
|
+
box-shadow: var(--nile-input-shadow-standard-focused-not-disabled, var(--ng-box-shadow-1));
|
|
149
|
+
outline: var(--nile-border-width-1, var(--ng-border-width-1)) solid var(--nile-outline-none, var(--ng-colors-border-error));
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
.otp--error .otp__cell--active::before {
|
|
153
|
+
box-shadow: inset 0 0 0 1px var(--nile-colors-red-500, var(--ng-colors-border-error));
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
.otp__cell::selection {
|
|
157
|
+
background-color: var(--nile-colors-primary-600, var(--ng-colors-bg-brand-primary ));
|
|
158
|
+
color: var(--nile-colors-white-base, var(--ng-colors-fg-white));
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
.otp__cell::placeholder {
|
|
162
|
+
color: var(--nile-colors-dark-500, var(--ng-colors-text-placeholder-subtle));
|
|
163
|
+
opacity: 0.9;
|
|
164
|
+
font-weight: var(--nile-font-weight-medium, var(--ng-font-weight-500));
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
/* ---- Separator ---- */
|
|
168
|
+
|
|
169
|
+
.otp__separator {
|
|
170
|
+
display: inline-flex;
|
|
171
|
+
align-items: center;
|
|
172
|
+
justify-content: center;
|
|
173
|
+
flex-shrink: 0;
|
|
174
|
+
color: var(--nile-colors-dark-500, var(--ng-colors-text-placeholder-subtle));
|
|
175
|
+
font-family: var(--nile-font-family, var(--ng-font-family-display ));
|
|
176
|
+
font-size: var(--nile-type-scale-7, var(--ng-font-size-text-xl));
|
|
177
|
+
font-weight: var(--nile-font-weight-medium, var(--ng-font-weight-500));
|
|
178
|
+
line-height: var(--nile-type-scale-7, var(--ng-line-height-text-xl));
|
|
179
|
+
user-select: none;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
/* ---- State: warning ---- */
|
|
183
|
+
|
|
184
|
+
.otp--warning .otp__cell {
|
|
185
|
+
border-color: var(--nile-colors-yellow-500, var(--ng-colors-border-warning-subtle ));
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
/* ---- State: error ---- */
|
|
189
|
+
|
|
190
|
+
.otp--error .otp__cell {
|
|
191
|
+
border-color: var(--nile-colors-red-500, var(--ng-colors-border-error-subtle ));
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
/* ---- State: success ---- */
|
|
195
|
+
|
|
196
|
+
.otp--success .otp__cell {
|
|
197
|
+
border-color: var(--nile-colors-green-500, var(--ng-colors-border-success-subtle));
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
/* ---- State: readonly ---- */
|
|
201
|
+
|
|
202
|
+
.otp--readonly .otp__cell {
|
|
203
|
+
cursor: default;
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
/* ---- State: disabled (mirrors .input--standard.input--disabled) ---- */
|
|
207
|
+
|
|
208
|
+
.otp--disabled .otp__cell {
|
|
209
|
+
cursor: not-allowed;
|
|
210
|
+
color: var(--nile-colors-neutral-500, var(--ng-colors-text-disabled ));
|
|
211
|
+
border-color: var(--nile-colors-neutral-500, var(--ng-colors-border-disabled ));
|
|
212
|
+
background-color: var(--nile-colors-white-base, var(--ng-colors-bg-disabled-subtle ));
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
.otp--disabled .otp__cell::placeholder {
|
|
216
|
+
color: var(--nile-input-standard-disabled-placeholder-font-color, var(--ng-colors-text-disabled ));
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
/* ---- Hidden value input ---- */
|
|
220
|
+
|
|
221
|
+
.otp__value-input {
|
|
222
|
+
position: absolute;
|
|
223
|
+
top: 0;
|
|
224
|
+
left: 0;
|
|
225
|
+
width: 100%;
|
|
226
|
+
height: 100%;
|
|
227
|
+
padding: 0;
|
|
228
|
+
margin: 0;
|
|
229
|
+
opacity: 0;
|
|
230
|
+
z-index: -1;
|
|
231
|
+
pointer-events: none;
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
/* ---- Help text ---- */
|
|
235
|
+
|
|
236
|
+
.form-control__help-text {
|
|
237
|
+
color: var(--nile-colors-dark-900, var(--ng-colors-text-tertiary-600));
|
|
238
|
+
font-family: var(--nile-font-family-serif, var(--ng-font-family-body ));
|
|
239
|
+
font-size: var(--nile-type-scale-2, var(--ng-font-size-text-sm ));
|
|
240
|
+
font-style: normal;
|
|
241
|
+
font-weight: var(--nile-font-weight-regular, var(--ng-font-weight-400 ));
|
|
242
|
+
line-height: var(--nile-type-scale-2, var(--ng-line-height-text-sm ));
|
|
243
|
+
letter-spacing: 0.2px;
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
/* ---- Error message ---- */
|
|
247
|
+
|
|
248
|
+
.form-control__error-message {
|
|
249
|
+
display: block;
|
|
250
|
+
color: var(--nile-colors-red-700, var(--ng-colors-text-error-primary-600));
|
|
251
|
+
margin-top: var(--nile-spacing-lg, var(--ng-spacing-1-5 ));
|
|
252
|
+
font-size: var(--nile-type-scale-2, var(--ng-font-size-text-sm ));
|
|
253
|
+
font-style: normal;
|
|
254
|
+
line-height: var(--nile-form-error-text-line-height, var(--ng-line-height-text-sm));
|
|
255
|
+
letter-spacing: 0.2px;
|
|
256
|
+
}
|
|
257
|
+
`;export{o as s};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
System.register([],function(_export,_context){"use strict";var n,e,t,a,o;_export({a:void 0,b:void 0,d:void 0,O:void 0,c:void 0});return{setters:[],execute:function execute(){!function(n){n.NONE="none",n.TEXT="text",n.DECIMAL="decimal",n.NUMERIC="numeric",n.TEL="tel",n.SEARCH="search",n.EMAIL="email",n.URL="url";}(n||_export("a",n={})),function(n){n.TEXT="text",n.PASSWORD="password";}(e||_export("b",e={})),function(n){n.DONE="done",n.NEXT="next";}(t||_export("d",t={})),function(n){n.ONE_TIME_CODE="one-time-code",n.OFF="off";}(a||_export("O",a={})),function(n){n.NUMERIC="[0-9]*",n.ALPHANUMERIC="[A-Za-z0-9]*";}(o||_export("c",o={}));}};});
|
|
2
|
+
//# sourceMappingURL=nile-otp-input.enum.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nile-otp-input.enum.cjs.js","sources":["../../../src/nile-otp-input/nile-otp-input.enum.ts"],"sourcesContent":["export enum OtpInputMode {\n NONE = 'none',\n TEXT = 'text',\n DECIMAL = 'decimal',\n NUMERIC = 'numeric',\n TEL = 'tel',\n SEARCH = 'search',\n EMAIL = 'email',\n URL = 'url',\n}\n\nexport enum OtpInputType {\n TEXT = 'text',\n PASSWORD = 'password',\n}\n\nexport enum OtpEnterKeyHint {\n DONE = 'done',\n NEXT = 'next',\n}\n\nexport enum OtpAutoComplete {\n ONE_TIME_CODE = 'one-time-code',\n OFF = 'off',\n}\n\nexport enum OtpCellPattern {\n NUMERIC = '[0-9]*',\n ALPHANUMERIC = '[A-Za-z0-9]*',\n}\n"],"names":["OtpInputMode","NONE","TEXT","DECIMAL","NUMERIC","TEL","SEARCH","EMAIL","URL","OtpInputType","PASSWORD","OtpEnterKeyHint","DONE","NEXT","OtpAutoComplete","ONE_TIME_CODE","OFF","OtpCellPattern","ALPHANUMERIC"],"mappings":"+KAAA,SAAYA,CAAAA,CAAAA,CACVA,EAAAC,IAAA,CAAA,MAAA,CACAD,EAAAE,IAAA,CAAA,MAAA,CACAF,EAAAG,OAAA,CAAA,SAAA,CACAH,EAAAI,OAAA,CAAA,SAAA,CACAJ,CAAA,CAAAK,GAAA,CAAA,KACAL,CAAAA,CAAAA,CAAAM,OAAA,QACAN,CAAAA,CAAAA,CAAAO,MAAA,OACAP,CAAAA,CAAAA,CAAAQ,IAAA,KACD,EATD,CAAYR,CAAAA,EAAAA,OAAAA,KAAAA,CAAAA,CASX,CAAA,CAED,CAAA,CAAA,CAAA,SAAYS,GACVA,CAAA,CAAAP,IAAA,CAAA,OACAO,CAAA,CAAAC,QAAA,CAAA,UACD,EAHD,CAAYD,CAAAA,EAAAA,OAAAA,KAAAA,EAGX,CAAA,CAAA,CAAA,CAAA,CAED,SAAYE,CACVA,CAAAA,CAAAA,CAAAA,CAAAC,KAAA,MACAD,CAAAA,CAAAA,CAAAE,KAAA,MACD,EAHD,CAAYF,CAAAA,EAAAA,OAAAA,KAAAA,CAAAA,CAGX,CAAA,CAED,CAAA,CAAA,CAAA,SAAYG,GACVA,CAAA,CAAAC,aAAA,CAAA,eACAD,CAAAA,CAAAA,CAAAE,GAAA,CAAA,KACD,EAHD,CAAYF,CAAAA,EAAAA,OAAAA,KAAAA,EAGX,CAAA,CAAA,CAAA,CAAA,CAED,SAAYG,CACVA,CAAAA,CAAAA,CAAAA,CAAAb,QAAA,QACAa,CAAAA,CAAAA,CAAAC,aAAA,cACD,EAHD,CAAYD,CAAAA,EAAAA,OAAAA,KAAAA,CAAAA,CAGX,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var n,e,t,a,o;!function(n){n.NONE="none",n.TEXT="text",n.DECIMAL="decimal",n.NUMERIC="numeric",n.TEL="tel",n.SEARCH="search",n.EMAIL="email",n.URL="url"}(n||(n={})),function(n){n.TEXT="text",n.PASSWORD="password"}(e||(e={})),function(n){n.DONE="done",n.NEXT="next"}(t||(t={})),function(n){n.ONE_TIME_CODE="one-time-code",n.OFF="off"}(a||(a={})),function(n){n.NUMERIC="[0-9]*",n.ALPHANUMERIC="[A-Za-z0-9]*"}(o||(o={}));export{a as O,n as a,e as b,o as c,t as d};
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import{__decorate as t}from"tslib";import{html as i}from"lit";import{query as e,queryAll as s,state as r,property as h,customElement as l}from"lit/decorators.js";import{classMap as a}from"lit/directives/class-map.js";import{ifDefined as o}from"lit/directives/if-defined.js";import{live as n}from"lit/directives/live.js";import{d}from"../internal/default-value.esm.js";import{F as u,v as c}from"../internal/form.esm.js";import{H as p}from"../internal/slot.esm.js";import{w as m}from"../internal/watch.esm.js";import{N as f}from"../internal/nile-element.esm.js";import{N as v,K as b}from"../internal/enum.esm.js";import{s as g}from"./nile-otp-input.css.esm.js";import{O as y,a as $,b as C,c as x,d as _}from"./nile-otp-input.enum.esm.js";import"../nile-form-help-text/nile-form-help-text.esm.js";import"../nile-form-error-message/nile-form-error-message.esm.js";import"../nile-form-help-text/nile-form-help-text.css.esm.js";import"../nile-form-error-message/nile-form-error-message.css.esm.js";let j=class extends f{constructor(){super(...arguments),this.formControlController=new u(this,{assumeInteractionOn:[v.NILE_BLUR,v.NILE_INPUT]}),this.hasSlotController=new p(this,"help-text","label"),this.customValidationMessage="",this.wasComplete=!1,this.hasFocus=!1,this.activeIndex=-1,this.cells=this.createCells(""),this.name="",this.value="",this.defaultValue="",this.length=6,this.numericOnly=!0,this.alphanumeric=!1,this.label="",this.helpText="",this.errorMessage="",this.placeholder="",this.separator="",this.separatorEvery=0,this.separatorPositions="",this.masked=!1,this.warning=!1,this.error=!1,this.success=!1,this.disabled=!1,this.readonly=!1,this.form="",this.required=!1,this.autofocus=!1,this.autocomplete=y.ONE_TIME_CODE}connectedCallback(){super.connectedCallback(),this.emit(v.NILE_INIT)}disconnectedCallback(){super.disconnectedCallback(),this.emit(v.NILE_DESTROY)}firstUpdated(){const t=this.normalizeValue(this.value);t===this.value?(this.syncCellsFromValue(t),this.wasComplete=this.isComplete(t),this.valueInput.setCustomValidity(this.customValidationMessage),this.formControlController.updateValidity(),this.autofocus&&this.focus()):this.value=t}get validity(){return this.valueInput?.validity??c}get validationMessage(){return this.valueInput?.validationMessage??""}get complete(){return this.isComplete(this.value)}getNormalizedLength(){const t=Number.isFinite(this.length)?Math.trunc(this.length):6;return Math.max(4,t)}isNumericMode(){return this.numericOnly&&!this.alphanumeric}getResolvedInputMode(){return this.inputmode??(this.isNumericMode()?$.NUMERIC:$.TEXT)}getValidationPattern(){if(this.pattern)return this.pattern;const t=this.getNormalizedLength();return this.isNumericMode()?`[0-9]{${t}}`:`[A-Za-z0-9]{${t}}`}isAllowedCharacter(t){return this.isNumericMode()?/^[0-9]$/.test(t):/^[A-Za-z0-9]$/.test(t)}toOtpCharacters(t){return Array.from(t??"").filter((t=>this.isAllowedCharacter(t)))}normalizeValue(t){return this.toOtpCharacters(t??"").slice(0,this.getNormalizedLength()).join("")}createCells(t){const i=this.getNormalizedLength(),e=this.toOtpCharacters(t).slice(0,i);return Array.from({length:i},((t,i)=>e[i]??""))}syncCellsFromValue(t){this.cells=this.createCells(t)}isComplete(t){return t.length===this.getNormalizedLength()}getFirstEmptyIndex(){const t=this.cells.findIndex((t=>""===t));return-1===t?this.getNormalizedLength()-1:t}getSeparatorIndices(){const t=this.getNormalizedLength()-2,i=new Set;if(Number.isInteger(this.separatorEvery)&&this.separatorEvery>0)for(let e=this.separatorEvery-1;e<=t;e+=this.separatorEvery)i.add(e);return this.separatorPositions.trim().length>0&&this.separatorPositions.split(",").map((t=>Number.parseInt(t.trim(),10))).filter((i=>Number.isInteger(i)&&i>=0&&i<=t)).forEach((t=>i.add(t))),i}getCellPlaceholder(t){if(this.placeholder&&!this.cells[t])return-1===this.activeIndex?t===this.getFirstEmptyIndex()?this.placeholder:void 0:t===this.activeIndex?this.placeholder:void 0}focusCell(t,i){const e=this.cellInputs?.[t];e&&(e.focus(i),e.select())}updateCell(t,i){const e=[...this.cells];e[t]=i,this.cells=e}fillFromIndex(t,i){const e=[...this.cells];let s=t;for(const t of i){if(s>=e.length)break;e[s]=t,s+=1}return this.cells=e,s}commitUserValueUpdate(){const t=this.value,i=this.cells.join(""),e=this.isComplete(i);this.value=i,this.valueInput.value=i,this.valueInput.setCustomValidity(this.customValidationMessage),this.formControlController.updateValidity(),this.emit(v.NILE_INPUT,{value:i,complete:e}),t!==i&&this.emit(v.NILE_CHANGE,{value:i,complete:e}),e&&!this.wasComplete&&this.emit(v.NILE_COMPLETE,{value:i}),this.wasComplete=e}handleInvalid(t){this.formControlController.setValidity(!1),this.formControlController.emitInvalidEvent(t)}handleCellFocus(t){const i=t.target,e=Number(i.dataset.index??-1),s=this.getFirstEmptyIndex();e>s||e<s&&!this.cells[e]?this.focusCell(s):(this.activeIndex=e,i.select(),this.hasFocus||(this.hasFocus=!0,this.emit(v.NILE_FOCUS,{value:this.value})))}handleCellBlur(){queueMicrotask((()=>{const t=this.shadowRoot?.activeElement;!(t instanceof HTMLInputElement&&t.classList.contains("otp__cell"))&&this.hasFocus&&(this.hasFocus=!1,this.activeIndex=-1,this.emit(v.NILE_BLUR,{value:this.value}))}))}handleCellInput(t){const i=t.target,e=Number(i.dataset.index??0);if(this.disabled||this.readonly)return void(i.value=this.cells[e]??"");const s=this.toOtpCharacters(i.value);if(0===s.length)return this.updateCell(e,""),void this.commitUserValueUpdate();if(1===s.length){this.updateCell(e,s[0]),this.commitUserValueUpdate();const t=this.getFirstEmptyIndex();return void this.focusCell(t)}this.fillFromIndex(e,s),this.commitUserValueUpdate();const r=this.getFirstEmptyIndex();this.focusCell(r)}handleCellPaste(t){if(this.disabled||this.readonly)return;const i=t.clipboardData?.getData("text")??"",e=this.toOtpCharacters(i);if(!e.length)return;t.preventDefault(),this.fillFromIndex(0,e),this.commitUserValueUpdate();const s=this.getFirstEmptyIndex();this.focusCell(s),this.emit(v.NILE_PASTE,{value:this.value})}handleCellKeyDown(t){const i=t.metaKey||t.ctrlKey||t.altKey,e=t.target,s=Number(e.dataset.index??0);if(t.key===b.ENTER&&!i&&!t.shiftKey)return void setTimeout((()=>{t.defaultPrevented||t.isComposing||this.formControlController.submit()}));if(this.disabled||this.readonly)return;if(t.key===b.BACKSPACE||t.key===b.DELETE||t.key===b.ARROW_LEFT||t.key===b.ARROW_RIGHT||t.key===b.HOME||t.key===b.END||t.key===b.SPACE||1===t.key.length&&!i){if(t.preventDefault(),t.key===b.BACKSPACE)return this.cells[s]?(this.updateCell(s,""),this.commitUserValueUpdate(),void(s>0&&this.focusCell(s-1))):void(s>0&&(this.updateCell(s-1,""),this.commitUserValueUpdate(),this.focusCell(s-1)));if(t.key!==b.DELETE)if(t.key!==b.ARROW_LEFT)if(t.key!==b.ARROW_RIGHT)if(t.key!==b.HOME)if(t.key!==b.END){if(t.key!==b.SPACE&&1===t.key.length&&!i&&this.isAllowedCharacter(t.key)){this.updateCell(s,t.key),this.commitUserValueUpdate();const i=this.getFirstEmptyIndex();this.focusCell(i)}}else this.focusCell(this.getFirstEmptyIndex());else this.focusCell(0);else{s<this.getFirstEmptyIndex()&&this.focusCell(s+1)}else s>0&&this.focusCell(s-1);else this.cells[s]&&(this.updateCell(s,""),this.commitUserValueUpdate())}}handleLengthChange(){const t=this.getNormalizedLength();if(this.length!==t)return void(this.length=t);const i=this.normalizeValue(this.value);this.syncCellsFromValue(i),i===this.value?(this.wasComplete=this.isComplete(i),this.valueInput.value=i,this.valueInput.setCustomValidity(this.customValidationMessage),this.formControlController.updateValidity()):this.value=i}handleValueChange(){const t=this.normalizeValue(this.value);t===this.value?(this.syncCellsFromValue(t),this.wasComplete=this.isComplete(t),this.valueInput.value=t,this.valueInput.setCustomValidity(this.customValidationMessage),this.formControlController.updateValidity()):this.value=t}handleDisabledChange(){this.disabled?(this.hasFocus=!1,this.activeIndex=-1,this.formControlController.setValidity(!0)):this.formControlController.updateValidity()}handleNumericOnlyChange(){const t=this.normalizeValue(this.value);t===this.value?(this.syncCellsFromValue(t),this.wasComplete=this.isComplete(t),this.valueInput.value=t,this.valueInput.setCustomValidity(this.customValidationMessage),this.formControlController.updateValidity()):this.value=t}handlePatternChange(){this.valueInput.setCustomValidity(this.customValidationMessage),this.formControlController.updateValidity()}checkValidity(){return this.valueInput.checkValidity()}getForm(){return this.formControlController.getForm()}reportValidity(){return this.valueInput.reportValidity()}setCustomValidity(t){this.customValidationMessage=t,this.valueInput&&this.valueInput.setCustomValidity(t),this.formControlController.updateValidity()}focus(t){this.focusCell(this.getFirstEmptyIndex(),t)}blur(){const t=this.shadowRoot?.activeElement;t instanceof HTMLElement&&t.blur()}clear(){this.disabled||this.readonly||(this.cells=Array.from({length:this.getNormalizedLength()},(()=>"")),this.commitUserValueUpdate(),this.focusCell(0))}render(){const t=this.getNormalizedLength(),e=this.getSeparatorIndices(),s=this.hasSlotController.test("label"),r=this.hasSlotController.test("help-text"),h=Boolean(this.label||s),l=Boolean(this.helpText||r),d=Boolean(this.errorMessage),u=[l?"help-text":"",d?"error-message":""].filter(Boolean).join(" ");return i`
|
|
2
|
+
<div
|
|
3
|
+
part="form-control"
|
|
4
|
+
class=${a({"form-control":!0,"form-control--has-label":h})}
|
|
5
|
+
>
|
|
6
|
+
<label
|
|
7
|
+
id="label"
|
|
8
|
+
part="form-control-label"
|
|
9
|
+
class="form-control__label"
|
|
10
|
+
aria-hidden=${h?"false":"true"}
|
|
11
|
+
>
|
|
12
|
+
<slot name="label">${this.label}</slot>
|
|
13
|
+
</label>
|
|
14
|
+
|
|
15
|
+
<div part="form-control-input" class="form-control-input">
|
|
16
|
+
<div
|
|
17
|
+
part="base"
|
|
18
|
+
class=${a({otp:!0,"otp--warning":this.warning,"otp--error":this.error,"otp--success":this.success,"otp--disabled":this.disabled,"otp--readonly":this.readonly})}
|
|
19
|
+
role="group"
|
|
20
|
+
aria-labelledby=${o(h?"label":void 0)}
|
|
21
|
+
aria-label=${o(h?void 0:"One-time password")}
|
|
22
|
+
aria-describedby=${o(u||void 0)}
|
|
23
|
+
aria-disabled=${this.disabled?"true":"false"}
|
|
24
|
+
>
|
|
25
|
+
${Array.from({length:t},((s,r)=>{const h=this.cells[r]??"";return i`
|
|
26
|
+
<input
|
|
27
|
+
part="cell"
|
|
28
|
+
class=${a({otp__cell:!0,"otp__cell--active":this.activeIndex===r})}
|
|
29
|
+
data-index=${r}
|
|
30
|
+
type=${this.masked&&h&&this.activeIndex!==r?C.PASSWORD:C.TEXT}
|
|
31
|
+
maxlength="1"
|
|
32
|
+
.value=${n(h)}
|
|
33
|
+
?disabled=${this.disabled}
|
|
34
|
+
?readonly=${this.readonly}
|
|
35
|
+
placeholder=${o(this.getCellPlaceholder(r))}
|
|
36
|
+
inputmode=${o(this.getResolvedInputMode())}
|
|
37
|
+
pattern=${this.isNumericMode()?x.NUMERIC:x.ALPHANUMERIC}
|
|
38
|
+
autocapitalize="none"
|
|
39
|
+
autocorrect="off"
|
|
40
|
+
spellcheck="false"
|
|
41
|
+
autocomplete=${0===r?this.autocomplete:y.OFF}
|
|
42
|
+
enterkeyhint=${r===t-1?_.DONE:_.NEXT}
|
|
43
|
+
aria-label=${`Digit ${r+1} of ${t}`}
|
|
44
|
+
aria-describedby=${o(u||void 0)}
|
|
45
|
+
aria-invalid=${this.hasAttribute("data-user-invalid")?"true":"false"}
|
|
46
|
+
@focus=${this.handleCellFocus}
|
|
47
|
+
@blur=${this.handleCellBlur}
|
|
48
|
+
@keydown=${this.handleCellKeyDown}
|
|
49
|
+
@input=${this.handleCellInput}
|
|
50
|
+
@paste=${this.handleCellPaste}
|
|
51
|
+
/>
|
|
52
|
+
${this.separator&&e.has(r)?i`
|
|
53
|
+
<span
|
|
54
|
+
class="otp__separator"
|
|
55
|
+
part="separator"
|
|
56
|
+
aria-hidden="true"
|
|
57
|
+
>
|
|
58
|
+
${this.separator}
|
|
59
|
+
</span>
|
|
60
|
+
`:""}
|
|
61
|
+
`}))}
|
|
62
|
+
|
|
63
|
+
<input
|
|
64
|
+
class="otp__value-input"
|
|
65
|
+
type="text"
|
|
66
|
+
.value=${n(this.value)}
|
|
67
|
+
?required=${this.required}
|
|
68
|
+
?disabled=${this.disabled}
|
|
69
|
+
minlength=${t}
|
|
70
|
+
maxlength=${t}
|
|
71
|
+
pattern=${this.getValidationPattern()}
|
|
72
|
+
tabindex="-1"
|
|
73
|
+
aria-hidden="true"
|
|
74
|
+
@focus=${()=>this.focus()}
|
|
75
|
+
@invalid=${this.handleInvalid}
|
|
76
|
+
/>
|
|
77
|
+
</div>
|
|
78
|
+
</div>
|
|
79
|
+
|
|
80
|
+
${l?i`
|
|
81
|
+
<div
|
|
82
|
+
id="help-text"
|
|
83
|
+
part="form-control-help-text"
|
|
84
|
+
class="form-control__help-text"
|
|
85
|
+
>
|
|
86
|
+
<nile-form-help-text>
|
|
87
|
+
<slot name="help-text">${this.helpText}</slot>
|
|
88
|
+
</nile-form-help-text>
|
|
89
|
+
</div>
|
|
90
|
+
`:""}
|
|
91
|
+
${d?i`
|
|
92
|
+
<div
|
|
93
|
+
id="error-message"
|
|
94
|
+
part="form-control-error-message"
|
|
95
|
+
class="form-control__error-message"
|
|
96
|
+
>
|
|
97
|
+
<nile-form-error-message
|
|
98
|
+
>${this.errorMessage}</nile-form-error-message
|
|
99
|
+
>
|
|
100
|
+
</div>
|
|
101
|
+
`:""}
|
|
102
|
+
</div>
|
|
103
|
+
`}};j.styles=g,t([e(".otp__value-input")],j.prototype,"valueInput",void 0),t([s(".otp__cell")],j.prototype,"cellInputs",void 0),t([r()],j.prototype,"hasFocus",void 0),t([r()],j.prototype,"activeIndex",void 0),t([r()],j.prototype,"cells",void 0),t([h({reflect:!0,type:String,attribute:!0})],j.prototype,"name",void 0),t([h({reflect:!0,type:String,attribute:!0})],j.prototype,"value",void 0),t([d()],j.prototype,"defaultValue",void 0),t([h({type:Number,reflect:!0,attribute:!0})],j.prototype,"length",void 0),t([h({type:Boolean,reflect:!0,attribute:!0})],j.prototype,"numericOnly",void 0),t([h({type:Boolean,reflect:!0,attribute:!0})],j.prototype,"alphanumeric",void 0),t([h({reflect:!0,attribute:!0,type:String})],j.prototype,"label",void 0),t([h({attribute:!0,reflect:!0,type:String})],j.prototype,"helpText",void 0),t([h({attribute:!0,reflect:!0,type:String})],j.prototype,"errorMessage",void 0),t([h({reflect:!0,attribute:!0,type:String})],j.prototype,"placeholder",void 0),t([h({reflect:!0,type:String})],j.prototype,"separator",void 0),t([h({type:Number,attribute:!0,reflect:!0})],j.prototype,"separatorEvery",void 0),t([h({attribute:"separator-positions",type:String,reflect:!0})],j.prototype,"separatorPositions",void 0),t([h({type:Boolean,reflect:!0})],j.prototype,"masked",void 0),t([h({type:Boolean,attribute:!0,reflect:!0})],j.prototype,"warning",void 0),t([h({type:Boolean,attribute:!0,reflect:!0})],j.prototype,"error",void 0),t([h({type:Boolean,attribute:!0,reflect:!0})],j.prototype,"success",void 0),t([h({type:Boolean,reflect:!0,attribute:!0})],j.prototype,"disabled",void 0),t([h({type:Boolean,attribute:!0,reflect:!0})],j.prototype,"readonly",void 0),t([h({reflect:!0,attribute:!0,type:String})],j.prototype,"form",void 0),t([h({type:Boolean,reflect:!0,attribute:!0})],j.prototype,"required",void 0),t([h({reflect:!0,attribute:!0,type:String})],j.prototype,"pattern",void 0),t([h({type:Boolean,reflect:!0,attribute:!0})],j.prototype,"autofocus",void 0),t([h({reflect:!0,attribute:!0,type:String})],j.prototype,"inputmode",void 0),t([h({reflect:!0,type:String})],j.prototype,"autocomplete",void 0),t([m("length",{waitUntilFirstUpdate:!0})],j.prototype,"handleLengthChange",null),t([m("value",{waitUntilFirstUpdate:!0})],j.prototype,"handleValueChange",null),t([m("disabled",{waitUntilFirstUpdate:!0})],j.prototype,"handleDisabledChange",null),t([m("numericOnly",{waitUntilFirstUpdate:!0})],j.prototype,"handleNumericOnlyChange",null),t([m("pattern",{waitUntilFirstUpdate:!0})],j.prototype,"handlePatternChange",null),j=t([l("nile-otp-input")],j);export{j as N};
|