@ibobbyts/svelte-ui-utils 0.2.8 → 0.2.9
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 +17 -13
- package/dist/dropdown/Dropdown.svelte +4 -1
- package/dist/dropdown/Dropdown.svelte.d.ts +2 -1
- package/dist/dropdown/Dropdown.svelte.d.ts.map +1 -1
- package/dist/dropdown/index.d.ts +1 -1
- package/dist/dropdown/index.d.ts.map +1 -1
- package/dist/dropdown/types.d.ts +1 -0
- package/dist/dropdown/types.d.ts.map +1 -1
- package/dist/style.css +11 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -255,6 +255,7 @@ countdown bar.
|
|
|
255
255
|
options={pageSizeOptions}
|
|
256
256
|
ariaLabel="Rows"
|
|
257
257
|
placement="down"
|
|
258
|
+
menuAlign="left"
|
|
258
259
|
onChange={(next) => {
|
|
259
260
|
pageSize = next;
|
|
260
261
|
}}
|
|
@@ -263,7 +264,11 @@ countdown bar.
|
|
|
263
264
|
|
|
264
265
|
`Dropdown` is a controlled select-like component for simple option lists. Use
|
|
265
266
|
`placement="up"` when the menu should open above the trigger, such as bottom
|
|
266
|
-
pagination bars. `
|
|
267
|
+
pagination bars. Use `menuAlign="left"` when the expanded menu should share the
|
|
268
|
+
trigger's left edge; the default is `right` for backward compatibility.
|
|
269
|
+
`fitContent` can be combined with `menuAlign="left"` to size the menu to its
|
|
270
|
+
longest option while keeping its left edge aligned. `DataTable` uses this same
|
|
271
|
+
component for its page-size picker.
|
|
267
272
|
|
|
268
273
|
## DataTable
|
|
269
274
|
|
|
@@ -488,23 +493,22 @@ inside a theme root:
|
|
|
488
493
|
|
|
489
494
|
## Release
|
|
490
495
|
|
|
491
|
-
Publishing is release-driven:
|
|
492
|
-
|
|
493
496
|
Do not publish this package as part of consumer-app local integration work.
|
|
494
|
-
|
|
495
|
-
|
|
497
|
+
Publish only when a release is explicitly requested. Releases are published
|
|
498
|
+
directly from the maintainer's machine to npm; do not create a GitHub Actions
|
|
499
|
+
secret or a GitHub Release for package publishing.
|
|
500
|
+
|
|
501
|
+
The npm token is exported as `NPM_TOKEN` from `~/.zshrc`. After updating the
|
|
502
|
+
package version, run the validation and publish commands locally:
|
|
496
503
|
|
|
497
504
|
```bash
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
gh run watch
|
|
505
|
+
npm run check
|
|
506
|
+
npm test
|
|
507
|
+
npm run package
|
|
508
|
+
npm publish --access public
|
|
503
509
|
```
|
|
504
510
|
|
|
505
|
-
|
|
506
|
-
the repository secret `NPM_TOKEN`. The token must have permission to publish
|
|
507
|
-
`@ibobbyts/svelte-ui-utils`; do not commit it to this repository.
|
|
511
|
+
Never commit the npm token or copy it into repository settings.
|
|
508
512
|
|
|
509
513
|
## Bun install verification
|
|
510
514
|
|
|
@@ -2,13 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
<script lang="ts">
|
|
4
4
|
import { onDestroy, tick } from 'svelte';
|
|
5
|
-
import type { DropdownChangeHandler, DropdownOption, DropdownPlacement, DropdownValue } from './types.js';
|
|
5
|
+
import type { DropdownChangeHandler, DropdownMenuAlign, DropdownOption, DropdownPlacement, DropdownValue } from './types.js';
|
|
6
6
|
|
|
7
7
|
export let id: string | undefined = undefined;
|
|
8
8
|
export let value: DropdownValue = '';
|
|
9
9
|
export let options: DropdownOption[] = [];
|
|
10
10
|
export let ariaLabel: string | undefined = undefined;
|
|
11
11
|
export let placement: DropdownPlacement = 'down';
|
|
12
|
+
export let menuAlign: DropdownMenuAlign = 'right';
|
|
12
13
|
export let fitViewport = false;
|
|
13
14
|
export let fitContent = false;
|
|
14
15
|
export let disabled = false;
|
|
@@ -224,6 +225,8 @@
|
|
|
224
225
|
class="suu-dropdown__menu"
|
|
225
226
|
class:suu-dropdown__menu--up={placement === 'up'}
|
|
226
227
|
class:suu-dropdown__menu--down={placement === 'down'}
|
|
228
|
+
class:suu-dropdown__menu--left={menuAlign === 'left'}
|
|
229
|
+
class:suu-dropdown__menu--right={menuAlign === 'right'}
|
|
227
230
|
class:suu-dropdown__menu--fit-content={fitContent}
|
|
228
231
|
>
|
|
229
232
|
<div class="suu-dropdown__panel" role="listbox" aria-label={ariaLabel}>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { DropdownChangeHandler, DropdownOption, DropdownPlacement, DropdownValue } from './types.js';
|
|
1
|
+
import type { DropdownChangeHandler, DropdownMenuAlign, DropdownOption, DropdownPlacement, DropdownValue } from './types.js';
|
|
2
2
|
interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
|
|
3
3
|
new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
|
|
4
4
|
$$bindings?: Bindings;
|
|
@@ -18,6 +18,7 @@ declare const Dropdown: $$__sveltets_2_IsomorphicComponent<{
|
|
|
18
18
|
options?: DropdownOption[];
|
|
19
19
|
ariaLabel?: string | undefined;
|
|
20
20
|
placement?: DropdownPlacement;
|
|
21
|
+
menuAlign?: DropdownMenuAlign;
|
|
21
22
|
fitViewport?: boolean;
|
|
22
23
|
fitContent?: boolean;
|
|
23
24
|
disabled?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dropdown.svelte.d.ts","sourceRoot":"","sources":["../../src/lib/dropdown/Dropdown.svelte.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,qBAAqB,EAAE,cAAc,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"Dropdown.svelte.d.ts","sourceRoot":"","sources":["../../src/lib/dropdown/Dropdown.svelte.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,cAAc,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAkO7H,UAAU,kCAAkC,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,OAAO,GAAG,EAAE,EAAE,QAAQ,GAAG,MAAM;IACpM,KAAK,OAAO,EAAE,OAAO,QAAQ,EAAE,2BAA2B,CAAC,KAAK,CAAC,GAAG,OAAO,QAAQ,EAAE,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG;QAAE,UAAU,CAAC,EAAE,QAAQ,CAAA;KAAE,GAAG,OAAO,CAAC;IACjK,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,KAAK,CAAA;KAAC,GAAG,OAAO,GAAG;QAAE,IAAI,CAAC,EAAE,GAAG,CAAC;QAAC,GAAG,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC;IAC9G,YAAY,CAAC,EAAE,QAAQ,CAAC;CAC3B;AAKD,QAAA,MAAM,QAAQ;SAVyN,MAAM,GAAG,SAAS;YAAU,aAAa;cAAY,cAAc,EAAE;gBAAc,MAAM,GAAG,SAAS;gBAAc,iBAAiB;gBAAc,iBAAiB;;;;eAA2G,qBAAqB,GAAG,SAAS;;;kBAUzb,CAAC;AAC5E,KAAK,QAAQ,GAAG,YAAY,CAAC,OAAO,QAAQ,CAAC,CAAC;AAChD,eAAe,QAAQ,CAAC"}
|
package/dist/dropdown/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { default as Dropdown } from './Dropdown.svelte';
|
|
2
|
-
export type { DropdownChangeHandler, DropdownOption, DropdownPlacement, DropdownValue } from './types.js';
|
|
2
|
+
export type { DropdownChangeHandler, DropdownMenuAlign, DropdownOption, DropdownPlacement, DropdownValue } from './types.js';
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/dropdown/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACxD,YAAY,EAAE,qBAAqB,EAAE,cAAc,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lib/dropdown/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACxD,YAAY,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,cAAc,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/dropdown/types.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/dropdown/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,CAAC;AAE5C,MAAM,MAAM,iBAAiB,GAAG,IAAI,GAAG,MAAM,CAAC;AAE9C,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,aAAa,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,MAAM,qBAAqB,GAAG,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/dropdown/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,CAAC;AAE5C,MAAM,MAAM,iBAAiB,GAAG,IAAI,GAAG,MAAM,CAAC;AAE9C,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,OAAO,CAAC;AAEjD,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,aAAa,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,MAAM,qBAAqB,GAAG,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC"}
|
package/dist/style.css
CHANGED
|
@@ -1154,6 +1154,7 @@
|
|
|
1154
1154
|
position: absolute;
|
|
1155
1155
|
top: calc(100% + 6px);
|
|
1156
1156
|
right: 0;
|
|
1157
|
+
left: auto;
|
|
1157
1158
|
z-index: 100;
|
|
1158
1159
|
min-width: 100%;
|
|
1159
1160
|
overflow: hidden;
|
|
@@ -1163,6 +1164,16 @@
|
|
|
1163
1164
|
box-shadow: 0 18px 42px rgb(15 23 42 / 0.16);
|
|
1164
1165
|
}
|
|
1165
1166
|
|
|
1167
|
+
.suu-dropdown__menu--left {
|
|
1168
|
+
right: auto;
|
|
1169
|
+
left: 0;
|
|
1170
|
+
}
|
|
1171
|
+
|
|
1172
|
+
.suu-dropdown__menu--right {
|
|
1173
|
+
right: 0;
|
|
1174
|
+
left: auto;
|
|
1175
|
+
}
|
|
1176
|
+
|
|
1166
1177
|
.suu-dropdown__menu--up {
|
|
1167
1178
|
top: auto;
|
|
1168
1179
|
bottom: calc(100% + 6px);
|
package/package.json
CHANGED