All notable changes to this project will be documented in this file. Dates are displayed in UTC.
- Add Multiselect prop
maxOptions: number
#243
- Add
<slot name="user-msg">
#240
- Rename prop
duplicateFunc()
tokey()
#238
- declare types
#236
- add <slot name="after-input">
0fe8e8d
- add sentence on inputmode='none' use case for hiding on-screen keyboards to readme
466f0a1
1 June 2023
- Revert "Fix Svelte 3.57 a11y (#215)"
#232
- Add default slot
#231
- CmdPalette add prop close_keys
099e1ac
- add copy buttons to all code fences
950dcf6
15 May 2023
- Remove circular import between
MultiSelect
andindex.ts
#230
- Automatically add "bug" label to bug report issues
#229
- Allow
createOptionMsg=null
to suppress console error whenallowUserOptions
thruthy#227
- Fix MultiSelect unable to deselect object options
#226
- Update pnpm instructions
#224
30 April 2023
- Fix
svelte-check
errors#223
- fix: hide dropdown when custom messages are empty
#220
- DRY workflows
#218
- fix: allow object options to share the same label
#217
- delete wait_for_animation_end() and fix tests to use playwright auto-waiting correctly
2493029
- don't highlight noMatchingOptionsMsg <span> in sms-search-matches
a1feca7
19 March 2023
- Fix Svelte 3.57 a11y
#215
- Add prop
highlightMatches
toMultiSelect
#212
- fix: add missing role attr for <li>
#211
- update deps, set TS moduleResolution=bundler
a12835e
9 March 2023
- Fix Lighthouse a11y issues
#210
- clear selected and searchText first, then trigger removeAll and change events in remove_all()
#208
- add props style, span_style, open, dialog, input, placeholder to CmdPalette + pipe through all other props to MultiSelect
97e6815
- fix /css-classes example not applying styles from external classes
aa1e28e
1 March 2023
- Make first matching option active automatically on entering searchText
#206
- add src/lib/NavPalette.svelte invoked with cmd+k for keyboard-only site navigation
e3f4ea9
- rename NavPalette to CmdPalette and make it execute generic actions on item select
b27cd80
- update to svelte-package v2
8d3df3e
- fix selected options having cursor: grab (to indicate drag and drop support to change order) even if only single option selected
3309e1e
25 January 2023
- Don't error on removing options that are in
selected
but not inoptions
array#204
- Add class 'remove' to buttons that remove selected options
#202
- Add prop allowEmpty: boolean = false
#198
- Support
immutable
Svelte compiler option#197
- group demo routes
e813e48
- breaking: rename addOptionMsg to createOptionMsg
f24e025
8 January 2023
- Coverage badges
#190
- feat: add type inference for the
options
prop#189
- feat: add type inference for the
options
prop (#189)#78
- merge ExampleCode.svelte with CollapsibleCode.svelte
56ff99b
- pnpm add -D svelte-zoo to outsource some site components and icons
f2a387c
- restore reactive searchText block in loading example
846da66
- fix bunch of TS errors, add playwright test for dragging selected options to reorder
a483217
- add update-coverage package.json script
1094f08
- add vite alias $root to clean up package.json, readme|contributing|changelog.md imports
c19cbe4
- mv src/components src/site
3683ed7
28 December 2022
- add 'Open in StackBlitz' links to example code fences
ac07557
18 December 2022
- Issue console warning if
sortSelected && selectedOptionsDraggable
#187
- Add new slot named 'expand-icon'
#186
10 December 2022
- Fix
allowUserOptions
preventing dropdown list navigation with up/down arrow keys#184
- Mdsvexamples
#182
- Add changelog & contributing pages to site
#181
- tweak contributing.md and css-classes example
6f78033
- fix build error
b896d36
- fix readme badge for gh-pages.yml status
906b560
30 November 2022
- Add
changelog.md
#180
- Draggable selected options
#178
- Set
<base href="/svelte-multiselect" />
if !dev && !prerendering
#172
- Publish docs to GitHub pages
#170
- Contributing docs plus issue and PR templates with StackBlitz repro starter
#169
- add missing about field to bug-report issue template (closes #171)
#171
- fix prop form_input: set default value null to make it optional
b150fe0
18 November 2022
- Add minSelect prop
#166
- Add
pnpm test
to readme#168
- Add class for maxSelectMsg
#167
- Allow
required=1 | 2 | ...
to set minimum number of selected options for form submission#161
- Add minSelect prop (#166)
#163
#163
#163
- mv /max-select example to /min-max-select
9838db8
15 November 2022
15 November 2022
- Test uncovered lines
#157
- Don't
console.error
about missingoptions
ifloading=true
#156
- Measure
vitest
coverage withc8
#155
- increase --sms-min-height 19->22pt
5d0e081
7 November 2022
- Pass JSON.stringified selected options to form submission handlers
#152
- Link check CI and readme housekeeping
#149
- REPL links for landing page examples
#148
- Add Collapsible code blocks to usage examples
#143
- REPL links for landing page examples (#148)
#144
#145
#146
#147
30 October 2022
- Revert SCSS preprocessing
#141
- Add unit tests for 2-/1-way binding of
activeIndex
andactiveOption
#139
22 October 2022
- Add new prop
value
#138
- New prop resetFilterOnAdd
#137
yarn
topnpm
#134
- Rename prop
noOptionsMsg
->noMatchingOptionsMsg
#133
- remove props selectedLabels and selectedValues
ef6598e
13 October 2022
- Allow preventing duplicate options when allowUserOptions is thruthy
#132
8 October 2022
- Fix TypeError: Cannot read properties of null (reading 'get_label') - take 2
#131
- Fix selecting options with falsy labels (like 0)
#130
6 October 2022
- Fix single select with arrow and enter keys
#128
- Add SCSS preprocessing
#126
- [pre-commit.ci] pre-commit autoupdate
#124
- more unit tests
1adbc99
- test required but empty MultiSelect fails form validity check (i.e. causes unsubmittable form) and filled one passes it
fd8b377
3 October 2022
- Make selected a single value (not a length-1 array) if maxSelect=1
#123
- Fix TypeError: Cannot read properties of null (reading 'get_label') at MultiSelect.svelte:75
#122
- add stopPropagation to keydown handler (closes #114)
#114
30 September 2022
- Forward input DOM events
#120
- Props to manipulating inputmode and pattern attributes
#116
- docs: remove
userInputAs
prop reference#115
- Fix top option not selectable with enter key
#113
20 September 2022
- Fix using arrow keys to control active option in dropdown list
#111
- eslintrc set @typescript-eslint/no-inferrable-types: off
c688773
17 September 2022
- Test readme docs on CSS variables
#109
- Fix selected array not being initialized to options with preselected=true
#108
13 September 2022
- Better props docs and test
#105
- fix breaking change sveltekit:prefetch renamed to data-sveltekit-prefetch
65ddbb9
- fix .svx demo routes
fde53f1
- revert from adapter-netlify to adapter-static
224144d
3 September 2022
2 August 2022
- Fix 'Cannot find module
scroll-into-view-if-needed
'#99
2 August 2022
- Add
scroll-into-view-if-needed
ponyfill#97
17 July 2022
- Convert E2E tests from
vitest
to@playwright/test
#95
- Allow empty Multiselect
#94
- Add new slot
'remove-icon'
#93
- [pre-commit.ci] pre-commit autoupdate
#92
1 July 2022
- Reset
activeOption
tonull
if not inmatchingOptions
#90
27 June 2022
- Replace
li.scrollIntoViewIfNeeded()
withli.scrollIntoView()
#88
- Add new prop
parseLabelsAsHtml
#84
- try fix flaky test 'multiselect > can select and remove many options'
2b0c453
- bump netlify node to v18, update readme + deps
586c724
- remove plausible.js analytics
cd4c9f6
23 April 2022
- Strongly typed custom events
#79
21 April 2022
- v5 release
#76
- Work with string options as is, don't convert to objects internally
#75
- v5 release (#76)
#57
7 April 2022
- Fix backspace deleting multiple selected options if identical labels
#72
- Several fixes for
allowUserOptions
#69
- [pre-commit.ci] pre-commit autoupdate
#70
2 April 2022
- Fix MultiSelect
localStorage
binding#66
30 March 2022
- Move examples to new
src/routes/demos
dir#63
- make ToC position fixed (closes #64)
#64
- check for undefined (not falsy) value in rawOp processing (fixes #65)
#65
- LanguageSlot change SVG icons src repo to vscode-icons for more coverage
92390e9
- more preselected slots in Examples.svelte
cd0a01a
23 March 2022
- Add
aria-label
to hidden.form-control
input#62
- Add
aria-label
to hidden.form-control
input (#62)#58
#35
- fix dropdown closing when clicking between list items (closes #61)
#61
- svelte.config.js add kit.prerender.default: true, mv src/{global,app}.d.ts
4a84913
13 March 2022
- Improve a11y
#60
- Convert tests to Playwright
#59
- Convert tests to Playwright (#59)
#58
- add and document prop invalid (closes #47)
#47
- set width (not height) on svg icons and as px (not em) so they don't shrink with fluid typography on mobile screens
ba77f93
5 March 2022
- Rename readonly to disabled
#55
- CSS and UX tweaks
#52
- Readme document test runner config to avoid transpiling errors in downstream testing
#54
- More tests
#51
- Add
vitest
#50
- Rename readonly to disabled (#55)
#45
- close options dropdown list on input blur (fixes #53)
#53
- CSS and UX tweaks (#52)
#44
#44
#44
- Readme document test runner config to avoid transpiling errors in downstream testing (#54)
#48
21 February 2022
- Implement
allowUserOptions
,autoScroll
andloading
(closes #39)#41
- define DispatchEvents type used to annotate createEventDispatcher()
#32
- add prop required to prevent form submission if no options selected (closes #42)
#42
- Implement
allowUserOptions
,autoScroll
andloading
(closes #39) (#41)#39
#39
20 February 2022
- by default, only show maxSelectMsg if maxSelect != null and > 1 (closes #37)
#37
- add CSS var --sms-options-shadow defaults to subtle black shadow around dropdown list (0 0 14pt -8pt black) (closes #36)
#36
- add prop liActiveOptionClass = '' (closes #35)
#35
- turn searchText = and showOptions = false into bindable props (closes #33)
#33
- document missing noOptionsMsg prop (closes #34)
#34
- ensure custom class names (outerDivClass, ulOptionsClass) come last (closes #38)
#38
- fix ToC scroll to heading (closes #31)
#31
- only show remove all btn when maxSelect !== 1 (for #37)
64cfd8a
19 February 2022
- Fixes for focus on click and wiggle on hitting maxSelect
#30
16 February 2022
- Expose filter method
#29
- readme improve docs on css variables and granular control through :global() selectors (closes #27)
#27
7 February 2022
- mv input outside ul.selected for better HTML semantics (closes #26)
#26
3 February 2022
- apply id prop to <input> insted of outer div (closes #25)
#25
- add eslint commit hook + update deps
6ad44b8
- v.3.2.0
71ff2d1
- add readme badge to document minimum svelte version (for #24)
7d9fe5a
25 January 2022
- wiggle the maxSelect msg on hitting selection limit (closes #19)
#19
- readme better docs for CSS variables, rename slots {options,selected}Renderer -> render{options,selected}
c8ab724
22 January 2022
- add selectedRenderer + optionRenderer named slots (closes #21)
#21
- docs site use unmodified readme with slot to insert examples, yarn add svelte-github-corner
1072691
- readme add note on type exports for TS users, add error page that redirects to index
dde76c8
7 January 2022
- favorite web framework show Confetti.svelte on:add Svelte
8d109ee
- bump [email protected] to silence warning: MultiSelect has unused export property 'defaultDisabledTitle' (sveltejs/svelte#6964)
f80a7a6
- update readme + [email protected]
40013ba
- [pre-commit.ci] pre-commit autoupdate
0d05864
- iOS Safari prevent zoom into page on focus MultiSelect input
44f17be
29 December 2021
- ensure active option is scrolled into view if needed (closes #15), breaking change: renames tokens to options
#15
24 December 2021
- Convert options from simple strings to objects
#16
- Add local to transition:fly
#14
- add onClickOutside action, used to replace input.on:blur() for hiding options (closes #18)
#18
- update deps
fb90f93
- more keyboard friendliness by showing remove button focus and triggering on space bar or enter key
b87d22b
- add plausible
0557c0f
27 October 2021
- set <input> width back to 1pt as it's only needed to tab into, focus and blur <MultiSelect> (closes #12)
#12
- update readme
45c7993
21 October 2021
- make internal CSS easily overridable (sveltejs/svelte#6859)
d15a445
12 October 2021
- add src/lib/index.ts for package path export '.' (closes #11)
#11
12 October 2021
- add src/lib/index.ts for package path export '.' (closes #11)
#11
11 October 2021
- Add new prop disabledOptions
#9
- add pre-commit hooks
dfb6399
- [pre-commit.ci] pre-commit autoupdate
b69425d
3 September 2021
- fix removeAll button not dispatching remove and change events (closes #7)
#7
- remove @tsconfig/svelte, update deps
9b2c231
- add type=(add|remove) detail to 'change' event dispatch
8290458
12 August 2021
- add on:change event and document events in readme (closes #5)
#5
12 July 2021
- convert to typescript
bd391c5
- update to @sveltejs/[email protected]+ to use svelte field in package.json
2367e38
7 July 2021
- turn hard-coded remove button titles into props
c35162b
- guard against selected being nullish, keep ul.options in the DOM even if showoptions is false to allow selecting in dev tools for styling
b9bd576
5 July 2021
- add css classes as props for use with tailwind (closes #3)
#3
23 June 2021
- fix: don't remove tags if search string is non-empty, open options on clicking selected tags (#2)
5ffed50
- update svelte-toc to fix deploy
d5279dd
22 June 2021
- convert to svelte-kit package
9db3cfb
21 June 2021
- fix setting initial value for selected, fix setting class 'selected' in single mode
16d11de
20 June 2021
- replace prop single with maxSelect to specify any number of selectable options, add class single to div.multiselect if maxSelect===1 (#2)
36e916f
- add linked headings
2eedf9a
28 May 2021
- add css var props
f591814
25 May 2021
- add GitHubCorner.svelte for link to repo
e80a402
- remove selected tokens with backspace
c5d7495
- add readme badges
992eaa4
- demo site fix stripping start of readme for docs
107273d
- add svelte-toc table of contents to demo site
36aa1c5
9 May 2021
- import readme on demo site instead of duplication
c0e4924
- remove ununsed example.svx
2138caa
- rename package dir, improve readme
0150378
8 May 2021
- remove hidden input for storing currently selected as JSON
802a219
7 May 2021
- initial commit
14dd38a