@hellboy/ds 0.1.3 → 0.2.7
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 +512 -162
- package/{src/style/components/badge → dist/components}/badge.css +9 -25
- package/dist/components/badge.d.mts +12 -0
- package/dist/components/badge.d.ts +12 -0
- package/dist/components/badge.js +42 -0
- package/dist/components/badge.mjs +15 -0
- package/dist/components/banner.css +280 -0
- package/dist/components/banner.d.mts +12 -0
- package/dist/components/banner.d.ts +12 -0
- package/dist/components/banner.js +184 -0
- package/dist/components/banner.mjs +147 -0
- package/dist/components/button-group.css +289 -0
- package/dist/components/button-group.d.mts +81 -0
- package/dist/components/button-group.d.ts +81 -0
- package/dist/components/button-group.js +180 -0
- package/dist/components/button-group.mjs +143 -0
- package/{src/style/components/button → dist/components}/button.css +59 -62
- package/dist/components/button.d.mts +57 -0
- package/dist/components/button.d.ts +57 -0
- package/dist/components/button.js +129 -0
- package/dist/components/button.mjs +92 -0
- package/{src/style/components/card → dist/components}/card.css +9 -30
- package/dist/components/card.d.mts +31 -0
- package/dist/components/card.d.ts +31 -0
- package/dist/components/card.js +59 -0
- package/dist/components/card.mjs +32 -0
- package/{src/style → dist}/components/checkbox.css +51 -43
- package/dist/components/checkbox.d.mts +31 -0
- package/dist/components/checkbox.d.ts +31 -0
- package/dist/components/checkbox.js +130 -0
- package/dist/components/checkbox.mjs +93 -0
- package/{src/style/components/code-block → dist/components}/code-block.css +3 -7
- package/dist/components/code-block.d.mts +24 -0
- package/dist/components/code-block.d.ts +24 -0
- package/dist/components/code-block.js +43 -0
- package/dist/components/code-block.mjs +16 -0
- package/dist/components/color-control.css +285 -0
- package/dist/components/color-control.d.mts +5 -0
- package/dist/components/color-control.d.ts +5 -0
- package/dist/components/color-control.js +534 -0
- package/dist/components/color-control.mjs +497 -0
- package/dist/components/dialog.css +930 -0
- package/dist/components/dialog.d.mts +32 -0
- package/dist/components/dialog.d.ts +32 -0
- package/dist/components/dialog.js +1111 -0
- package/dist/components/dialog.mjs +1074 -0
- package/dist/components/divider.css +356 -0
- package/dist/components/divider.d.mts +32 -0
- package/dist/components/divider.d.ts +32 -0
- package/dist/components/divider.js +344 -0
- package/dist/components/divider.mjs +307 -0
- package/{src/style/components/drag-handle → dist/components}/drag-handle.css +3 -18
- package/dist/components/drag-handle.d.mts +11 -0
- package/dist/components/drag-handle.d.ts +11 -0
- package/dist/components/drag-handle.js +103 -0
- package/dist/components/drag-handle.mjs +66 -0
- package/dist/components/drawer.css +1027 -0
- package/dist/components/drawer.d.mts +14 -0
- package/dist/components/drawer.d.ts +14 -0
- package/dist/components/drawer.js +1072 -0
- package/dist/components/drawer.mjs +1035 -0
- package/dist/components/floating-bar.css +17 -0
- package/dist/components/floating-bar.d.mts +25 -0
- package/dist/components/floating-bar.d.ts +25 -0
- package/dist/components/floating-bar.js +52 -0
- package/dist/components/floating-bar.mjs +25 -0
- package/dist/components/footer.css +40 -0
- package/dist/components/footer.d.mts +8 -0
- package/dist/components/footer.d.ts +8 -0
- package/dist/components/footer.js +44 -0
- package/dist/components/footer.mjs +17 -0
- package/dist/components/grid.css +47 -0
- package/dist/components/grid.d.mts +27 -0
- package/dist/components/grid.d.ts +27 -0
- package/dist/components/grid.js +52 -0
- package/dist/components/grid.mjs +25 -0
- package/dist/components/header.css +1075 -0
- package/dist/components/header.d.mts +35 -0
- package/dist/components/header.d.ts +35 -0
- package/dist/components/header.js +1402 -0
- package/dist/components/header.mjs +1365 -0
- package/dist/components/hero.css +121 -0
- package/dist/components/hero.d.mts +111 -0
- package/dist/components/hero.d.ts +111 -0
- package/dist/components/hero.js +285 -0
- package/dist/components/hero.mjs +248 -0
- package/{src/style/components/icons → dist/components}/icons.css +14 -15
- package/dist/components/icons.d.mts +104 -0
- package/dist/components/icons.d.ts +104 -0
- package/dist/components/icons.js +239 -0
- package/dist/components/icons.mjs +203 -0
- package/{src/style/components/input → dist/components}/input.css +189 -102
- package/dist/components/input.d.mts +114 -0
- package/dist/components/input.d.ts +114 -0
- package/dist/components/input.js +926 -0
- package/dist/components/input.mjs +879 -0
- package/dist/components/layout.css +551 -0
- package/dist/components/layout.d.mts +16 -0
- package/dist/components/layout.d.ts +16 -0
- package/dist/components/layout.js +387 -0
- package/dist/components/layout.mjs +352 -0
- package/{src/style/components/list → dist/components}/list.css +47 -41
- package/dist/components/list.d.mts +46 -0
- package/dist/components/list.d.ts +46 -0
- package/dist/components/list.js +124 -0
- package/dist/components/list.mjs +96 -0
- package/dist/components/navbar.css +706 -0
- package/dist/components/navbar.d.mts +56 -0
- package/dist/components/navbar.d.ts +56 -0
- package/dist/components/navbar.js +994 -0
- package/dist/components/navbar.mjs +952 -0
- package/{src/style/components/page-index → dist/components}/page-index.css +2 -47
- package/dist/components/page-index.d.mts +25 -0
- package/dist/components/page-index.d.ts +25 -0
- package/dist/components/page-index.js +239 -0
- package/dist/components/page-index.mjs +202 -0
- package/{src/style/components/page → dist/components}/page.css +4 -15
- package/dist/components/page.d.mts +30 -0
- package/dist/components/page.d.ts +30 -0
- package/dist/components/page.js +40 -0
- package/dist/components/page.mjs +13 -0
- package/dist/components/popover.css +87 -0
- package/dist/components/popover.d.mts +22 -0
- package/dist/components/popover.d.ts +22 -0
- package/dist/components/popover.js +243 -0
- package/dist/components/popover.mjs +206 -0
- package/{src/style → dist}/components/radio.css +8 -51
- package/dist/components/radio.d.mts +59 -0
- package/dist/components/radio.d.ts +59 -0
- package/dist/components/radio.js +133 -0
- package/dist/components/radio.mjs +95 -0
- package/dist/components/section.css +993 -0
- package/dist/components/section.d.mts +33 -0
- package/dist/components/section.d.ts +33 -0
- package/dist/components/section.js +1401 -0
- package/dist/components/section.mjs +1364 -0
- package/dist/components/select.css +391 -0
- package/dist/components/select.d.mts +63 -0
- package/dist/components/select.d.ts +63 -0
- package/dist/components/select.js +452 -0
- package/dist/components/select.mjs +415 -0
- package/{src/style/components/slider → dist/components}/slider.css +55 -33
- package/dist/components/slider.d.mts +69 -0
- package/dist/components/slider.d.ts +69 -0
- package/dist/components/slider.js +254 -0
- package/dist/components/slider.mjs +217 -0
- package/dist/components/switch.css +1081 -0
- package/dist/components/switch.d.mts +33 -0
- package/dist/components/switch.d.ts +33 -0
- package/dist/components/switch.js +1092 -0
- package/dist/components/switch.mjs +1055 -0
- package/{src/style/components/table → dist/components}/table.css +3 -28
- package/dist/components/table.d.mts +42 -0
- package/dist/components/table.d.ts +42 -0
- package/dist/components/table.js +108 -0
- package/dist/components/table.mjs +76 -0
- package/dist/components/tag.css +97 -0
- package/dist/components/tag.d.mts +12 -0
- package/dist/components/tag.d.ts +12 -0
- package/dist/components/tag.js +42 -0
- package/dist/components/tag.mjs +15 -0
- package/dist/components/textarea.css +1359 -0
- package/dist/components/textarea.d.mts +84 -0
- package/dist/components/textarea.d.ts +84 -0
- package/dist/components/textarea.js +1962 -0
- package/dist/components/textarea.mjs +1924 -0
- package/{src/style/components/theme-control → dist/components}/theme-control.css +3 -7
- package/dist/components/theme-control.d.mts +9 -0
- package/dist/components/theme-control.d.ts +9 -0
- package/dist/components/theme-control.js +235 -0
- package/dist/components/theme-control.mjs +200 -0
- package/{src/style/components/tooltip → dist/components}/tooltip.css +5 -13
- package/dist/components/tooltip.d.mts +12 -0
- package/dist/components/tooltip.d.ts +12 -0
- package/dist/components/tooltip.js +200 -0
- package/dist/components/tooltip.mjs +163 -0
- package/dist/icons-Czahnf-r.d.mts +15 -0
- package/dist/icons-Czahnf-r.d.ts +15 -0
- package/dist/index.css +2914 -2067
- package/dist/index.d.mts +144 -721
- package/dist/index.d.ts +144 -721
- package/dist/index.js +4076 -2282
- package/dist/index.mjs +4132 -2366
- package/dist/theme.css +34 -34
- package/package.json +27 -8
- package/dist/index.css.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/index.mjs.map +0 -1
- package/hellboy-ds-0.1.2.tgz +0 -0
- package/src/components/badge/Badge.tsx +0 -29
- package/src/components/badge/index.ts +0 -1
- package/src/components/banner/Banner.tsx +0 -48
- package/src/components/banner/banner.css +0 -44
- package/src/components/banner/index.ts +0 -1
- package/src/components/button/button.tsx +0 -127
- package/src/components/button/index.ts +0 -1
- package/src/components/card/card.tsx +0 -57
- package/src/components/card/index.ts +0 -1
- package/src/components/checkbox/Checkbox.tsx +0 -98
- package/src/components/checkbox/index.ts +0 -1
- package/src/components/code-block/code-block.tsx +0 -44
- package/src/components/code-block/index.ts +0 -1
- package/src/components/color-control/color-control.tsx +0 -322
- package/src/components/color-control/index.ts +0 -1
- package/src/components/drag-handle/DragHandle.tsx +0 -78
- package/src/components/drag-handle/index.ts +0 -1
- package/src/components/drawer/drawer.tsx +0 -82
- package/src/components/drawer/index.ts +0 -1
- package/src/components/floating-bar/floating-bar.tsx +0 -52
- package/src/components/floating-bar/index.ts +0 -2
- package/src/components/footer/footer.tsx +0 -28
- package/src/components/footer/index.ts +0 -1
- package/src/components/grid/Grid.tsx +0 -53
- package/src/components/grid/index.ts +0 -1
- package/src/components/header/header.tsx +0 -57
- package/src/components/header/index.ts +0 -1
- package/src/components/icons/icons.tsx +0 -44
- package/src/components/icons/index.ts +0 -1
- package/src/components/index.ts +0 -29
- package/src/components/input/DatePicker.tsx +0 -133
- package/src/components/input/Input.tsx +0 -220
- package/src/components/input/InputDate.tsx +0 -10
- package/src/components/input/InputDateTime.tsx +0 -10
- package/src/components/input/InputEmail.tsx +0 -10
- package/src/components/input/InputField.tsx +0 -137
- package/src/components/input/InputNumber.tsx +0 -10
- package/src/components/input/InputPassword.tsx +0 -10
- package/src/components/input/InputSearch.tsx +0 -10
- package/src/components/input/InputTel.tsx +0 -10
- package/src/components/input/InputText.tsx +0 -10
- package/src/components/input/InputTime.tsx +0 -10
- package/src/components/input/InputUrl.tsx +0 -10
- package/src/components/input/TimePicker.tsx +0 -151
- package/src/components/input/index.ts +0 -11
- package/src/components/layout/Layout.tsx +0 -244
- package/src/components/layout/index.ts +0 -1
- package/src/components/list/List.tsx +0 -159
- package/src/components/list/index.ts +0 -1
- package/src/components/navbar/MenuCategory.tsx +0 -20
- package/src/components/navbar/MenuGroup.tsx +0 -288
- package/src/components/navbar/MenuItem.tsx +0 -65
- package/src/components/navbar/Navbar.tsx +0 -23
- package/src/components/navbar/index.ts +0 -4
- package/src/components/page/index.ts +0 -1
- package/src/components/page/page.tsx +0 -46
- package/src/components/page-index/PageIndex.tsx +0 -275
- package/src/components/page-index/index.ts +0 -1
- package/src/components/popover/index.ts +0 -1
- package/src/components/popover/popover.tsx +0 -199
- package/src/components/radio/Radio.tsx +0 -176
- package/src/components/radio/index.ts +0 -1
- package/src/components/section/index.ts +0 -1
- package/src/components/section/section.tsx +0 -66
- package/src/components/select/Select.tsx +0 -212
- package/src/components/select/index.ts +0 -1
- package/src/components/slider/Slider.tsx +0 -267
- package/src/components/slider/index.ts +0 -1
- package/src/components/switch/index.ts +0 -1
- package/src/components/switch/switch.tsx +0 -99
- package/src/components/table/Table.tsx +0 -147
- package/src/components/table/index.ts +0 -1
- package/src/components/theme-control/index.ts +0 -1
- package/src/components/theme-control/theme-control.tsx +0 -78
- package/src/components/tooltip/index.ts +0 -1
- package/src/components/tooltip/tooltip.tsx +0 -207
- package/src/contexts/NavbarTooltipContext.tsx +0 -48
- package/src/contexts/index.ts +0 -1
- package/src/foundations/motion.md +0 -136
- package/src/index.ts +0 -40
- package/src/style/_shared/field.css +0 -69
- package/src/style/components/color-control/color-control.css +0 -126
- package/src/style/components/drawer/drawer.css +0 -210
- package/src/style/components/floating-bar/floating-bar.css +0 -39
- package/src/style/components/footer/footer.css +0 -108
- package/src/style/components/grid/grid.css +0 -33
- package/src/style/components/header/header.css +0 -44
- package/src/style/components/layout/layout.css +0 -205
- package/src/style/components/navbar/navbar.css +0 -342
- package/src/style/components/popover/popover.css +0 -44
- package/src/style/components/section/section.css +0 -67
- package/src/style/components/select/select.css +0 -143
- package/src/style/components/switch/switch.css +0 -267
- package/src/style/foundations/global.css +0 -316
- package/src/style/foundations/motion.css +0 -164
- package/src/style/foundations/spacing.css +0 -51
- package/src/style/foundations/typography.css +0 -39
- package/src/style/foundations/z-index.css +0 -81
- package/src/style/modes/dark.css +0 -146
- package/src/style/modes/light.css +0 -147
- package/src/style/semantic.css +0 -52
- package/src/style/styles.css +0 -51
- package/src/style/themes/theme.json +0 -37
- package/src/utils/README.md +0 -305
- package/src/utils/USER_PREFERENCES.md +0 -558
- package/src/utils/theme.ts +0 -127
- package/src/utils/user-preferences.ts +0 -577
- package/tsconfig.json +0 -25
- package/tsup.config.ts +0 -52
|
@@ -1,34 +1,117 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
/* src/style/components/icons/icons.css */
|
|
2
|
+
.icon {
|
|
3
|
+
display: inline-flex;
|
|
4
|
+
align-items: center;
|
|
5
|
+
justify-content: center;
|
|
6
|
+
}
|
|
7
|
+
.icon--skeleton {
|
|
8
|
+
background:
|
|
9
|
+
linear-gradient(
|
|
10
|
+
90deg,
|
|
11
|
+
rgba(0, 0, 0, 0.06) 0%,
|
|
12
|
+
rgba(0, 0, 0, 0.03) 50%,
|
|
13
|
+
rgba(0, 0, 0, 0.06) 100%);
|
|
14
|
+
border-radius: 4px;
|
|
15
|
+
animation: hb-skeleton 1.2s ease-in-out infinite;
|
|
16
|
+
}
|
|
17
|
+
@keyframes hb-skeleton {
|
|
18
|
+
0% {
|
|
19
|
+
background-position: 200% 0;
|
|
20
|
+
}
|
|
21
|
+
100% {
|
|
22
|
+
background-position: -200% 0;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
.icon {
|
|
26
|
+
display: inline-block;
|
|
27
|
+
flex-shrink: 0;
|
|
28
|
+
transition: color var(--transition-base, 0.2s ease);
|
|
29
|
+
}
|
|
30
|
+
.icon--interactive {
|
|
31
|
+
cursor: pointer;
|
|
32
|
+
color: var(--color-foreground-1);
|
|
33
|
+
}
|
|
34
|
+
.icon--interactive:hover:not(:disabled) {
|
|
35
|
+
color: var(--color-action-primary-hover);
|
|
36
|
+
}
|
|
37
|
+
.icon--interactive:active:not(:disabled) {
|
|
38
|
+
color: var(--color-action-primary-active);
|
|
39
|
+
}
|
|
40
|
+
.icon--interactive:disabled {
|
|
41
|
+
cursor: not-allowed;
|
|
42
|
+
color: var(--color-foreground-2);
|
|
43
|
+
}
|
|
6
44
|
|
|
7
|
-
|
|
45
|
+
/* src/style/_shared/field.css */
|
|
46
|
+
.field {
|
|
47
|
+
width: 100%;
|
|
48
|
+
font-family: inherit;
|
|
49
|
+
font-size: var(--font-size-base);
|
|
50
|
+
line-height: 1.5;
|
|
51
|
+
color: var(--color-foreground-1);
|
|
52
|
+
background-color: var(--color-bg-1);
|
|
53
|
+
border: none;
|
|
54
|
+
outline: 2px solid var(--color-foreground-3);
|
|
55
|
+
outline-offset: -2px;
|
|
56
|
+
border-radius: var(--radius-base);
|
|
57
|
+
padding: var(--spacing-2) var(--spacing-3);
|
|
58
|
+
transition: outline-color var(--transition-base), box-shadow var(--transition-base);
|
|
59
|
+
cursor: pointer;
|
|
60
|
+
}
|
|
61
|
+
.field--sm {
|
|
62
|
+
font-size: var(--font-size-sm);
|
|
63
|
+
padding: var(--spacing-1) var(--spacing-2);
|
|
64
|
+
}
|
|
65
|
+
.field--lg {
|
|
66
|
+
font-size: var(--font-size-lg);
|
|
67
|
+
padding: var(--spacing-3) var(--spacing-4);
|
|
68
|
+
}
|
|
69
|
+
.field:focus,
|
|
70
|
+
.field:focus-visible {
|
|
71
|
+
outline-color: var(--color-action-primary);
|
|
72
|
+
box-shadow: var(--shadow-focus-ring);
|
|
73
|
+
}
|
|
74
|
+
.field:hover:not(:disabled):not(.field--error) {
|
|
75
|
+
outline-color: var(--color-action-primary-hover);
|
|
76
|
+
}
|
|
77
|
+
.field--error {
|
|
78
|
+
outline-color: hsla(var(--error-hue), var(--error-saturation), 50%, 1);
|
|
79
|
+
}
|
|
80
|
+
.field--error:focus,
|
|
81
|
+
.field--error:focus-visible {
|
|
82
|
+
outline-color: hsla(var(--error-hue), var(--error-saturation), 50%, 1);
|
|
83
|
+
box-shadow: var(--shadow-focus-ring-error);
|
|
84
|
+
}
|
|
85
|
+
.field:disabled,
|
|
86
|
+
.field--disabled {
|
|
87
|
+
cursor: not-allowed;
|
|
88
|
+
opacity: 0.6;
|
|
89
|
+
background-color: var(--color-bg-2);
|
|
90
|
+
}
|
|
91
|
+
.field--open {
|
|
92
|
+
outline-color: var(--color-action-primary);
|
|
93
|
+
}
|
|
8
94
|
|
|
95
|
+
/* src/style/components/input/input.css */
|
|
9
96
|
.input-container {
|
|
10
97
|
display: flex;
|
|
11
98
|
flex-direction: column;
|
|
12
99
|
gap: var(--spacing-2);
|
|
13
100
|
}
|
|
14
|
-
|
|
15
101
|
.input-container--full-width {
|
|
16
102
|
width: 100%;
|
|
17
103
|
}
|
|
18
|
-
|
|
19
104
|
.input__label {
|
|
20
105
|
font-size: var(--font-size-sm);
|
|
21
106
|
font-weight: 500;
|
|
22
107
|
color: var(--color-foreground-1);
|
|
23
108
|
cursor: pointer;
|
|
24
109
|
}
|
|
25
|
-
|
|
26
110
|
.input__wrapper {
|
|
27
111
|
position: relative;
|
|
28
112
|
display: flex;
|
|
29
113
|
align-items: center;
|
|
30
114
|
}
|
|
31
|
-
|
|
32
115
|
.input {
|
|
33
116
|
width: 100%;
|
|
34
117
|
font-family: inherit;
|
|
@@ -43,42 +126,30 @@
|
|
|
43
126
|
padding: var(--spacing-2) var(--spacing-3);
|
|
44
127
|
transition: outline-color var(--transition-base), box-shadow var(--transition-base);
|
|
45
128
|
}
|
|
46
|
-
|
|
47
|
-
/* Size variants */
|
|
48
129
|
.input--sm {
|
|
49
130
|
font-size: var(--font-size-sm);
|
|
50
131
|
padding: var(--spacing-1) var(--spacing-2);
|
|
51
132
|
}
|
|
52
|
-
|
|
53
133
|
.input--lg {
|
|
54
134
|
font-size: var(--font-size-lg);
|
|
55
135
|
padding: var(--spacing-3) var(--spacing-4);
|
|
56
136
|
}
|
|
57
|
-
|
|
58
|
-
/* Error variant */
|
|
59
137
|
.input--error {
|
|
60
138
|
outline-color: hsla(var(--error-hue), var(--error-saturation), 50%, 1);
|
|
61
139
|
}
|
|
62
|
-
|
|
63
140
|
.input--error:focus {
|
|
64
141
|
outline-color: hsla(var(--error-hue), var(--error-saturation), 50%, 1);
|
|
65
|
-
box-shadow:
|
|
142
|
+
box-shadow: var(--shadow-focus-ring-error);
|
|
66
143
|
}
|
|
67
|
-
|
|
68
|
-
/* Disabled variant */
|
|
69
144
|
.input--disabled {
|
|
70
145
|
cursor: not-allowed;
|
|
71
146
|
opacity: 0.6;
|
|
72
147
|
background-color: var(--color-bg-2);
|
|
73
148
|
}
|
|
74
|
-
|
|
75
|
-
/* Focus state - uses action colors */
|
|
76
149
|
.input:focus {
|
|
77
150
|
outline-color: var(--color-action-primary);
|
|
78
|
-
box-shadow:
|
|
151
|
+
box-shadow: var(--shadow-focus-ring);
|
|
79
152
|
}
|
|
80
|
-
|
|
81
|
-
/* Hover state */
|
|
82
153
|
.input:hover:not(:disabled):not(.input--error) {
|
|
83
154
|
outline-color: var(--color-action-primary-hover);
|
|
84
155
|
}
|
|
@@ -86,33 +157,24 @@
|
|
|
86
157
|
color: var(--color-foreground-2);
|
|
87
158
|
opacity: 0.7;
|
|
88
159
|
}
|
|
89
|
-
|
|
90
|
-
/* Icon spacing */
|
|
91
160
|
.input--has-icon-left {
|
|
92
161
|
padding-left: var(--spacing-10);
|
|
93
162
|
}
|
|
94
|
-
|
|
95
163
|
.input--has-icon-right {
|
|
96
164
|
padding-right: var(--spacing-10);
|
|
97
165
|
}
|
|
98
|
-
|
|
99
166
|
.input--sm.input--has-icon-left {
|
|
100
167
|
padding-left: var(--spacing-8);
|
|
101
168
|
}
|
|
102
|
-
|
|
103
169
|
.input--sm.input--has-icon-right {
|
|
104
170
|
padding-right: var(--spacing-8);
|
|
105
171
|
}
|
|
106
|
-
|
|
107
172
|
.input--lg.input--has-icon-left {
|
|
108
173
|
padding-left: var(--spacing-12);
|
|
109
174
|
}
|
|
110
|
-
|
|
111
175
|
.input--lg.input--has-icon-right {
|
|
112
176
|
padding-right: var(--spacing-12);
|
|
113
177
|
}
|
|
114
|
-
|
|
115
|
-
/* Icons */
|
|
116
178
|
.input__icon {
|
|
117
179
|
position: absolute;
|
|
118
180
|
display: flex;
|
|
@@ -121,11 +183,9 @@
|
|
|
121
183
|
color: var(--color-foreground-2);
|
|
122
184
|
pointer-events: none;
|
|
123
185
|
}
|
|
124
|
-
|
|
125
186
|
.input__icon--left {
|
|
126
187
|
left: var(--spacing-3);
|
|
127
188
|
}
|
|
128
|
-
|
|
129
189
|
.input__icon--right {
|
|
130
190
|
right: var(--spacing-3);
|
|
131
191
|
pointer-events: auto;
|
|
@@ -136,45 +196,33 @@
|
|
|
136
196
|
border-radius: var(--radius-sm);
|
|
137
197
|
transition: background-color var(--transition-fast);
|
|
138
198
|
}
|
|
139
|
-
|
|
140
199
|
.input__icon--right:hover:not(:disabled) {
|
|
141
200
|
background-color: var(--color-bg-3);
|
|
142
201
|
color: var(--color-action-primary-hover);
|
|
143
202
|
}
|
|
144
|
-
|
|
145
203
|
.input__icon--right:active:not(:disabled) {
|
|
146
204
|
background-color: var(--color-bg-2);
|
|
147
205
|
color: var(--color-action-primary-active);
|
|
148
206
|
}
|
|
149
|
-
|
|
150
207
|
.input__icon--right:disabled {
|
|
151
208
|
cursor: not-allowed;
|
|
152
209
|
opacity: 0.6;
|
|
153
210
|
}
|
|
154
|
-
|
|
155
|
-
/* Focus on icon (for password toggle) */
|
|
156
211
|
.input__icon--right:focus-visible {
|
|
157
212
|
outline: 2px solid var(--color-action-primary);
|
|
158
213
|
outline-offset: 2px;
|
|
159
214
|
}
|
|
160
|
-
|
|
161
|
-
/* Messages */
|
|
162
215
|
.input__message {
|
|
163
216
|
font-size: var(--font-size-sm);
|
|
164
217
|
margin: 0;
|
|
165
218
|
color: var(--color-foreground-2);
|
|
166
219
|
}
|
|
167
|
-
|
|
168
220
|
.input__message--error {
|
|
169
221
|
color: hsla(var(--error-hue), var(--error-saturation), 60%, 1);
|
|
170
222
|
}
|
|
171
|
-
|
|
172
|
-
/* Dark theme adjustments */
|
|
173
|
-
:root[data-theme="dark"] .input {
|
|
223
|
+
:root[data-theme=dark] .input {
|
|
174
224
|
background-color: var(--color-bg-2);
|
|
175
225
|
}
|
|
176
|
-
|
|
177
|
-
/* Autofill styles */
|
|
178
226
|
.input:-webkit-autofill,
|
|
179
227
|
.input:-webkit-autofill:hover,
|
|
180
228
|
.input:-webkit-autofill:focus {
|
|
@@ -182,44 +230,34 @@
|
|
|
182
230
|
-webkit-box-shadow: 0 0 0 1000px var(--color-bg-1) inset;
|
|
183
231
|
transition: background-color 5000s ease-in-out 0s;
|
|
184
232
|
}
|
|
185
|
-
|
|
186
|
-
:root[data-theme=
|
|
187
|
-
:root[data-theme=
|
|
188
|
-
:root[data-theme="dark"] .input:-webkit-autofill:focus {
|
|
233
|
+
:root[data-theme=dark] .input:-webkit-autofill,
|
|
234
|
+
:root[data-theme=dark] .input:-webkit-autofill:hover,
|
|
235
|
+
:root[data-theme=dark] .input:-webkit-autofill:focus {
|
|
189
236
|
-webkit-box-shadow: 0 0 0 1000px var(--color-bg-2) inset;
|
|
190
237
|
}
|
|
191
|
-
|
|
192
|
-
/* Hide default webkit search cancel button */
|
|
193
|
-
.input[type="search"]::-webkit-search-cancel-button {
|
|
238
|
+
.input[type=search]::-webkit-search-cancel-button {
|
|
194
239
|
-webkit-appearance: none;
|
|
195
240
|
appearance: none;
|
|
196
241
|
}
|
|
197
|
-
|
|
198
|
-
/* Date/Time Picker */
|
|
199
242
|
.input__datetime-picker {
|
|
200
243
|
padding: var(--spacing-3);
|
|
201
244
|
min-width: 300px;
|
|
202
245
|
}
|
|
203
|
-
|
|
204
246
|
.input__datetime-combined {
|
|
205
247
|
display: flex;
|
|
206
248
|
gap: var(--spacing-3);
|
|
207
249
|
}
|
|
208
|
-
|
|
209
250
|
.input__trigger-wrapper {
|
|
210
251
|
position: relative;
|
|
211
252
|
display: flex;
|
|
212
253
|
align-items: center;
|
|
213
254
|
width: 100%;
|
|
214
255
|
}
|
|
215
|
-
|
|
216
|
-
/* Date Picker */
|
|
217
256
|
.date-picker {
|
|
218
257
|
display: flex;
|
|
219
258
|
flex-direction: column;
|
|
220
259
|
gap: var(--spacing-2);
|
|
221
260
|
}
|
|
222
|
-
|
|
223
261
|
.date-picker__header {
|
|
224
262
|
display: flex;
|
|
225
263
|
align-items: center;
|
|
@@ -228,7 +266,6 @@
|
|
|
228
266
|
padding-bottom: var(--spacing-2);
|
|
229
267
|
border-bottom: 1px solid var(--color-foreground-2);
|
|
230
268
|
}
|
|
231
|
-
|
|
232
269
|
.date-picker__nav {
|
|
233
270
|
background: none;
|
|
234
271
|
border: none;
|
|
@@ -239,22 +276,18 @@
|
|
|
239
276
|
border-radius: var(--radius-sm);
|
|
240
277
|
transition: background-color var(--transition-fast);
|
|
241
278
|
}
|
|
242
|
-
|
|
243
279
|
.date-picker__nav:hover:not(:disabled) {
|
|
244
280
|
background-color: var(--color-bg-3);
|
|
245
281
|
}
|
|
246
|
-
|
|
247
282
|
.date-picker__nav:disabled {
|
|
248
283
|
opacity: 0.5;
|
|
249
284
|
cursor: not-allowed;
|
|
250
285
|
}
|
|
251
|
-
|
|
252
286
|
.date-picker__title {
|
|
253
287
|
display: flex;
|
|
254
288
|
gap: var(--spacing-2);
|
|
255
289
|
align-items: center;
|
|
256
290
|
}
|
|
257
|
-
|
|
258
291
|
.date-picker__select {
|
|
259
292
|
background-color: var(--color-bg-1);
|
|
260
293
|
color: var(--color-foreground-1);
|
|
@@ -264,14 +297,12 @@
|
|
|
264
297
|
font-size: var(--font-size-sm);
|
|
265
298
|
cursor: pointer;
|
|
266
299
|
}
|
|
267
|
-
|
|
268
300
|
.date-picker__weekdays {
|
|
269
301
|
display: grid;
|
|
270
302
|
grid-template-columns: repeat(7, 1fr);
|
|
271
303
|
gap: var(--spacing-1);
|
|
272
304
|
margin-top: var(--spacing-2);
|
|
273
305
|
}
|
|
274
|
-
|
|
275
306
|
.date-picker__weekday {
|
|
276
307
|
text-align: center;
|
|
277
308
|
font-size: var(--font-size-xs);
|
|
@@ -279,13 +310,11 @@
|
|
|
279
310
|
color: var(--color-foreground-2);
|
|
280
311
|
padding: var(--spacing-1);
|
|
281
312
|
}
|
|
282
|
-
|
|
283
313
|
.date-picker__days {
|
|
284
314
|
display: grid;
|
|
285
315
|
grid-template-columns: repeat(7, 1fr);
|
|
286
316
|
gap: var(--spacing-1);
|
|
287
317
|
}
|
|
288
|
-
|
|
289
318
|
.date-picker__day {
|
|
290
319
|
aspect-ratio: 1;
|
|
291
320
|
background: none;
|
|
@@ -297,41 +326,33 @@
|
|
|
297
326
|
transition: background-color var(--transition-fast);
|
|
298
327
|
padding: var(--spacing-1);
|
|
299
328
|
}
|
|
300
|
-
|
|
301
329
|
.date-picker__day:hover:not(:disabled):not(.date-picker__day--empty) {
|
|
302
330
|
background-color: var(--color-bg-3);
|
|
303
331
|
}
|
|
304
|
-
|
|
305
332
|
.date-picker__day--selected {
|
|
306
|
-
background-color: var(--color-action-primary)
|
|
333
|
+
background-color: var(--color-action-primary);
|
|
307
334
|
color: white;
|
|
308
335
|
font-weight: 600;
|
|
309
336
|
}
|
|
310
|
-
|
|
311
337
|
.date-picker__day--empty {
|
|
312
338
|
cursor: default;
|
|
313
339
|
visibility: hidden;
|
|
314
340
|
}
|
|
315
|
-
|
|
316
341
|
.date-picker__day:disabled {
|
|
317
342
|
opacity: 0.5;
|
|
318
343
|
cursor: not-allowed;
|
|
319
344
|
}
|
|
320
|
-
|
|
321
|
-
/* Time Picker */
|
|
322
345
|
.time-picker {
|
|
323
346
|
display: flex;
|
|
324
347
|
gap: var(--spacing-2);
|
|
325
348
|
min-width: 240px;
|
|
326
349
|
}
|
|
327
|
-
|
|
328
350
|
.time-picker__column {
|
|
329
351
|
flex: 1;
|
|
330
352
|
display: flex;
|
|
331
353
|
flex-direction: column;
|
|
332
354
|
gap: var(--spacing-1);
|
|
333
355
|
}
|
|
334
|
-
|
|
335
356
|
.time-picker__label {
|
|
336
357
|
text-align: center;
|
|
337
358
|
font-size: var(--font-size-xs);
|
|
@@ -339,29 +360,12 @@
|
|
|
339
360
|
color: var(--color-foreground-2);
|
|
340
361
|
padding: var(--spacing-1);
|
|
341
362
|
}
|
|
342
|
-
|
|
343
363
|
.time-picker__scroll {
|
|
344
364
|
max-height: 200px;
|
|
345
365
|
overflow-y: auto;
|
|
346
|
-
/* border: 1px solid var(--color-bg-3); */
|
|
347
366
|
border-radius: var(--radius-sm);
|
|
348
|
-
scrollbar-width: thin;
|
|
349
367
|
background: var(--color-bg-2);
|
|
350
|
-
}
|
|
351
|
-
/*
|
|
352
|
-
.time-picker__scroll::-webkit-scrollbar {
|
|
353
|
-
width: 6px;
|
|
354
|
-
}
|
|
355
|
-
|
|
356
|
-
.time-picker__scroll::-webkit-scrollbar-track {
|
|
357
|
-
background: var(--color-bg-2);
|
|
358
|
-
}
|
|
359
|
-
*/
|
|
360
|
-
.time-picker__scroll::-webkit-scrollbar-thumb {
|
|
361
|
-
/* background: var(--color-foreground-2); */
|
|
362
|
-
border-radius: var(--radius-sm);
|
|
363
368
|
}
|
|
364
|
-
|
|
365
369
|
.time-picker__item {
|
|
366
370
|
width: 100%;
|
|
367
371
|
background: none;
|
|
@@ -374,20 +378,103 @@
|
|
|
374
378
|
text-align: center;
|
|
375
379
|
font-variant-numeric: tabular-nums;
|
|
376
380
|
}
|
|
377
|
-
|
|
378
381
|
.time-picker__item:hover:not(:disabled) {
|
|
379
382
|
background-color: var(--color-bg-3);
|
|
380
383
|
}
|
|
381
|
-
|
|
382
384
|
.time-picker__item--selected {
|
|
383
|
-
background-color: var(--color-action-primary)
|
|
385
|
+
background-color: var(--color-action-primary);
|
|
384
386
|
color: white;
|
|
385
387
|
font-weight: 600;
|
|
386
388
|
}
|
|
387
|
-
|
|
388
389
|
.time-picker__item:disabled {
|
|
389
390
|
opacity: 0.5;
|
|
390
391
|
cursor: not-allowed;
|
|
391
392
|
}
|
|
392
393
|
|
|
393
|
-
|
|
394
|
+
/* src/style/components/popover/popover.css */
|
|
395
|
+
.popover {
|
|
396
|
+
position: fixed;
|
|
397
|
+
background: var(--color-bg-1);
|
|
398
|
+
border-radius: var(--radius-base);
|
|
399
|
+
outline: 2px solid var(--color-bg-3);
|
|
400
|
+
outline-offset: -2px;
|
|
401
|
+
box-shadow: var(--shadow-md);
|
|
402
|
+
z-index: var(--z-popover);
|
|
403
|
+
min-width: 200px;
|
|
404
|
+
margin-top: var(--spacing-1);
|
|
405
|
+
animation: popover-slide-in var(--transition-base, 0.2s ease);
|
|
406
|
+
opacity: 0;
|
|
407
|
+
visibility: hidden;
|
|
408
|
+
pointer-events: none;
|
|
409
|
+
}
|
|
410
|
+
.popover--top {
|
|
411
|
+
animation: popover-slide-in-top var(--transition-base, 0.2s ease);
|
|
412
|
+
margin-bottom: var(--spacing-2);
|
|
413
|
+
}
|
|
414
|
+
.popover--bottom {
|
|
415
|
+
animation: popover-slide-in-bottom var(--transition-base, 0.2s ease);
|
|
416
|
+
margin-top: var(--spacing-2);
|
|
417
|
+
}
|
|
418
|
+
.popover--left {
|
|
419
|
+
animation: popover-slide-in-left var(--transition-base, 0.2s ease);
|
|
420
|
+
margin-right: var(--spacing-2);
|
|
421
|
+
}
|
|
422
|
+
.popover--right {
|
|
423
|
+
animation: popover-slide-in-right var(--transition-base, 0.2s ease);
|
|
424
|
+
margin-left: var(--spacing-2);
|
|
425
|
+
}
|
|
426
|
+
.popover:hover {
|
|
427
|
+
outline: 2px solid var(--color-primary-hover);
|
|
428
|
+
}
|
|
429
|
+
@keyframes popover-slide-in {
|
|
430
|
+
from {
|
|
431
|
+
opacity: 0;
|
|
432
|
+
transform: translateY(-8px);
|
|
433
|
+
}
|
|
434
|
+
to {
|
|
435
|
+
opacity: 1;
|
|
436
|
+
transform: translateY(0);
|
|
437
|
+
}
|
|
438
|
+
}
|
|
439
|
+
@keyframes popover-slide-in-top {
|
|
440
|
+
from {
|
|
441
|
+
opacity: 0;
|
|
442
|
+
transform: translateY(8px);
|
|
443
|
+
}
|
|
444
|
+
to {
|
|
445
|
+
opacity: 1;
|
|
446
|
+
transform: translateY(0);
|
|
447
|
+
}
|
|
448
|
+
}
|
|
449
|
+
@keyframes popover-slide-in-bottom {
|
|
450
|
+
from {
|
|
451
|
+
opacity: 0;
|
|
452
|
+
transform: translateY(-8px);
|
|
453
|
+
}
|
|
454
|
+
to {
|
|
455
|
+
opacity: 1;
|
|
456
|
+
transform: translateY(0);
|
|
457
|
+
}
|
|
458
|
+
}
|
|
459
|
+
@keyframes popover-slide-in-left {
|
|
460
|
+
from {
|
|
461
|
+
opacity: 0;
|
|
462
|
+
transform: translateX(8px);
|
|
463
|
+
}
|
|
464
|
+
to {
|
|
465
|
+
opacity: 1;
|
|
466
|
+
transform: translateX(0);
|
|
467
|
+
}
|
|
468
|
+
}
|
|
469
|
+
@keyframes popover-slide-in-right {
|
|
470
|
+
from {
|
|
471
|
+
opacity: 0;
|
|
472
|
+
transform: translateX(-8px);
|
|
473
|
+
}
|
|
474
|
+
to {
|
|
475
|
+
opacity: 1;
|
|
476
|
+
transform: translateX(0);
|
|
477
|
+
}
|
|
478
|
+
}
|
|
479
|
+
.popover__content {
|
|
480
|
+
}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import React__default from 'react';
|
|
3
|
+
|
|
4
|
+
interface InputFieldProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size' | 'type'> {
|
|
5
|
+
/**
|
|
6
|
+
* Input native type (text, email, password, etc.)
|
|
7
|
+
*/
|
|
8
|
+
type?: string;
|
|
9
|
+
/**
|
|
10
|
+
* Label text
|
|
11
|
+
*/
|
|
12
|
+
label?: string;
|
|
13
|
+
/**
|
|
14
|
+
* Helper text shown below the input
|
|
15
|
+
*/
|
|
16
|
+
helperText?: string;
|
|
17
|
+
/**
|
|
18
|
+
* Error message - when present, input is in error state
|
|
19
|
+
*/
|
|
20
|
+
error?: string;
|
|
21
|
+
/**
|
|
22
|
+
* Icon name from our icon library (shown on the left)
|
|
23
|
+
*/
|
|
24
|
+
icon?: string;
|
|
25
|
+
/**
|
|
26
|
+
* Icon name for the right side
|
|
27
|
+
*/
|
|
28
|
+
iconRight?: string;
|
|
29
|
+
/**
|
|
30
|
+
* Full width input
|
|
31
|
+
* @default false
|
|
32
|
+
*/
|
|
33
|
+
fullWidth?: boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Size variant
|
|
36
|
+
* @default 'md'
|
|
37
|
+
*/
|
|
38
|
+
size?: 'sm' | 'md' | 'lg';
|
|
39
|
+
/**
|
|
40
|
+
* Custom class name
|
|
41
|
+
*/
|
|
42
|
+
className?: string;
|
|
43
|
+
/**
|
|
44
|
+
* Right icon click handler
|
|
45
|
+
*/
|
|
46
|
+
onRightIconClick?: () => void;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
type InputType = 'text' | 'email' | 'password' | 'number' | 'tel' | 'url' | 'search' | 'date' | 'time' | 'datetime-local';
|
|
50
|
+
interface InputProps extends Omit<InputFieldProps, 'type' | 'iconRight' | 'onRightIconClick'> {
|
|
51
|
+
/**
|
|
52
|
+
* Input type with extended support for date/time pickers
|
|
53
|
+
* @default 'text'
|
|
54
|
+
*/
|
|
55
|
+
type?: InputType;
|
|
56
|
+
/**
|
|
57
|
+
* Show milliseconds in time picker (only for time type)
|
|
58
|
+
* @default false
|
|
59
|
+
*/
|
|
60
|
+
showMilliseconds?: boolean;
|
|
61
|
+
/**
|
|
62
|
+
* Minute step in time picker (only for time type)
|
|
63
|
+
* @default 1
|
|
64
|
+
*/
|
|
65
|
+
minuteStep?: 1 | 5 | 15 | 30;
|
|
66
|
+
/**
|
|
67
|
+
* Show clear button for search inputs when they have value
|
|
68
|
+
* @default true
|
|
69
|
+
*/
|
|
70
|
+
showClear?: boolean;
|
|
71
|
+
}
|
|
72
|
+
declare const Input: React.ForwardRefExoticComponent<InputProps & React.RefAttributes<HTMLInputElement>>;
|
|
73
|
+
|
|
74
|
+
interface InputTextProps extends Omit<InputProps, 'type'> {
|
|
75
|
+
}
|
|
76
|
+
declare const InputText: React__default.ForwardRefExoticComponent<InputTextProps & React__default.RefAttributes<HTMLInputElement>>;
|
|
77
|
+
|
|
78
|
+
interface InputEmailProps extends Omit<InputProps, 'type'> {
|
|
79
|
+
}
|
|
80
|
+
declare const InputEmail: React__default.ForwardRefExoticComponent<InputEmailProps & React__default.RefAttributes<HTMLInputElement>>;
|
|
81
|
+
|
|
82
|
+
interface InputPasswordProps extends Omit<InputProps, 'type'> {
|
|
83
|
+
}
|
|
84
|
+
declare const InputPassword: React__default.ForwardRefExoticComponent<InputPasswordProps & React__default.RefAttributes<HTMLInputElement>>;
|
|
85
|
+
|
|
86
|
+
interface InputSearchProps extends Omit<InputProps, 'type'> {
|
|
87
|
+
}
|
|
88
|
+
declare const InputSearch: React__default.ForwardRefExoticComponent<InputSearchProps & React__default.RefAttributes<HTMLInputElement>>;
|
|
89
|
+
|
|
90
|
+
interface InputTelProps extends Omit<InputProps, 'type'> {
|
|
91
|
+
}
|
|
92
|
+
declare const InputTel: React__default.ForwardRefExoticComponent<InputTelProps & React__default.RefAttributes<HTMLInputElement>>;
|
|
93
|
+
|
|
94
|
+
interface InputUrlProps extends Omit<InputProps, 'type'> {
|
|
95
|
+
}
|
|
96
|
+
declare const InputUrl: React__default.ForwardRefExoticComponent<InputUrlProps & React__default.RefAttributes<HTMLInputElement>>;
|
|
97
|
+
|
|
98
|
+
interface InputNumberProps extends Omit<InputProps, 'type'> {
|
|
99
|
+
}
|
|
100
|
+
declare const InputNumber: React__default.ForwardRefExoticComponent<InputNumberProps & React__default.RefAttributes<HTMLInputElement>>;
|
|
101
|
+
|
|
102
|
+
interface InputDateProps extends Omit<InputProps, 'type'> {
|
|
103
|
+
}
|
|
104
|
+
declare const InputDate: React__default.ForwardRefExoticComponent<InputDateProps & React__default.RefAttributes<HTMLInputElement>>;
|
|
105
|
+
|
|
106
|
+
interface InputTimeProps extends Omit<InputProps, 'type'> {
|
|
107
|
+
}
|
|
108
|
+
declare const InputTime: React__default.ForwardRefExoticComponent<InputTimeProps & React__default.RefAttributes<HTMLInputElement>>;
|
|
109
|
+
|
|
110
|
+
interface InputDateTimeProps extends Omit<InputProps, 'type'> {
|
|
111
|
+
}
|
|
112
|
+
declare const InputDateTime: React__default.ForwardRefExoticComponent<InputDateTimeProps & React__default.RefAttributes<HTMLInputElement>>;
|
|
113
|
+
|
|
114
|
+
export { Input, InputDate, type InputDateProps, InputDateTime, type InputDateTimeProps, InputEmail, type InputEmailProps, InputNumber, type InputNumberProps, InputPassword, type InputPasswordProps, type InputProps, InputSearch, type InputSearchProps, InputTel, type InputTelProps, InputText, type InputTextProps, InputTime, type InputTimeProps, type InputType, InputUrl, type InputUrlProps };
|