@proyecto-viviana/ui 0.1.7 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +192 -0
- package/dist/autocomplete/index.d.ts +89 -0
- package/dist/autocomplete/index.d.ts.map +1 -0
- package/dist/breadcrumbs/index.d.ts +38 -0
- package/dist/breadcrumbs/index.d.ts.map +1 -0
- package/dist/button/Button.d.ts.map +1 -1
- package/dist/calendar/DateField.d.ts +47 -0
- package/dist/calendar/DateField.d.ts.map +1 -0
- package/dist/calendar/DatePicker.d.ts +48 -0
- package/dist/calendar/DatePicker.d.ts.map +1 -0
- package/dist/calendar/RangeCalendar.d.ts +42 -0
- package/dist/calendar/RangeCalendar.d.ts.map +1 -0
- package/dist/calendar/TimeField.d.ts +44 -0
- package/dist/calendar/TimeField.d.ts.map +1 -0
- package/dist/calendar/index.d.ts +50 -0
- package/dist/calendar/index.d.ts.map +1 -0
- package/dist/checkbox/index.d.ts.map +1 -1
- package/dist/color/index.d.ts +228 -0
- package/dist/color/index.d.ts.map +1 -0
- package/dist/combobox/index.d.ts +81 -0
- package/dist/combobox/index.d.ts.map +1 -0
- package/dist/components.css +116 -14
- package/dist/custom/chip/index.d.ts +7 -2
- package/dist/custom/chip/index.d.ts.map +1 -1
- package/dist/custom/event-card/index.d.ts +5 -1
- package/dist/custom/event-card/index.d.ts.map +1 -1
- package/dist/custom/header/index.d.ts +16 -0
- package/dist/custom/header/index.d.ts.map +1 -0
- package/dist/custom/logo/index.d.ts +2 -0
- package/dist/custom/logo/index.d.ts.map +1 -1
- package/dist/custom/page-layout/index.d.ts +2 -0
- package/dist/custom/page-layout/index.d.ts.map +1 -1
- package/dist/custom/profile-card/index.d.ts +5 -1
- package/dist/custom/profile-card/index.d.ts.map +1 -1
- package/dist/custom/timeline-item/index.d.ts +12 -2
- package/dist/custom/timeline-item/index.d.ts.map +1 -1
- package/dist/dialog/Dialog.d.ts +67 -0
- package/dist/dialog/Dialog.d.ts.map +1 -0
- package/dist/dialog/index.d.ts +2 -17
- package/dist/dialog/index.d.ts.map +1 -1
- package/dist/disclosure/index.d.ts +84 -0
- package/dist/disclosure/index.d.ts.map +1 -0
- package/dist/gridlist/index.d.ts +92 -0
- package/dist/gridlist/index.d.ts.map +1 -0
- package/dist/index.d.ts +58 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6984 -783
- package/dist/index.js.map +1 -1
- package/dist/index.ssr.js +5905 -571
- package/dist/index.ssr.js.map +1 -1
- package/dist/landmark/index.d.ts +83 -0
- package/dist/landmark/index.d.ts.map +1 -0
- package/dist/link/index.d.ts.map +1 -1
- package/dist/listbox/index.d.ts +47 -0
- package/dist/listbox/index.d.ts.map +1 -0
- package/dist/menu/index.d.ts +74 -0
- package/dist/menu/index.d.ts.map +1 -0
- package/dist/meter/index.d.ts +49 -0
- package/dist/meter/index.d.ts.map +1 -0
- package/dist/numberfield/index.d.ts +50 -0
- package/dist/numberfield/index.d.ts.map +1 -0
- package/dist/popover/index.d.ts +85 -0
- package/dist/popover/index.d.ts.map +1 -0
- package/dist/radio/index.d.ts +7 -4
- package/dist/radio/index.d.ts.map +1 -1
- package/dist/searchfield/index.d.ts +44 -0
- package/dist/searchfield/index.d.ts.map +1 -0
- package/dist/select/index.d.ts +72 -0
- package/dist/select/index.d.ts.map +1 -0
- package/dist/slider/index.d.ts +53 -0
- package/dist/slider/index.d.ts.map +1 -0
- package/dist/switch/ToggleSwitch.d.ts.map +1 -1
- package/dist/table/index.d.ts +140 -0
- package/dist/table/index.d.ts.map +1 -0
- package/dist/tabs/index.d.ts +56 -0
- package/dist/tabs/index.d.ts.map +1 -0
- package/dist/tag-group/index.d.ts +80 -0
- package/dist/tag-group/index.d.ts.map +1 -0
- package/dist/toast/index.d.ts +101 -0
- package/dist/toast/index.d.ts.map +1 -0
- package/dist/toolbar/index.d.ts +42 -0
- package/dist/toolbar/index.d.ts.map +1 -0
- package/dist/tooltip/index.d.ts +66 -5
- package/dist/tooltip/index.d.ts.map +1 -1
- package/dist/tree/index.d.ts +99 -0
- package/dist/tree/index.d.ts.map +1 -0
- package/package.json +66 -58
- package/src/autocomplete/index.tsx +313 -0
- package/src/breadcrumbs/index.tsx +207 -0
- package/src/button/Button.tsx +74 -75
- package/src/calendar/DateField.tsx +200 -0
- package/src/calendar/DatePicker.tsx +298 -0
- package/src/calendar/RangeCalendar.tsx +236 -0
- package/src/calendar/TimeField.tsx +196 -0
- package/src/calendar/index.tsx +223 -0
- package/src/checkbox/index.tsx +3 -4
- package/src/color/index.tsx +687 -0
- package/src/combobox/index.tsx +383 -0
- package/src/components.css +116 -14
- package/src/custom/chip/index.tsx +17 -3
- package/src/custom/event-card/index.tsx +8 -2
- package/src/custom/header/index.tsx +33 -0
- package/src/custom/logo/index.tsx +7 -3
- package/src/custom/page-layout/index.tsx +12 -3
- package/src/custom/profile-card/index.tsx +8 -2
- package/src/custom/timeline-item/index.tsx +28 -4
- package/src/dialog/Dialog.tsx +260 -0
- package/src/dialog/index.tsx +3 -69
- package/src/disclosure/index.tsx +307 -0
- package/src/gridlist/index.tsx +403 -0
- package/src/index.ts +219 -4
- package/src/landmark/index.tsx +231 -0
- package/src/link/index.tsx +1 -2
- package/src/listbox/index.tsx +231 -0
- package/src/menu/index.tsx +297 -0
- package/src/meter/index.tsx +163 -0
- package/src/numberfield/index.tsx +482 -0
- package/src/popover/index.tsx +260 -0
- package/src/radio/index.tsx +36 -82
- package/src/searchfield/index.tsx +453 -0
- package/src/select/index.tsx +349 -0
- package/src/slider/index.tsx +382 -0
- package/src/switch/ToggleSwitch.tsx +1 -2
- package/src/table/index.tsx +531 -0
- package/src/tabs/index.tsx +273 -0
- package/src/tag-group/index.tsx +240 -0
- package/src/toast/index.tsx +324 -0
- package/src/toolbar/index.tsx +108 -0
- package/src/tooltip/index.tsx +171 -5
- package/src/tree/index.tsx +494 -0
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Color components for proyecto-viviana-ui
|
|
3
|
+
*
|
|
4
|
+
* Styled color picker components built on top of solidaria-components.
|
|
5
|
+
* Inspired by Spectrum 2's color picker patterns.
|
|
6
|
+
*/
|
|
7
|
+
import { type JSX } from 'solid-js';
|
|
8
|
+
import { type ColorSliderProps as HeadlessColorSliderProps, type ColorAreaProps as HeadlessColorAreaProps, type ColorWheelProps as HeadlessColorWheelProps, type ColorFieldProps as HeadlessColorFieldProps, type ColorSwatchProps as HeadlessColorSwatchProps } from '@proyecto-viviana/solidaria-components';
|
|
9
|
+
import type { Color, ColorChannel, ColorFormat } from '@proyecto-viviana/solid-stately';
|
|
10
|
+
export type ColorSize = 'sm' | 'md' | 'lg';
|
|
11
|
+
export interface ColorSliderProps extends Omit<HeadlessColorSliderProps, 'class' | 'style' | 'children'> {
|
|
12
|
+
/** The size of the color slider. */
|
|
13
|
+
size?: ColorSize;
|
|
14
|
+
/** Additional CSS class name. */
|
|
15
|
+
class?: string;
|
|
16
|
+
/** Show the current value. */
|
|
17
|
+
showValue?: boolean;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* A color slider allows users to adjust a single color channel.
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```tsx
|
|
24
|
+
* const [color, setColor] = createSignal(parseColor('hsl(0, 100%, 50%)'))
|
|
25
|
+
*
|
|
26
|
+
* <ColorSlider
|
|
27
|
+
* channel="hue"
|
|
28
|
+
* value={color()}
|
|
29
|
+
* onChange={setColor}
|
|
30
|
+
* label="Hue"
|
|
31
|
+
* />
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
export declare function ColorSlider(props: ColorSliderProps): JSX.Element;
|
|
35
|
+
export declare namespace ColorSlider {
|
|
36
|
+
var Track: typeof ColorSliderTrack;
|
|
37
|
+
var Thumb: typeof ColorSliderThumb;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* The track component for a color slider.
|
|
41
|
+
*/
|
|
42
|
+
export declare function ColorSliderTrack(props: {
|
|
43
|
+
children?: JSX.Element | (() => JSX.Element);
|
|
44
|
+
class?: string;
|
|
45
|
+
}): JSX.Element;
|
|
46
|
+
/**
|
|
47
|
+
* The thumb component for a color slider.
|
|
48
|
+
*/
|
|
49
|
+
export declare function ColorSliderThumb(props: {
|
|
50
|
+
class?: string;
|
|
51
|
+
}): JSX.Element;
|
|
52
|
+
export interface ColorAreaProps extends Omit<HeadlessColorAreaProps, 'class' | 'style' | 'children'> {
|
|
53
|
+
/** The size of the color area. */
|
|
54
|
+
size?: ColorSize;
|
|
55
|
+
/** Additional CSS class name. */
|
|
56
|
+
class?: string;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* A color area allows users to select a color by dragging in a 2D gradient.
|
|
60
|
+
*
|
|
61
|
+
* @example
|
|
62
|
+
* ```tsx
|
|
63
|
+
* const [color, setColor] = createSignal(parseColor('hsl(0, 100%, 50%)'))
|
|
64
|
+
*
|
|
65
|
+
* <ColorArea
|
|
66
|
+
* value={color()}
|
|
67
|
+
* onChange={setColor}
|
|
68
|
+
* xChannel="saturation"
|
|
69
|
+
* yChannel="lightness"
|
|
70
|
+
* />
|
|
71
|
+
* ```
|
|
72
|
+
*/
|
|
73
|
+
export declare function ColorArea(props: ColorAreaProps): JSX.Element;
|
|
74
|
+
export declare namespace ColorArea {
|
|
75
|
+
var Gradient: typeof ColorAreaGradient;
|
|
76
|
+
var Thumb: typeof ColorAreaThumb;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* The gradient background for a color area.
|
|
80
|
+
*/
|
|
81
|
+
export declare function ColorAreaGradient(props: {
|
|
82
|
+
class?: string;
|
|
83
|
+
}): JSX.Element;
|
|
84
|
+
/**
|
|
85
|
+
* The thumb component for a color area.
|
|
86
|
+
*/
|
|
87
|
+
export declare function ColorAreaThumb(props: {
|
|
88
|
+
class?: string;
|
|
89
|
+
}): JSX.Element;
|
|
90
|
+
export interface ColorWheelProps extends Omit<HeadlessColorWheelProps, 'class' | 'style' | 'children'> {
|
|
91
|
+
/** The size of the color wheel. */
|
|
92
|
+
size?: ColorSize;
|
|
93
|
+
/** Additional CSS class name. */
|
|
94
|
+
class?: string;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* A color wheel allows users to select a hue by dragging around a circular track.
|
|
98
|
+
*
|
|
99
|
+
* @example
|
|
100
|
+
* ```tsx
|
|
101
|
+
* const [color, setColor] = createSignal(parseColor('hsl(0, 100%, 50%)'))
|
|
102
|
+
*
|
|
103
|
+
* <ColorWheel
|
|
104
|
+
* value={color()}
|
|
105
|
+
* onChange={setColor}
|
|
106
|
+
* />
|
|
107
|
+
* ```
|
|
108
|
+
*/
|
|
109
|
+
export declare function ColorWheel(props: ColorWheelProps): JSX.Element;
|
|
110
|
+
export declare namespace ColorWheel {
|
|
111
|
+
var Track: typeof ColorWheelTrack;
|
|
112
|
+
var Thumb: typeof ColorWheelThumb;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* The circular track for a color wheel.
|
|
116
|
+
*/
|
|
117
|
+
export declare function ColorWheelTrack(props: {
|
|
118
|
+
class?: string;
|
|
119
|
+
}): JSX.Element;
|
|
120
|
+
/**
|
|
121
|
+
* The thumb component for a color wheel.
|
|
122
|
+
*/
|
|
123
|
+
export declare function ColorWheelThumb(props: {
|
|
124
|
+
class?: string;
|
|
125
|
+
}): JSX.Element;
|
|
126
|
+
export interface ColorFieldProps extends Omit<HeadlessColorFieldProps, 'class' | 'style' | 'children'> {
|
|
127
|
+
/** The size of the color field. */
|
|
128
|
+
size?: ColorSize;
|
|
129
|
+
/** Additional CSS class name. */
|
|
130
|
+
class?: string;
|
|
131
|
+
/** Description text below the input. */
|
|
132
|
+
description?: string;
|
|
133
|
+
/** Error message to display. */
|
|
134
|
+
errorMessage?: string;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* A color field allows users to enter a color value as text.
|
|
138
|
+
*
|
|
139
|
+
* @example
|
|
140
|
+
* ```tsx
|
|
141
|
+
* const [color, setColor] = createSignal(parseColor('#ff0000'))
|
|
142
|
+
*
|
|
143
|
+
* <ColorField
|
|
144
|
+
* value={color()}
|
|
145
|
+
* onChange={setColor}
|
|
146
|
+
* label="Color"
|
|
147
|
+
* />
|
|
148
|
+
* ```
|
|
149
|
+
*/
|
|
150
|
+
export declare function ColorField(props: ColorFieldProps): JSX.Element;
|
|
151
|
+
export declare namespace ColorField {
|
|
152
|
+
var Input: typeof ColorFieldInput;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* The input component for a color field.
|
|
156
|
+
*/
|
|
157
|
+
export declare function ColorFieldInput(props: {
|
|
158
|
+
class?: string;
|
|
159
|
+
isInvalid?: boolean;
|
|
160
|
+
}): JSX.Element;
|
|
161
|
+
export interface ColorSwatchProps extends Omit<HeadlessColorSwatchProps, 'class' | 'style'> {
|
|
162
|
+
/** The size of the color swatch. */
|
|
163
|
+
size?: ColorSize;
|
|
164
|
+
/** Additional CSS class name. */
|
|
165
|
+
class?: string;
|
|
166
|
+
/** Whether the swatch is selectable. */
|
|
167
|
+
isSelectable?: boolean;
|
|
168
|
+
/** Whether the swatch is selected. */
|
|
169
|
+
isSelected?: boolean;
|
|
170
|
+
/** Handler called when the swatch is clicked. */
|
|
171
|
+
onClick?: () => void;
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* A color swatch displays a color sample.
|
|
175
|
+
*
|
|
176
|
+
* @example
|
|
177
|
+
* ```tsx
|
|
178
|
+
* <ColorSwatch color={parseColor('#ff0000')} />
|
|
179
|
+
*
|
|
180
|
+
* // Selectable swatch
|
|
181
|
+
* <ColorSwatch
|
|
182
|
+
* color={parseColor('#00ff00')}
|
|
183
|
+
* isSelectable
|
|
184
|
+
* isSelected={selectedColor === '#00ff00'}
|
|
185
|
+
* onClick={() => setSelectedColor('#00ff00')}
|
|
186
|
+
* />
|
|
187
|
+
* ```
|
|
188
|
+
*/
|
|
189
|
+
export declare function ColorSwatch(props: ColorSwatchProps): JSX.Element;
|
|
190
|
+
export interface ColorPickerProps {
|
|
191
|
+
/** The current color value (controlled). */
|
|
192
|
+
value?: Color | string;
|
|
193
|
+
/** The default color value (uncontrolled). */
|
|
194
|
+
defaultValue?: Color | string;
|
|
195
|
+
/** Handler called when the color changes. */
|
|
196
|
+
onChange?: (color: Color) => void;
|
|
197
|
+
/** The size of the picker. */
|
|
198
|
+
size?: ColorSize;
|
|
199
|
+
/** Additional CSS class name. */
|
|
200
|
+
class?: string;
|
|
201
|
+
/** Whether the picker is disabled. */
|
|
202
|
+
isDisabled?: boolean;
|
|
203
|
+
/** A label for the picker. */
|
|
204
|
+
label?: string;
|
|
205
|
+
/** Whether to show the hex input field. */
|
|
206
|
+
showInput?: boolean;
|
|
207
|
+
/** Whether to show channel sliders. */
|
|
208
|
+
showSliders?: boolean;
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* A complete color picker component with area, sliders, and input.
|
|
212
|
+
*
|
|
213
|
+
* @example
|
|
214
|
+
* ```tsx
|
|
215
|
+
* const [color, setColor] = createSignal(parseColor('hsl(0, 100%, 50%)'))
|
|
216
|
+
*
|
|
217
|
+
* <ColorPicker
|
|
218
|
+
* value={color()}
|
|
219
|
+
* onChange={setColor}
|
|
220
|
+
* label="Pick a color"
|
|
221
|
+
* showInput
|
|
222
|
+
* showSliders
|
|
223
|
+
* />
|
|
224
|
+
* ```
|
|
225
|
+
*/
|
|
226
|
+
export declare function ColorPicker(props: ColorPickerProps): JSX.Element;
|
|
227
|
+
export type { Color, ColorChannel, ColorFormat };
|
|
228
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/color/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ComboBox component for proyecto-viviana-ui
|
|
3
|
+
*
|
|
4
|
+
* Styled combobox component built on top of solidaria-components.
|
|
5
|
+
* Inspired by Spectrum 2's ComboBox component patterns.
|
|
6
|
+
*/
|
|
7
|
+
import { type JSX } from 'solid-js';
|
|
8
|
+
import { defaultContainsFilter, type ComboBoxProps as HeadlessComboBoxProps, type ComboBoxInputProps as HeadlessComboBoxInputProps, type ComboBoxButtonProps as HeadlessComboBoxButtonProps, type ComboBoxListBoxProps as HeadlessComboBoxListBoxProps, type ComboBoxOptionProps as HeadlessComboBoxOptionProps } from '@proyecto-viviana/solidaria-components';
|
|
9
|
+
import type { Key, FilterFn, MenuTriggerAction } from '@proyecto-viviana/solid-stately';
|
|
10
|
+
export type ComboBoxSize = 'sm' | 'md' | 'lg';
|
|
11
|
+
export interface ComboBoxProps<T> extends Omit<HeadlessComboBoxProps<T>, 'class' | 'style'> {
|
|
12
|
+
/** The size of the combobox. */
|
|
13
|
+
size?: ComboBoxSize;
|
|
14
|
+
/** Additional CSS class name. */
|
|
15
|
+
class?: string;
|
|
16
|
+
/** Label for the combobox. */
|
|
17
|
+
label?: string;
|
|
18
|
+
/** Description for the combobox. */
|
|
19
|
+
description?: string;
|
|
20
|
+
/** Error message when invalid. */
|
|
21
|
+
errorMessage?: string;
|
|
22
|
+
/** Whether the combobox is invalid. */
|
|
23
|
+
isInvalid?: boolean;
|
|
24
|
+
}
|
|
25
|
+
export interface ComboBoxInputProps extends Omit<HeadlessComboBoxInputProps, 'class' | 'style'> {
|
|
26
|
+
/** Additional CSS class name. */
|
|
27
|
+
class?: string;
|
|
28
|
+
}
|
|
29
|
+
export interface ComboBoxButtonProps extends Omit<HeadlessComboBoxButtonProps, 'class' | 'style'> {
|
|
30
|
+
/** Additional CSS class name. */
|
|
31
|
+
class?: string;
|
|
32
|
+
}
|
|
33
|
+
export interface ComboBoxListBoxProps<T> extends Omit<HeadlessComboBoxListBoxProps<T>, 'class' | 'style'> {
|
|
34
|
+
/** Additional CSS class name. */
|
|
35
|
+
class?: string;
|
|
36
|
+
}
|
|
37
|
+
export interface ComboBoxOptionProps<T> extends Omit<HeadlessComboBoxOptionProps<T>, 'class' | 'style'> {
|
|
38
|
+
/** Additional CSS class name. */
|
|
39
|
+
class?: string;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* A combobox combines a text input with a listbox, allowing users to filter a list of options.
|
|
43
|
+
*
|
|
44
|
+
* Built on solidaria-components ComboBox for full accessibility support.
|
|
45
|
+
*/
|
|
46
|
+
export declare function ComboBox<T>(props: ComboBoxProps<T>): JSX.Element;
|
|
47
|
+
export declare namespace ComboBox {
|
|
48
|
+
var InputGroup: typeof ComboBoxInputGroup;
|
|
49
|
+
var Input: typeof ComboBoxInput;
|
|
50
|
+
var Button: typeof ComboBoxButton;
|
|
51
|
+
var ListBox: typeof ComboBoxListBox;
|
|
52
|
+
var Option: typeof ComboBoxOption;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* A wrapper for the input and button that provides proper styling.
|
|
56
|
+
*/
|
|
57
|
+
export declare function ComboBoxInputGroup(props: {
|
|
58
|
+
children: JSX.Element;
|
|
59
|
+
class?: string;
|
|
60
|
+
}): JSX.Element;
|
|
61
|
+
/**
|
|
62
|
+
* The text input for a combobox.
|
|
63
|
+
*/
|
|
64
|
+
export declare function ComboBoxInput(props: ComboBoxInputProps): JSX.Element;
|
|
65
|
+
/**
|
|
66
|
+
* The trigger button for a combobox.
|
|
67
|
+
* SSR-compatible - renders children or chevron icon directly without render props.
|
|
68
|
+
*/
|
|
69
|
+
export declare function ComboBoxButton(props: ComboBoxButtonProps): JSX.Element;
|
|
70
|
+
/**
|
|
71
|
+
* The listbox popup for a combobox.
|
|
72
|
+
*/
|
|
73
|
+
export declare function ComboBoxListBox<T>(props: ComboBoxListBoxProps<T>): JSX.Element;
|
|
74
|
+
/**
|
|
75
|
+
* An option in a combobox listbox.
|
|
76
|
+
* SSR-compatible - renders check icon and content directly without render props.
|
|
77
|
+
*/
|
|
78
|
+
export declare function ComboBoxOption<T>(props: ComboBoxOptionProps<T>): JSX.Element;
|
|
79
|
+
export type { Key, FilterFn, MenuTriggerAction };
|
|
80
|
+
export { defaultContainsFilter };
|
|
81
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/combobox/index.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,GAAG,EAA+C,MAAM,UAAU,CAAA;AAChF,OAAO,EAML,qBAAqB,EACrB,KAAK,aAAa,IAAI,qBAAqB,EAC3C,KAAK,kBAAkB,IAAI,0BAA0B,EACrD,KAAK,mBAAmB,IAAI,2BAA2B,EACvD,KAAK,oBAAoB,IAAI,4BAA4B,EACzD,KAAK,mBAAmB,IAAI,2BAA2B,EAMxD,MAAM,wCAAwC,CAAA;AAC/C,OAAO,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAA;AAMvF,MAAM,MAAM,YAAY,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;AAQ7C,MAAM,WAAW,aAAa,CAAC,CAAC,CAAE,SAAQ,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IACzF,gCAAgC;IAChC,IAAI,CAAC,EAAE,YAAY,CAAA;IACnB,iCAAiC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,oCAAoC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,kCAAkC;IAClC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,uCAAuC;IACvC,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAED,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAAC,0BAA0B,EAAE,OAAO,GAAG,OAAO,CAAC;IAC7F,iCAAiC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,mBAAoB,SAAQ,IAAI,CAAC,2BAA2B,EAAE,OAAO,GAAG,OAAO,CAAC;IAC/F,iCAAiC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,oBAAoB,CAAC,CAAC,CAAE,SAAQ,IAAI,CAAC,4BAA4B,CAAC,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IACvG,iCAAiC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,mBAAmB,CAAC,CAAC,CAAE,SAAQ,IAAI,CAAC,2BAA2B,CAAC,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IACrG,iCAAiC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAqCD;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,OAAO,CAwChE;yBAxCe,QAAQ;;;;;;;AA8CxB;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE;IAAE,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,GAAG,CAAC,OAAO,CAShG;AAMD;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,GAAG,CAAC,OAAO,CAkCpE;AAMD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,GAAG,CAAC,OAAO,CAgCtE;AAMD;;GAEG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,OAAO,CAgB9E;AAMD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,OAAO,CA8C5E;AA0CD,YAAY,EAAE,GAAG,EAAE,QAAQ,EAAE,iBAAiB,EAAE,CAAA;AAChD,OAAO,EAAE,qBAAqB,EAAE,CAAA"}
|
package/dist/components.css
CHANGED
|
@@ -39,6 +39,7 @@
|
|
|
39
39
|
|
|
40
40
|
/* ===== BUTTON COMPONENT ===== */
|
|
41
41
|
.vui-button {
|
|
42
|
+
position: relative;
|
|
42
43
|
font-family: 'Jost', sans-serif;
|
|
43
44
|
display: inline-flex;
|
|
44
45
|
align-items: center;
|
|
@@ -48,15 +49,37 @@
|
|
|
48
49
|
font-weight: 500;
|
|
49
50
|
text-transform: uppercase;
|
|
50
51
|
border-radius: 0.5rem;
|
|
51
|
-
transition: all 0.2s
|
|
52
|
+
transition: all 0.2s cubic-bezier(0.34, 1.56, 0.64, 1);
|
|
52
53
|
cursor: pointer;
|
|
53
54
|
border: none;
|
|
54
55
|
outline: none;
|
|
56
|
+
overflow: hidden;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/* Shimmer overlay for hover effect */
|
|
60
|
+
.vui-button::before {
|
|
61
|
+
content: '';
|
|
62
|
+
position: absolute;
|
|
63
|
+
inset: 0;
|
|
64
|
+
background: linear-gradient(
|
|
65
|
+
90deg,
|
|
66
|
+
transparent 0%,
|
|
67
|
+
rgba(255, 255, 255, 0.1) 50%,
|
|
68
|
+
transparent 100%
|
|
69
|
+
);
|
|
70
|
+
transform: translateX(-100%);
|
|
71
|
+
transition: transform 0.5s ease;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.vui-button:hover::before {
|
|
75
|
+
transform: translateX(100%);
|
|
55
76
|
}
|
|
56
77
|
|
|
57
78
|
.vui-button:focus-visible {
|
|
58
79
|
outline: none;
|
|
59
|
-
box-shadow: 0 0 0 2px var(--color-bg-400),
|
|
80
|
+
box-shadow: 0 0 0 2px var(--color-bg-400),
|
|
81
|
+
0 0 0 4px var(--color-accent-300),
|
|
82
|
+
0 0 20px rgba(223, 92, 154, 0.3);
|
|
60
83
|
}
|
|
61
84
|
|
|
62
85
|
.vui-button:disabled {
|
|
@@ -64,8 +87,12 @@
|
|
|
64
87
|
cursor: not-allowed;
|
|
65
88
|
}
|
|
66
89
|
|
|
90
|
+
.vui-button:disabled::before {
|
|
91
|
+
display: none;
|
|
92
|
+
}
|
|
93
|
+
|
|
67
94
|
.vui-button.is-pressed {
|
|
68
|
-
transform: scale(0.
|
|
95
|
+
transform: scale(0.97);
|
|
69
96
|
}
|
|
70
97
|
|
|
71
98
|
/* Size variants */
|
|
@@ -110,6 +137,11 @@
|
|
|
110
137
|
color: white;
|
|
111
138
|
}
|
|
112
139
|
|
|
140
|
+
.vui-button--fill.vui-button--accent:hover:not(:disabled) {
|
|
141
|
+
box-shadow: 0 0 20px rgba(223, 92, 154, 0.4),
|
|
142
|
+
0 4px 12px rgba(223, 92, 154, 0.3);
|
|
143
|
+
}
|
|
144
|
+
|
|
113
145
|
/* Positive = bg-success-600, text-success-100, border-success-400 */
|
|
114
146
|
.vui-button--fill.vui-button--positive {
|
|
115
147
|
background: var(--color-success-600);
|
|
@@ -441,22 +473,48 @@
|
|
|
441
473
|
|
|
442
474
|
/* ===== SIDEBAR ===== */
|
|
443
475
|
.sidebar-link {
|
|
476
|
+
position: relative;
|
|
444
477
|
display: block;
|
|
445
478
|
padding: 0.5rem 1rem;
|
|
446
|
-
border-radius: 0.
|
|
447
|
-
color: var(--color-primary-
|
|
448
|
-
|
|
479
|
+
border-radius: 0.5rem;
|
|
480
|
+
color: var(--color-primary-400);
|
|
481
|
+
font-size: 0.875rem;
|
|
482
|
+
transition: all 0.2s cubic-bezier(0.34, 1.56, 0.64, 1);
|
|
483
|
+
}
|
|
484
|
+
|
|
485
|
+
.sidebar-link::before {
|
|
486
|
+
content: '';
|
|
487
|
+
position: absolute;
|
|
488
|
+
left: 0;
|
|
489
|
+
top: 50%;
|
|
490
|
+
transform: translateY(-50%);
|
|
491
|
+
width: 3px;
|
|
492
|
+
height: 0;
|
|
493
|
+
background: var(--color-accent);
|
|
494
|
+
border-radius: 0 2px 2px 0;
|
|
495
|
+
transition: height 0.2s ease;
|
|
449
496
|
}
|
|
450
497
|
|
|
451
498
|
.sidebar-link:hover {
|
|
452
|
-
background:
|
|
453
|
-
color: var(--color-primary-
|
|
499
|
+
background: rgba(117, 171, 199, 0.08);
|
|
500
|
+
color: var(--color-primary-200);
|
|
501
|
+
padding-left: 1.25rem;
|
|
502
|
+
}
|
|
503
|
+
|
|
504
|
+
.sidebar-link:hover::before {
|
|
505
|
+
height: 60%;
|
|
454
506
|
}
|
|
455
507
|
|
|
456
508
|
.sidebar-link.active {
|
|
457
|
-
background:
|
|
458
|
-
color: var(--color-
|
|
509
|
+
background: rgba(223, 92, 154, 0.1);
|
|
510
|
+
color: var(--color-accent-200);
|
|
459
511
|
font-weight: 500;
|
|
512
|
+
padding-left: 1.25rem;
|
|
513
|
+
}
|
|
514
|
+
|
|
515
|
+
.sidebar-link.active::before {
|
|
516
|
+
height: 70%;
|
|
517
|
+
box-shadow: 0 0 8px rgba(223, 92, 154, 0.5);
|
|
460
518
|
}
|
|
461
519
|
|
|
462
520
|
/* ===== LOGO COMPONENT ===== */
|
|
@@ -517,6 +575,46 @@
|
|
|
517
575
|
text-shadow: 6px 5px 0 var(--color-accent);
|
|
518
576
|
}
|
|
519
577
|
|
|
578
|
+
/* Inverted variant - first word gets the 3D effect, second word is muted */
|
|
579
|
+
.vui-logo.vui-logo--inverted .vui-logo__first {
|
|
580
|
+
position: relative;
|
|
581
|
+
color: var(--color-primary-500);
|
|
582
|
+
font-weight: 900;
|
|
583
|
+
-webkit-text-stroke: 2px rgba(255, 255, 255, 0.9);
|
|
584
|
+
paint-order: stroke fill;
|
|
585
|
+
}
|
|
586
|
+
|
|
587
|
+
.vui-logo.vui-logo--inverted .vui-logo__first::before {
|
|
588
|
+
content: attr(data-text);
|
|
589
|
+
position: absolute;
|
|
590
|
+
left: 0;
|
|
591
|
+
top: 0;
|
|
592
|
+
z-index: -1;
|
|
593
|
+
color: transparent;
|
|
594
|
+
-webkit-text-stroke: 0;
|
|
595
|
+
text-shadow: 4px 3px 0 var(--color-accent);
|
|
596
|
+
}
|
|
597
|
+
|
|
598
|
+
.vui-logo.vui-logo--inverted .vui-logo__second {
|
|
599
|
+
position: static;
|
|
600
|
+
color: var(--color-primary-800);
|
|
601
|
+
font-weight: 300;
|
|
602
|
+
-webkit-text-stroke: 0;
|
|
603
|
+
paint-order: normal;
|
|
604
|
+
}
|
|
605
|
+
|
|
606
|
+
.vui-logo.vui-logo--inverted .vui-logo__second::before {
|
|
607
|
+
content: none;
|
|
608
|
+
}
|
|
609
|
+
|
|
610
|
+
.vui-logo.vui-logo--inverted.vui-logo--lg .vui-logo__first::before {
|
|
611
|
+
text-shadow: 5px 4px 0 var(--color-accent);
|
|
612
|
+
}
|
|
613
|
+
|
|
614
|
+
.vui-logo.vui-logo--inverted.vui-logo--xl .vui-logo__first::before {
|
|
615
|
+
text-shadow: 6px 5px 0 var(--color-accent);
|
|
616
|
+
}
|
|
617
|
+
|
|
520
618
|
/* ===== HEADER COMPONENT ===== */
|
|
521
619
|
.vui-header {
|
|
522
620
|
position: fixed;
|
|
@@ -524,17 +622,16 @@
|
|
|
524
622
|
left: 0;
|
|
525
623
|
right: 0;
|
|
526
624
|
z-index: 50;
|
|
527
|
-
border-bottom:
|
|
625
|
+
border-bottom: 4px solid var(--color-accent);
|
|
528
626
|
background: color-mix(in srgb, var(--color-bg-400) 80%, transparent);
|
|
529
627
|
backdrop-filter: blur(8px);
|
|
530
628
|
-webkit-backdrop-filter: blur(8px);
|
|
531
629
|
}
|
|
532
630
|
|
|
533
631
|
.vui-header__container {
|
|
534
|
-
margin-left: auto;
|
|
535
|
-
margin-right: auto;
|
|
536
|
-
max-width: 72rem;
|
|
537
632
|
height: 70px;
|
|
633
|
+
padding-left: 32px;
|
|
634
|
+
padding-right: 32px;
|
|
538
635
|
display: flex;
|
|
539
636
|
align-items: center;
|
|
540
637
|
justify-content: space-between;
|
|
@@ -575,6 +672,11 @@
|
|
|
575
672
|
font-family: 'Sen', sans-serif;
|
|
576
673
|
}
|
|
577
674
|
|
|
675
|
+
/* Use this modifier for pages with fixed header where content shouldn't go behind it */
|
|
676
|
+
.vui-page--with-header {
|
|
677
|
+
padding-top: 4rem; /* 64px - matches h-16 header */
|
|
678
|
+
}
|
|
679
|
+
|
|
578
680
|
.vui-page h1,
|
|
579
681
|
.vui-page h2,
|
|
580
682
|
.vui-page h3,
|
|
@@ -1,10 +1,15 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type JSX } from 'solid-js';
|
|
2
2
|
export type ChipVariant = 'primary' | 'secondary' | 'accent' | 'outline';
|
|
3
3
|
export interface ChipProps {
|
|
4
4
|
text: string;
|
|
5
5
|
variant?: ChipVariant;
|
|
6
6
|
onClick?: () => void;
|
|
7
|
-
|
|
7
|
+
/**
|
|
8
|
+
* Icon to display before the text.
|
|
9
|
+
* Use a function returning JSX for SSR compatibility: `icon={() => <MyIcon />}`
|
|
10
|
+
* Or pass a simple string for text-based icons: `icon="★"`
|
|
11
|
+
*/
|
|
12
|
+
icon?: string | (() => JSX.Element);
|
|
8
13
|
class?: string;
|
|
9
14
|
}
|
|
10
15
|
export declare function Chip(props: ChipProps): JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/custom/chip/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/custom/chip/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,GAAG,EAAQ,MAAM,UAAU,CAAA;AAEzC,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAA;AAExE,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,WAAW,CAAA;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,CAAA;IACnC,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AASD,wBAAgB,IAAI,CAAC,KAAK,EAAE,SAAS,eAqBpC"}
|
|
@@ -11,7 +11,11 @@ export interface EventCardProps {
|
|
|
11
11
|
}[];
|
|
12
12
|
attendeeCount?: number;
|
|
13
13
|
decorationImage?: string;
|
|
14
|
-
|
|
14
|
+
/**
|
|
15
|
+
* Actions to display below the event.
|
|
16
|
+
* Use a function returning JSX for SSR compatibility: `actions={() => <Button>...</Button>}`
|
|
17
|
+
*/
|
|
18
|
+
actions?: JSX.Element | (() => JSX.Element);
|
|
15
19
|
class?: string;
|
|
16
20
|
}
|
|
17
21
|
export declare function EventCard(props: EventCardProps): JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/custom/event-card/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAInC,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IAC/C,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,OAAO,CAAC,EAAE,GAAG,CAAC,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/custom/event-card/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAInC,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IAC/C,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB;;;OAGG;IACH,OAAO,CAAC,EAAE,GAAG,CAAC,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,CAAA;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,eA6E9C;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,eAuBtD"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { JSX } from 'solid-js';
|
|
2
|
+
import { type LogoProps } from '../logo';
|
|
3
|
+
export interface HeaderProps {
|
|
4
|
+
/** Image element to show to the left of the text logo */
|
|
5
|
+
logoImage?: JSX.Element;
|
|
6
|
+
/** Props to pass to the Logo component (firstWord, secondWord, size, inverted). Pass null to hide the text logo. */
|
|
7
|
+
logoProps?: LogoProps | null;
|
|
8
|
+
/** Custom logo element - replaces the default Logo component entirely */
|
|
9
|
+
logo?: JSX.Element;
|
|
10
|
+
/** Navigation items to display on the right side */
|
|
11
|
+
children?: JSX.Element;
|
|
12
|
+
/** Additional CSS classes */
|
|
13
|
+
class?: string;
|
|
14
|
+
}
|
|
15
|
+
export declare function Header(props: HeaderProps): JSX.Element;
|
|
16
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/custom/header/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AACnC,OAAO,EAAQ,KAAK,SAAS,EAAE,MAAM,SAAS,CAAA;AAE9C,MAAM,WAAW,WAAW;IAC1B,yDAAyD;IACzD,SAAS,CAAC,EAAE,GAAG,CAAC,OAAO,CAAA;IACvB,oHAAoH;IACpH,SAAS,CAAC,EAAE,SAAS,GAAG,IAAI,CAAA;IAC5B,yEAAyE;IACzE,IAAI,CAAC,EAAE,GAAG,CAAC,OAAO,CAAA;IAClB,oDAAoD;IACpD,QAAQ,CAAC,EAAE,GAAG,CAAC,OAAO,CAAA;IACtB,6BAA6B;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,eAgBxC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/custom/logo/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE/B,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEjD,MAAM,WAAW,SAAS;IACxB,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yCAAyC;IACzC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+BAA+B;IAC/B,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,6BAA6B;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,GAAG,CAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/custom/logo/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE/B,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEjD,MAAM,WAAW,SAAS;IACxB,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yCAAyC;IACzC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+BAA+B;IAC/B,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,6BAA6B;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,GAAG,CAAC,OAAO,CA4BlD"}
|
|
@@ -2,6 +2,8 @@ import { JSX } from 'solid-js';
|
|
|
2
2
|
export interface PageLayoutProps extends JSX.HTMLAttributes<HTMLDivElement> {
|
|
3
3
|
/** Content of the page */
|
|
4
4
|
children: JSX.Element;
|
|
5
|
+
/** Add padding-top to account for fixed header (use for non-landing pages) */
|
|
6
|
+
withHeader?: boolean;
|
|
5
7
|
}
|
|
6
8
|
/**
|
|
7
9
|
* PageLayout provides consistent page structure with proper background and font styling.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/custom/page-layout/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAc,MAAM,UAAU,CAAA;AAE1C,MAAM,WAAW,eAAgB,SAAQ,GAAG,CAAC,cAAc,CAAC,cAAc,CAAC;IACzE,0BAA0B;IAC1B,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/custom/page-layout/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAc,MAAM,UAAU,CAAA;AAE1C,MAAM,WAAW,eAAgB,SAAQ,GAAG,CAAC,cAAc,CAAC,cAAc,CAAC;IACzE,0BAA0B;IAC1B,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAA;IACrB,8EAA8E;IAC9E,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,eAehD"}
|
|
@@ -5,7 +5,11 @@ export interface ProfileCardProps {
|
|
|
5
5
|
bio?: string;
|
|
6
6
|
followers?: number;
|
|
7
7
|
following?: number;
|
|
8
|
-
|
|
8
|
+
/**
|
|
9
|
+
* Actions to display below the profile.
|
|
10
|
+
* Use a function returning JSX for SSR compatibility: `actions={() => <Button>...</Button>}`
|
|
11
|
+
*/
|
|
12
|
+
actions?: JSX.Element | (() => JSX.Element);
|
|
9
13
|
class?: string;
|
|
10
14
|
}
|
|
11
15
|
export declare function ProfileCard(props: ProfileCardProps): JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/custom/profile-card/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAInC,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,GAAG,CAAC,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/custom/profile-card/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAInC,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;OAGG;IACH,OAAO,CAAC,EAAE,GAAG,CAAC,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,OAAO,CAAC,CAAA;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,eA6ClD"}
|
|
@@ -2,7 +2,12 @@ import type { JSX } from 'solid-js';
|
|
|
2
2
|
export type TimelineEventType = 'follow' | 'like' | 'comment' | 'event' | 'custom';
|
|
3
3
|
export interface TimelineItemProps {
|
|
4
4
|
type?: TimelineEventType;
|
|
5
|
-
|
|
5
|
+
/**
|
|
6
|
+
* Icon to display between the two avatars.
|
|
7
|
+
* Use a function returning JSX for SSR compatibility: `icon={() => <MyIcon />}`
|
|
8
|
+
* Or pass a simple string for text-based icons: `icon="👋"`
|
|
9
|
+
*/
|
|
10
|
+
icon?: string | (() => JSX.Element);
|
|
6
11
|
leftUser?: {
|
|
7
12
|
name: string;
|
|
8
13
|
avatar?: string;
|
|
@@ -11,7 +16,12 @@ export interface TimelineItemProps {
|
|
|
11
16
|
name: string;
|
|
12
17
|
avatar?: string;
|
|
13
18
|
};
|
|
14
|
-
|
|
19
|
+
/**
|
|
20
|
+
* Custom message content.
|
|
21
|
+
* Use a function returning JSX for SSR compatibility: `message={() => <span>...</span>}`
|
|
22
|
+
* Or pass a simple string.
|
|
23
|
+
*/
|
|
24
|
+
message?: string | (() => JSX.Element);
|
|
15
25
|
class?: string;
|
|
16
26
|
}
|
|
17
27
|
export declare function TimelineItem(props: TimelineItemProps): JSX.Element;
|