mtrl 0.2.5 → 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/index.ts +18 -0
- package/package.json +1 -1
- package/src/components/badge/_styles.scss +123 -115
- package/src/components/badge/api.ts +57 -59
- package/src/components/badge/badge.ts +16 -2
- package/src/components/badge/config.ts +65 -11
- package/src/components/badge/constants.ts +22 -12
- package/src/components/badge/features.ts +44 -40
- package/src/components/badge/types.ts +42 -30
- package/src/components/bottom-app-bar/_styles.scss +103 -0
- package/src/components/bottom-app-bar/bottom-app-bar.ts +196 -0
- package/src/components/bottom-app-bar/config.ts +73 -0
- package/src/components/bottom-app-bar/index.ts +11 -0
- package/src/components/bottom-app-bar/types.ts +108 -0
- package/src/components/button/_styles.scss +0 -66
- package/src/components/button/api.ts +5 -0
- package/src/components/button/button.ts +0 -2
- package/src/components/button/config.ts +5 -0
- package/src/components/button/constants.ts +0 -6
- package/src/components/button/index.ts +2 -2
- package/src/components/button/types.ts +7 -7
- package/src/components/card/_styles.scss +67 -25
- package/src/components/card/api.ts +54 -3
- package/src/components/card/card.ts +25 -6
- package/src/components/card/config.ts +189 -22
- package/src/components/card/constants.ts +20 -19
- package/src/components/card/content.ts +299 -2
- package/src/components/card/features.ts +158 -4
- package/src/components/card/index.ts +31 -9
- package/src/components/card/types.ts +166 -15
- package/src/components/checkbox/_styles.scss +0 -2
- package/src/components/chip/chip.ts +1 -9
- package/src/components/chip/constants.ts +0 -10
- package/src/components/chip/index.ts +1 -1
- package/src/components/chip/types.ts +1 -4
- package/src/components/datepicker/_styles.scss +358 -0
- package/src/components/datepicker/api.ts +272 -0
- package/src/components/datepicker/config.ts +144 -0
- package/src/components/datepicker/constants.ts +98 -0
- package/src/components/datepicker/datepicker.ts +346 -0
- package/src/components/datepicker/index.ts +9 -0
- package/src/components/datepicker/render.ts +452 -0
- package/src/components/datepicker/types.ts +268 -0
- package/src/components/datepicker/utils.ts +290 -0
- package/src/components/dialog/_styles.scss +174 -128
- package/src/components/dialog/api.ts +48 -13
- package/src/components/dialog/config.ts +9 -5
- package/src/components/dialog/dialog.ts +6 -3
- package/src/components/dialog/features.ts +290 -130
- package/src/components/dialog/types.ts +7 -4
- package/src/components/divider/_styles.scss +57 -0
- package/src/components/divider/config.ts +81 -0
- package/src/components/divider/divider.ts +37 -0
- package/src/components/divider/features.ts +207 -0
- package/src/components/divider/index.ts +5 -0
- package/src/components/divider/types.ts +55 -0
- package/src/components/extended-fab/_styles.scss +267 -0
- package/src/components/extended-fab/api.ts +141 -0
- package/src/components/extended-fab/config.ts +108 -0
- package/src/components/extended-fab/constants.ts +36 -0
- package/src/components/extended-fab/extended-fab.ts +125 -0
- package/src/components/extended-fab/index.ts +4 -0
- package/src/components/extended-fab/types.ts +287 -0
- package/src/components/fab/_styles.scss +225 -0
- package/src/components/fab/api.ts +97 -0
- package/src/components/fab/config.ts +94 -0
- package/src/components/fab/constants.ts +41 -0
- package/src/components/fab/fab.ts +67 -0
- package/src/components/fab/index.ts +4 -0
- package/src/components/fab/types.ts +234 -0
- package/src/components/navigation/_styles.scss +1 -0
- package/src/components/navigation/api.ts +78 -50
- package/src/components/navigation/features/items.ts +280 -0
- package/src/components/navigation/nav-item.ts +72 -23
- package/src/components/navigation/navigation.ts +54 -2
- package/src/components/navigation/types.ts +210 -188
- package/src/components/progress/_styles.scss +0 -65
- package/src/components/progress/config.ts +1 -2
- package/src/components/progress/constants.ts +0 -14
- package/src/components/progress/index.ts +1 -1
- package/src/components/progress/progress.ts +1 -4
- package/src/components/progress/types.ts +1 -4
- package/src/components/radios/_styles.scss +0 -45
- package/src/components/radios/api.ts +85 -60
- package/src/components/radios/config.ts +1 -2
- package/src/components/radios/constants.ts +0 -9
- package/src/components/radios/index.ts +1 -1
- package/src/components/radios/radio.ts +34 -11
- package/src/components/radios/radios.ts +2 -1
- package/src/components/radios/types.ts +1 -7
- package/src/components/search/_styles.scss +306 -0
- package/src/components/search/api.ts +203 -0
- package/src/components/search/config.ts +87 -0
- package/src/components/search/constants.ts +21 -0
- package/src/components/search/features/index.ts +4 -0
- package/src/components/search/features/search.ts +718 -0
- package/src/components/search/features/states.ts +165 -0
- package/src/components/search/features/structure.ts +198 -0
- package/src/components/search/index.ts +10 -0
- package/src/components/search/search.ts +52 -0
- package/src/components/search/types.ts +163 -0
- package/src/components/segmented-button/_styles.scss +117 -0
- package/src/components/segmented-button/config.ts +67 -0
- package/src/components/segmented-button/constants.ts +42 -0
- package/src/components/segmented-button/index.ts +4 -0
- package/src/components/segmented-button/segment.ts +155 -0
- package/src/components/segmented-button/segmented-button.ts +250 -0
- package/src/components/segmented-button/types.ts +219 -0
- package/src/components/slider/_styles.scss +221 -168
- package/src/components/slider/accessibility.md +59 -0
- package/src/components/slider/api.ts +41 -120
- package/src/components/slider/config.ts +51 -49
- package/src/components/slider/features/handlers.ts +495 -0
- package/src/components/slider/features/index.ts +1 -2
- package/src/components/slider/features/slider.ts +66 -84
- package/src/components/slider/features/states.ts +195 -0
- package/src/components/slider/features/structure.ts +141 -184
- package/src/components/slider/features/ui.ts +150 -201
- package/src/components/slider/index.ts +2 -11
- package/src/components/slider/slider.ts +9 -12
- package/src/components/slider/types.ts +39 -24
- package/src/components/switch/_styles.scss +0 -2
- package/src/components/tabs/_styles.scss +346 -154
- package/src/components/tabs/api.ts +178 -400
- package/src/components/tabs/config.ts +46 -52
- package/src/components/tabs/constants.ts +85 -8
- package/src/components/tabs/features.ts +403 -0
- package/src/components/tabs/index.ts +60 -3
- package/src/components/tabs/indicator.ts +285 -0
- package/src/components/tabs/responsive.ts +144 -0
- package/src/components/tabs/scroll-indicators.ts +149 -0
- package/src/components/tabs/state.ts +186 -0
- package/src/components/tabs/tab-api.ts +258 -0
- package/src/components/tabs/tab.ts +255 -0
- package/src/components/tabs/tabs.ts +50 -31
- package/src/components/tabs/types.ts +332 -128
- package/src/components/tabs/utils.ts +107 -0
- package/src/components/textfield/_styles.scss +0 -98
- package/src/components/textfield/config.ts +2 -3
- package/src/components/textfield/constants.ts +0 -14
- package/src/components/textfield/index.ts +2 -2
- package/src/components/textfield/textfield.ts +0 -2
- package/src/components/textfield/types.ts +1 -4
- package/src/components/timepicker/README.md +277 -0
- package/src/components/timepicker/_styles.scss +451 -0
- package/src/components/timepicker/api.ts +632 -0
- package/src/components/timepicker/clockdial.ts +482 -0
- package/src/components/timepicker/config.ts +130 -0
- package/src/components/timepicker/constants.ts +138 -0
- package/src/components/timepicker/index.ts +8 -0
- package/src/components/timepicker/render.ts +613 -0
- package/src/components/timepicker/timepicker.ts +117 -0
- package/src/components/timepicker/types.ts +336 -0
- package/src/components/timepicker/utils.ts +241 -0
- package/src/components/top-app-bar/_styles.scss +225 -0
- package/src/components/top-app-bar/config.ts +83 -0
- package/src/components/top-app-bar/index.ts +11 -0
- package/src/components/top-app-bar/top-app-bar.ts +316 -0
- package/src/components/top-app-bar/types.ts +140 -0
- package/src/core/build/_ripple.scss +6 -6
- package/src/core/build/ripple.ts +72 -95
- package/src/core/compose/component.ts +1 -1
- package/src/core/compose/features/badge.ts +79 -0
- package/src/core/compose/features/icon.ts +3 -1
- package/src/core/compose/features/index.ts +3 -1
- package/src/core/compose/features/ripple.ts +4 -1
- package/src/core/compose/features/textlabel.ts +26 -2
- package/src/core/dom/create.ts +5 -0
- package/src/index.ts +9 -0
- package/src/styles/abstract/_theme.scss +115 -3
- package/src/styles/themes/_autumn.scss +21 -0
- package/src/styles/themes/_base-theme.scss +61 -0
- package/src/styles/themes/_baseline.scss +58 -0
- package/src/styles/themes/_bluekhaki.scss +125 -0
- package/src/styles/themes/_brownbeige.scss +125 -0
- package/src/styles/themes/_browngreen.scss +125 -0
- package/src/styles/themes/_forest.scss +6 -0
- package/src/styles/themes/_greenbeige.scss +125 -0
- package/src/styles/themes/_material.scss +125 -0
- package/src/styles/themes/_ocean.scss +6 -0
- package/src/styles/themes/_sageivory.scss +125 -0
- package/src/styles/themes/_spring.scss +6 -0
- package/src/styles/themes/_summer.scss +5 -0
- package/src/styles/themes/_sunset.scss +5 -0
- package/src/styles/themes/_tealcaramel.scss +125 -0
- package/src/styles/themes/_winter.scss +6 -0
- package/src/components/card/actions.ts +0 -48
- package/src/components/card/header.ts +0 -88
- package/src/components/card/media.ts +0 -52
- package/src/components/navigation/features/items.js +0 -192
- package/src/components/slider/features/appearance.ts +0 -94
- package/src/components/slider/features/disabled.ts +0 -43
- package/src/components/slider/features/events.ts +0 -164
- package/src/components/slider/features/interactions.ts +0 -261
- package/src/components/slider/features/keyboard.ts +0 -112
- package/src/core/collection/adapters/mongodb.js +0 -232
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
// src/components/segmented-button/types.ts
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Segmented button selection mode
|
|
5
|
+
* @category Components
|
|
6
|
+
*/
|
|
7
|
+
export enum SelectionMode {
|
|
8
|
+
/** Only one segment can be selected at a time */
|
|
9
|
+
SINGLE = 'single',
|
|
10
|
+
/** Multiple segments can be selected */
|
|
11
|
+
MULTI = 'multi'
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Configuration for a single segment within a segmented button
|
|
16
|
+
* @category Components
|
|
17
|
+
*/
|
|
18
|
+
export interface SegmentConfig {
|
|
19
|
+
/**
|
|
20
|
+
* Text content for the segment
|
|
21
|
+
* @example 'Day'
|
|
22
|
+
*/
|
|
23
|
+
text?: string;
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Icon HTML content
|
|
27
|
+
* @example '<svg>...</svg>'
|
|
28
|
+
*/
|
|
29
|
+
icon?: string;
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Whether this segment is initially selected
|
|
33
|
+
* @default false
|
|
34
|
+
*/
|
|
35
|
+
selected?: boolean;
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Value associated with this segment
|
|
39
|
+
*/
|
|
40
|
+
value?: string;
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Whether this segment is disabled
|
|
44
|
+
* @default false
|
|
45
|
+
*/
|
|
46
|
+
disabled?: boolean;
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Additional CSS class names for this segment
|
|
50
|
+
*/
|
|
51
|
+
class?: string;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Configuration interface for the Segmented Button component
|
|
56
|
+
* @category Components
|
|
57
|
+
*/
|
|
58
|
+
export interface SegmentedButtonConfig {
|
|
59
|
+
/**
|
|
60
|
+
* Selection mode for the segmented button group
|
|
61
|
+
* @default SelectionMode.SINGLE
|
|
62
|
+
*/
|
|
63
|
+
mode?: SelectionMode;
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Array of segment configurations
|
|
67
|
+
*/
|
|
68
|
+
segments?: SegmentConfig[];
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Component prefix for class names
|
|
72
|
+
* @default 'mtrl'
|
|
73
|
+
*/
|
|
74
|
+
prefix?: string;
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Component name used in class generation
|
|
78
|
+
*/
|
|
79
|
+
componentName?: string;
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Whether the entire segmented button is initially disabled
|
|
83
|
+
* @default false
|
|
84
|
+
*/
|
|
85
|
+
disabled?: boolean;
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Additional CSS class for the segmented button container
|
|
89
|
+
*/
|
|
90
|
+
class?: string;
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* Whether to enable ripple effect
|
|
94
|
+
* @default true
|
|
95
|
+
*/
|
|
96
|
+
ripple?: boolean;
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Ripple effect configuration
|
|
100
|
+
*/
|
|
101
|
+
rippleConfig?: {
|
|
102
|
+
/** Duration of the ripple animation in milliseconds */
|
|
103
|
+
duration?: number;
|
|
104
|
+
/** Timing function for the ripple animation */
|
|
105
|
+
timing?: string;
|
|
106
|
+
/** Opacity values for ripple start and end [start, end] */
|
|
107
|
+
opacity?: [string, string];
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* Interface for a segment within a segmented button
|
|
113
|
+
* @category Components
|
|
114
|
+
*/
|
|
115
|
+
export interface Segment {
|
|
116
|
+
/** The segment's DOM element */
|
|
117
|
+
element: HTMLElement;
|
|
118
|
+
|
|
119
|
+
/** The segment's value */
|
|
120
|
+
value: string;
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* Gets whether the segment is selected
|
|
124
|
+
*/
|
|
125
|
+
isSelected: () => boolean;
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* Sets the segment's selected state
|
|
129
|
+
* @param selected - Whether the segment should be selected
|
|
130
|
+
*/
|
|
131
|
+
setSelected: (selected: boolean) => void;
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* Gets whether the segment is disabled
|
|
135
|
+
*/
|
|
136
|
+
isDisabled: () => boolean;
|
|
137
|
+
|
|
138
|
+
/**
|
|
139
|
+
* Sets the segment's disabled state
|
|
140
|
+
* @param disabled - Whether the segment should be disabled
|
|
141
|
+
*/
|
|
142
|
+
setDisabled: (disabled: boolean) => void;
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* Destroys the segment and cleans up resources
|
|
146
|
+
*/
|
|
147
|
+
destroy: () => void;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* Segmented Button component interface
|
|
152
|
+
* @category Components
|
|
153
|
+
*/
|
|
154
|
+
export interface SegmentedButtonComponent {
|
|
155
|
+
/** The component's container DOM element */
|
|
156
|
+
element: HTMLElement;
|
|
157
|
+
|
|
158
|
+
/** Array of segment objects */
|
|
159
|
+
segments: Segment[];
|
|
160
|
+
|
|
161
|
+
/**
|
|
162
|
+
* Gets the selected segment(s)
|
|
163
|
+
* @returns An array of selected segments
|
|
164
|
+
*/
|
|
165
|
+
getSelected: () => Segment[];
|
|
166
|
+
|
|
167
|
+
/**
|
|
168
|
+
* Gets the values of selected segment(s)
|
|
169
|
+
* @returns An array of selected segment values
|
|
170
|
+
*/
|
|
171
|
+
getValue: () => string[];
|
|
172
|
+
|
|
173
|
+
/**
|
|
174
|
+
* Selects a segment by its value
|
|
175
|
+
* @param value - The value of the segment to select
|
|
176
|
+
* @returns The SegmentedButtonComponent for chaining
|
|
177
|
+
*/
|
|
178
|
+
select: (value: string) => SegmentedButtonComponent;
|
|
179
|
+
|
|
180
|
+
/**
|
|
181
|
+
* Deselects a segment by its value
|
|
182
|
+
* @param value - The value of the segment to deselect
|
|
183
|
+
* @returns The SegmentedButtonComponent for chaining
|
|
184
|
+
*/
|
|
185
|
+
deselect: (value: string) => SegmentedButtonComponent;
|
|
186
|
+
|
|
187
|
+
/**
|
|
188
|
+
* Enables the segmented button
|
|
189
|
+
* @returns The SegmentedButtonComponent for chaining
|
|
190
|
+
*/
|
|
191
|
+
enable: () => SegmentedButtonComponent;
|
|
192
|
+
|
|
193
|
+
/**
|
|
194
|
+
* Disables the segmented button
|
|
195
|
+
* @returns The SegmentedButtonComponent for chaining
|
|
196
|
+
*/
|
|
197
|
+
disable: () => SegmentedButtonComponent;
|
|
198
|
+
|
|
199
|
+
/**
|
|
200
|
+
* Adds an event listener to the segmented button
|
|
201
|
+
* @param event - Event name ('change', etc.)
|
|
202
|
+
* @param handler - Event handler function
|
|
203
|
+
* @returns The SegmentedButtonComponent for chaining
|
|
204
|
+
*/
|
|
205
|
+
on: (event: string, handler: Function) => SegmentedButtonComponent;
|
|
206
|
+
|
|
207
|
+
/**
|
|
208
|
+
* Removes an event listener from the segmented button
|
|
209
|
+
* @param event - Event name
|
|
210
|
+
* @param handler - Event handler function
|
|
211
|
+
* @returns The SegmentedButtonComponent for chaining
|
|
212
|
+
*/
|
|
213
|
+
off: (event: string, handler: Function) => SegmentedButtonComponent;
|
|
214
|
+
|
|
215
|
+
/**
|
|
216
|
+
* Destroys the component and cleans up resources
|
|
217
|
+
*/
|
|
218
|
+
destroy: () => void;
|
|
219
|
+
}
|