@santi020k/lumen-astro 1.0.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -0
- package/components/Input.astro +17 -4
- package/components/NativeSelect.astro +17 -4
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -51,6 +51,15 @@ import { Button, Card, Input } from '@santi020k/lumen-astro'
|
|
|
51
51
|
</Card>
|
|
52
52
|
```
|
|
53
53
|
|
|
54
|
+
`Input` and `NativeSelect` preserve the native numeric `size` attribute. Use `visualSize="sm"` or
|
|
55
|
+
`visualSize="lg"` for presentation. The pre-1.0 `size="sm|lg"` visual alias remains available for
|
|
56
|
+
incremental migrations, but new code should keep native behavior and visual styling separate.
|
|
57
|
+
|
|
58
|
+
```astro
|
|
59
|
+
<Input size={32} visualSize="sm" />
|
|
60
|
+
<NativeSelect size={8} visualSize="lg" />
|
|
61
|
+
```
|
|
62
|
+
|
|
54
63
|
## Forms and Astro Actions
|
|
55
64
|
|
|
56
65
|
`Form` renders a semantic form and preserves native `method`, `action`, `enctype`, autocomplete,
|
package/components/Input.astro
CHANGED
|
@@ -6,20 +6,33 @@ import { resolveLumenAstroProps } from '@santi020k/lumen-core'
|
|
|
6
6
|
interface Props extends Omit<HTMLAttributes<'input'>, 'size'> {
|
|
7
7
|
class?: string | null
|
|
8
8
|
className?: string
|
|
9
|
-
size?: '
|
|
9
|
+
size?: HTMLAttributes<'input'>['size']
|
|
10
|
+
visualSize?: 'default' | 'lg' | 'sm'
|
|
10
11
|
}
|
|
11
12
|
|
|
12
|
-
const {
|
|
13
|
+
const {
|
|
14
|
+
class: classProp = '',
|
|
15
|
+
className = '',
|
|
16
|
+
size,
|
|
17
|
+
type = 'text',
|
|
18
|
+
visualSize,
|
|
19
|
+
...rest
|
|
20
|
+
} = Astro.props
|
|
21
|
+
|
|
22
|
+
const legacyVisualSize = size === 'default' || size === 'lg' || size === 'sm' ? size : undefined
|
|
23
|
+
const resolvedVisualSize = visualSize ?? legacyVisualSize ?? 'default'
|
|
24
|
+
const nativeSize = legacyVisualSize ? undefined : size
|
|
13
25
|
|
|
14
26
|
const { classList, passthrough } = resolveLumenAstroProps(rest, [
|
|
15
27
|
'ui-input',
|
|
16
|
-
|
|
17
|
-
|
|
28
|
+
resolvedVisualSize === 'sm' && 'ui-input--sm',
|
|
29
|
+
resolvedVisualSize === 'lg' && 'ui-input--lg'
|
|
18
30
|
], classProp, className)
|
|
19
31
|
---
|
|
20
32
|
|
|
21
33
|
<input
|
|
22
34
|
class:list={classList}
|
|
35
|
+
size={nativeSize}
|
|
23
36
|
type={type}
|
|
24
37
|
{...passthrough}
|
|
25
38
|
/>
|
|
@@ -14,20 +14,33 @@ type SelectOption = Option | string
|
|
|
14
14
|
interface Props extends Omit<HTMLAttributes<'select'>, 'size'> {
|
|
15
15
|
class?: string | null
|
|
16
16
|
className?: string
|
|
17
|
-
size?: '
|
|
17
|
+
size?: HTMLAttributes<'select'>['size']
|
|
18
18
|
options?: SelectOption[]
|
|
19
19
|
placeholder?: string
|
|
20
|
+
visualSize?: 'default' | 'lg' | 'sm'
|
|
20
21
|
}
|
|
21
22
|
|
|
22
|
-
const {
|
|
23
|
+
const {
|
|
24
|
+
class: classProp = '',
|
|
25
|
+
className = '',
|
|
26
|
+
options = [],
|
|
27
|
+
placeholder,
|
|
28
|
+
size,
|
|
29
|
+
visualSize,
|
|
30
|
+
...rest
|
|
31
|
+
} = Astro.props
|
|
32
|
+
|
|
23
33
|
const hasValue = Object.hasOwn(rest, 'value')
|
|
24
34
|
const normalizedOptions = options.map(option => typeof option === 'string' ? { label: option, value: option } : option)
|
|
35
|
+
const legacyVisualSize = size === 'default' || size === 'lg' || size === 'sm' ? size : undefined
|
|
36
|
+
const resolvedVisualSize = visualSize ?? legacyVisualSize ?? 'default'
|
|
37
|
+
const nativeSize = legacyVisualSize ? undefined : size
|
|
25
38
|
|
|
26
|
-
const { classList, passthrough } = resolveLumenAstroProps(rest, ['ui-select',
|
|
39
|
+
const { classList, passthrough } = resolveLumenAstroProps(rest, ['ui-select', resolvedVisualSize === 'sm' && 'ui-select--sm', resolvedVisualSize === 'lg' && 'ui-select--lg'
|
|
27
40
|
], classProp, className)
|
|
28
41
|
---
|
|
29
42
|
|
|
30
|
-
<select class:list={classList} {...passthrough}>
|
|
43
|
+
<select class:list={classList} size={nativeSize} {...passthrough}>
|
|
31
44
|
{placeholder && <option disabled selected={!hasValue} value="">{placeholder}</option>}
|
|
32
45
|
<slot />
|
|
33
46
|
{normalizedOptions.map(option => (
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@santi020k/lumen-astro",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -37,12 +37,12 @@
|
|
|
37
37
|
],
|
|
38
38
|
"dependencies": {
|
|
39
39
|
"uqr": "^0.1.3",
|
|
40
|
-
"@santi020k/lumen": "^1.
|
|
41
|
-
"@santi020k/lumen-core": "^1.
|
|
40
|
+
"@santi020k/lumen": "^1.1.0",
|
|
41
|
+
"@santi020k/lumen-core": "^1.1.0"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
44
|
"@astrojs/ts-plugin": "^1.10.10",
|
|
45
|
-
"astro": "^7.
|
|
45
|
+
"astro": "^7.2.0",
|
|
46
46
|
"typescript": "^6.0.3",
|
|
47
47
|
"vitest": "^4.1.10"
|
|
48
48
|
},
|