@krollins/blueprint 0.2.2 → 0.3.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/LICENSE +20 -20
- package/README.md +123 -123
- package/README.npm.md +123 -123
- package/dist/components/accordion/accordion.d.ts +6 -1
- package/dist/components/accordion/accordion.d.ts.map +1 -1
- package/dist/components/accordion/accordion.style.d.ts.map +1 -1
- package/dist/components/accordion.js +2 -394
- package/dist/components/alert/alert.d.ts +6 -1
- package/dist/components/alert/alert.d.ts.map +1 -1
- package/dist/components/alert/alert.style.d.ts.map +1 -1
- package/dist/components/alert.js +2 -219
- package/dist/components/avatar/avatar.d.ts +6 -1
- package/dist/components/avatar/avatar.d.ts.map +1 -1
- package/dist/components/avatar.js +2 -238
- package/dist/components/badge/badge.d.ts.map +1 -1
- package/dist/components/badge/badge.style.d.ts.map +1 -1
- package/dist/components/badge.js +2 -144
- package/dist/components/breadcrumb/breadcrumb.d.ts +6 -1
- package/dist/components/breadcrumb/breadcrumb.d.ts.map +1 -1
- package/dist/components/breadcrumb/breadcrumb.style.d.ts +9 -0
- package/dist/components/breadcrumb/breadcrumb.style.d.ts.map +1 -1
- package/dist/components/breadcrumb.js +2 -481
- package/dist/components/button/button.d.ts.map +1 -1
- package/dist/components/button.js +2 -192
- package/dist/components/card/card.d.ts.map +1 -1
- package/dist/components/card.js +2 -223
- package/dist/components/checkbox/checkbox.d.ts +7 -0
- package/dist/components/checkbox/checkbox.d.ts.map +1 -1
- package/dist/components/checkbox.js +2 -336
- package/dist/components/code-block/code-block.d.ts.map +1 -1
- package/dist/components/code-block.js +2 -585
- package/dist/components/color-picker/color-picker.d.ts +12 -1
- package/dist/components/color-picker/color-picker.d.ts.map +1 -1
- package/dist/components/color-picker/color-picker.style.d.ts.map +1 -1
- package/dist/components/color-picker/color-picker.utils.d.ts.map +1 -1
- package/dist/components/color-picker.js +2 -1660
- package/dist/components/combobox/combobox.d.ts +14 -1
- package/dist/components/combobox/combobox.d.ts.map +1 -1
- package/dist/components/combobox/combobox.style.d.ts.map +1 -1
- package/dist/components/combobox.js +2 -595
- package/dist/components/container/container.d.ts +26 -0
- package/dist/components/container/container.d.ts.map +1 -0
- package/dist/components/container/container.style.d.ts +2 -0
- package/dist/components/container/container.style.d.ts.map +1 -0
- package/dist/components/container.js +2 -0
- package/dist/components/date-picker/date-picker.d.ts +15 -1
- package/dist/components/date-picker/date-picker.d.ts.map +1 -1
- package/dist/components/date-picker/date-picker.style.d.ts.map +1 -1
- package/dist/components/date-picker.js +2 -726
- package/dist/components/divider/divider.d.ts.map +1 -1
- package/dist/components/divider.js +2 -214
- package/dist/components/drawer/drawer.d.ts +6 -1
- package/dist/components/drawer/drawer.d.ts.map +1 -1
- package/dist/components/drawer/drawer.style.d.ts.map +1 -1
- package/dist/components/drawer.js +2 -569
- package/dist/components/dropdown/dropdown.d.ts.map +1 -1
- package/dist/components/dropdown.js +2 -377
- package/dist/components/fieldset/fieldset.d.ts +54 -0
- package/dist/components/fieldset/fieldset.d.ts.map +1 -0
- package/dist/components/fieldset/fieldset.style.d.ts +2 -0
- package/dist/components/fieldset/fieldset.style.d.ts.map +1 -0
- package/dist/components/fieldset.js +2 -0
- package/dist/components/file-upload/file-upload.d.ts +13 -1
- package/dist/components/file-upload/file-upload.d.ts.map +1 -1
- package/dist/components/file-upload/file-upload.style.d.ts.map +1 -1
- package/dist/components/file-upload.js +2 -669
- package/dist/components/grid/grid.d.ts +37 -0
- package/dist/components/grid/grid.d.ts.map +1 -0
- package/dist/components/grid/grid.style.d.ts +2 -0
- package/dist/components/grid/grid.style.d.ts.map +1 -0
- package/dist/components/grid.js +2 -0
- package/dist/components/heading/heading.d.ts.map +1 -1
- package/dist/components/heading.js +2 -161
- package/dist/components/icon/icon.d.ts +1 -1
- package/dist/components/icon/icon.d.ts.map +1 -1
- package/dist/components/icon/icon.style.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/airplay.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/alarm-clock.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/align-horizontal.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/align-vertical.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/angle.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/archive.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/arrow-bottom-left.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/arrow-bottom-right.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/arrow-down-circle.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/arrow-down.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/arrow-left-circle.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/arrow-left.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/arrow-right-circle.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/arrow-right.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/arrow-top-left.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/arrow-top-right.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/arrow-up-circle.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/arrow-up.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/audio-wave.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/backspace.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/backward.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/bag.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/battery-75.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/battery-charging.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/battery-empty.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/battery-full.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/battery-half.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/battery-low.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/bell-disabled.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/bell-ringing.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/bell-snooze.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/bell.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/bluetooth.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/book-closed.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/book-text.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/book.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/bookmark-book.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/bookmark.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/box-add.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/box-download.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/box-open.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/box-remove.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/box.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/boxes.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/branch.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/briefcase.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/browser-alt.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/browser.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/button-add.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/button-minus.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/calculator.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/calendar-add.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/calendar-date.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/calendar-day.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/calendar-days.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/calendar-last-day.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/calendar-month.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/calendar-move.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/calendar-remove.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/calendar-split.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/calendar-week.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/calendar.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/camera-alt.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/camera-noflash-alt.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/camera-noflash.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/camera.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/capture.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/card-timeline.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/card-view.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/carousel.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/cart.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/cast.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/chain.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/chat-add.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/check-circle-outside.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/check-circle.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/check.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/checkbox-checked.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/checkbox-empty.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/chevron-close.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/chevron-down-circle.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/chevron-down-double.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/chevron-down.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/chevron-left-circle.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/chevron-left-double.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/chevron-left.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/chevron-open.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/chevron-right-circle.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/chevron-right-double.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/chevron-right.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/chevron-up-circle.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/chevron-up-double.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/chevron-up.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/circle-menu.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/circle-split.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/circle.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/clipboard-add.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/clipboard-check.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/clipboard-copy.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/clipboard-cross.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/clipboard-notes.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/clipboard-remove.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/clipboard.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/clock.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/close.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/cloud-disconnect.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/cloud-download-alt.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/cloud-download.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/cloud-upload-alt.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/cloud-upload.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/cloud.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/code.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/coffee.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/coin.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/coins.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/compass.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/component-add.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/contacts.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/contract.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/create.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/credit-card.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/crop.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/cross-circle.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/cross.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/crosshair.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/cube.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/cubes.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/cylinder.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/database.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/diamond.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/directions.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/disc.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/display-alt.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/display.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/document-justified.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/document-list.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/document-stack.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/document-words.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/document.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/door-alt.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/door.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/download-alt.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/download.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/downward.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/drag-circle.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/drag-vertical.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/drag.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/duplicate-alt.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/duplicate.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/enter-alt.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/enter.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/episodes.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/exit-left.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/exit-right.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/expand-height.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/expand-width.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/expand.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/external.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/eye-closed.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/eye-no.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/eye.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/face-delighted.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/face-happy.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/face-neutral.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/face-sad.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/file-download.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/file-upload.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/files-history.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/files-multi.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/files-stack.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/film.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/filter-circle.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/filter-single.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/filter.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/filtering.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/fingerprint.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/flag.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/flame-alt.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/flame.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/flip-view.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/floppy.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/folder-add.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/folder-closed.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/folder-minus.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/folder-open.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/fork-git.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/forward.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/frame.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/fullscreen.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/funnel.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/gauge.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/gift.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/globe.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/gps.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/grab.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/graph-bar.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/graph-box.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/graph-increase.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/grid-circles-add.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/grid-circles.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/grid-small.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/grid-squares-add.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/grid-squares.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/grid.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/hand.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/harddrive.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/hash.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/heart-rate.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/heart-remove.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/heart.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/height.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/hierarchy.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/home-alt.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/home-check.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/home-door.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/home.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/import.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/inbox-alt.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/inbox.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/info-circle.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/iphone-landscape.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/iphone-portrait.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/jump-backward.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/jump-forward.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/jump-left.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/jump-right.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/keyboard.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/laptop.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/lightbulb-on.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/lightbulb.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/lightning-alt.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/lightning.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/lineweight.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/link-alt.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/link-broken.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/link-horizontal.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/link-vertical.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/link.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/list-add.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/list-numbered.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/list.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/loader.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/location.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/lock-open.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/lock.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/mail-add.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/mail-delete.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/mail-minus.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/mail-new.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/mail-open.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/mail-remove.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/mail.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/marquee.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/maximise.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/menu-hamburger.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/menu-horizontal.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/menu-vertical.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/message-writing.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/message.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/microphone-disabled.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/microphone-muted.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/microphone.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/midpoint.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/mini-player.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/minimise.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/minus-circle.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/minus.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/moon.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/move.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/newspaper.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/no-sign.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/notebook.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/notification.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/nut.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/pages.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/panel-bottom.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/panel-center.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/panel-left.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/panel-right.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/panel-sectioned.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/panel-top.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/paper-folded.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/paper-plane-alt.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/paper-plane.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/paper.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/paperclip.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/paragraph-center.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/paragraph-end.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/paragraph-left.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/paragraph-right.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/paragraph-start.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/pen.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/phone-landscape.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/phone-portrait.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/picture.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/pie-half.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/pie-quarter.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/pie-third.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/pill.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/play-button.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/plus-circle.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/plus.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/postcard.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/printer.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/projector.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/pull-down.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/pull-left.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/pull-right.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/pull-up.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/push-down.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/push-left.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/push-right.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/push-up.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/question-circle.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/radio-on.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/receipt.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/record.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/redo.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/refresh-alt.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/refresh.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/replicate-alt.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/replicate.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/reset-alt.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/reset-forward.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/reset-hard.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/reset-temporary.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/reset.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/retweet.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/reuse.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/reverse-alt.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/reverse.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/revert.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/rocket.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/ruler.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/scale-contract.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/scale-extend.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/scale.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/scalpel.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/search.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/server.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/settings.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/share-alt.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/share.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/shuffle.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/side-menu.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/signal-full.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/signal-low.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/signal-medium.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/signal-none.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/slash-backward.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/slash-forward.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/sliders.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/sort-alt.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/sort.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/speaker.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/speech-bubble.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/speech-typing.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/split-three.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/split.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/star.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/sun.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/support.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/swap.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/switch.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/table-header.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/table.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/tag-milestone.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/tag.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/tags.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/target.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/terminal.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/thread.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/thumbs-down.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/thumbs-up.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/ticket.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/timeline.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/todo.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/toggle.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/toggles.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/translate.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/trash-alt.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/trash.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/trophy.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/tv-mode.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/unarchive.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/undo-history.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/undo.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/unlink-horizontal.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/unlink-vertical.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/upload-alt.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/upload.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/upward.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/user-add.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/user-circle.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/user-male-circle.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/user-male.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/user-remove.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/user.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/users.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/venn.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/version.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/versions.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/video.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/volume-0.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/volume-add.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/volume-disabled.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/volume-high.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/volume-low.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/volume-minus.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/volume-muted.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/wallet.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/warning-circle.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/warning-hex.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/warning-triangle.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/waves.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/width.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/wifi-error.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/wifi-none.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/wifi.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/window-collapse-left.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/window-collapse-right.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/window-content.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/window.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/wrap-back.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/wrap-forward.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/write.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/zoom-cancel.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/zoom-in.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/zoom-out.d.ts.map +1 -1
- package/dist/components/icon/icons/entries/zoom-reset.d.ts.map +1 -1
- package/dist/components/icon-button/icon-button.d.ts +52 -0
- package/dist/components/icon-button/icon-button.d.ts.map +1 -0
- package/dist/components/icon-button/icon-button.style.d.ts +2 -0
- package/dist/components/icon-button/icon-button.style.d.ts.map +1 -0
- package/dist/components/icon-button.js +2 -0
- package/dist/components/icon.js +2 -196
- package/dist/components/index.d.ts +9 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/input/input.d.ts +12 -2
- package/dist/components/input/input.d.ts.map +1 -1
- package/dist/components/input/input.style.d.ts.map +1 -1
- package/dist/components/input.js +2 -363
- package/dist/components/link/link.d.ts.map +1 -1
- package/dist/components/link.js +2 -178
- package/dist/components/menu/menu.d.ts.map +1 -1
- package/dist/components/menu.js +2 -331
- package/dist/components/modal/modal.d.ts.map +1 -1
- package/dist/components/modal.js +2 -317
- package/dist/components/multi-select/multi-select.d.ts +16 -1
- package/dist/components/multi-select/multi-select.d.ts.map +1 -1
- package/dist/components/multi-select/multi-select.style.d.ts.map +1 -1
- package/dist/components/multi-select.js +2 -642
- package/dist/components/notification/notification.d.ts +14 -2
- package/dist/components/notification/notification.d.ts.map +1 -1
- package/dist/components/notification/notification.style.d.ts.map +1 -1
- package/dist/components/notification-stack/notification-stack.d.ts +87 -0
- package/dist/components/notification-stack/notification-stack.d.ts.map +1 -0
- package/dist/components/notification-stack/notification-stack.style.d.ts +2 -0
- package/dist/components/notification-stack/notification-stack.style.d.ts.map +1 -0
- package/dist/components/notification-stack.js +2 -0
- package/dist/components/notification.js +2 -436
- package/dist/components/number-input/number-input.d.ts +18 -2
- package/dist/components/number-input/number-input.d.ts.map +1 -1
- package/dist/components/number-input/number-input.style.d.ts.map +1 -1
- package/dist/components/number-input.js +2 -556
- package/dist/components/pagination/pagination.d.ts.map +1 -1
- package/dist/components/pagination.js +2 -320
- package/dist/components/popover/popover.d.ts +6 -1
- package/dist/components/popover/popover.d.ts.map +1 -1
- package/dist/components/popover/popover.style.d.ts.map +1 -1
- package/dist/components/popover.js +2 -598
- package/dist/components/progress/progress.d.ts.map +1 -1
- package/dist/components/progress.js +2 -219
- package/dist/components/radio/radio.d.ts +12 -0
- package/dist/components/radio/radio.d.ts.map +1 -1
- package/dist/components/radio-group/radio-group.d.ts +87 -0
- package/dist/components/radio-group/radio-group.d.ts.map +1 -0
- package/dist/components/radio-group/radio-group.style.d.ts +2 -0
- package/dist/components/radio-group/radio-group.style.d.ts.map +1 -0
- package/dist/components/radio-group.js +2 -0
- package/dist/components/radio.js +2 -321
- package/dist/components/select/select.d.ts +12 -1
- package/dist/components/select/select.d.ts.map +1 -1
- package/dist/components/select/select.style.d.ts.map +1 -1
- package/dist/components/select.js +2 -498
- package/dist/components/skeleton/skeleton.d.ts.map +1 -1
- package/dist/components/skeleton.js +2 -240
- package/dist/components/slider/slider.d.ts +12 -1
- package/dist/components/slider/slider.d.ts.map +1 -1
- package/dist/components/slider/slider.style.d.ts.map +1 -1
- package/dist/components/slider.js +2 -9
- package/dist/components/spinner/spinner.d.ts.map +1 -1
- package/dist/components/spinner.js +2 -133
- package/dist/components/stack/stack.d.ts +37 -0
- package/dist/components/stack/stack.d.ts.map +1 -0
- package/dist/components/stack/stack.style.d.ts +2 -0
- package/dist/components/stack/stack.style.d.ts.map +1 -0
- package/dist/components/stack.js +2 -0
- package/dist/components/stepper/stepper.d.ts.map +1 -1
- package/dist/components/stepper/stepper.style.d.ts.map +1 -1
- package/dist/components/stepper.js +2 -812
- package/dist/components/switch/switch.d.ts +7 -0
- package/dist/components/switch/switch.d.ts.map +1 -1
- package/dist/components/switch.js +2 -379
- package/dist/components/table/table.d.ts +6 -1
- package/dist/components/table/table.d.ts.map +1 -1
- package/dist/components/table.js +2 -644
- package/dist/components/tabs/tabs.d.ts +6 -1
- package/dist/components/tabs/tabs.d.ts.map +1 -1
- package/dist/components/tabs.js +2 -547
- package/dist/components/tag/tag.d.ts +6 -1
- package/dist/components/tag/tag.d.ts.map +1 -1
- package/dist/components/tag/tag.style.d.ts.map +1 -1
- package/dist/components/tag.js +2 -292
- package/dist/components/text/text.d.ts.map +1 -1
- package/dist/components/text.js +2 -278
- package/dist/components/textarea/textarea.d.ts +11 -3
- package/dist/components/textarea/textarea.d.ts.map +1 -1
- package/dist/components/textarea/textarea.style.d.ts.map +1 -1
- package/dist/components/textarea.js +2 -380
- package/dist/components/time-picker/time-picker.d.ts +12 -1
- package/dist/components/time-picker/time-picker.d.ts.map +1 -1
- package/dist/components/time-picker/time-picker.style.d.ts.map +1 -1
- package/dist/components/time-picker.js +2 -457
- package/dist/components/tooltip/tooltip.d.ts.map +1 -1
- package/dist/components/tooltip.js +2 -239
- package/dist/components/tree/tree.d.ts +8 -2
- package/dist/components/tree/tree.d.ts.map +1 -1
- package/dist/components/tree.js +2 -583
- package/dist/icons/airplay.js +6 -6
- package/dist/icons/airplay.js.map +1 -1
- package/dist/icons/alarm-clock.js +6 -6
- package/dist/icons/alarm-clock.js.map +1 -1
- package/dist/icons/align-horizontal.js +6 -6
- package/dist/icons/align-horizontal.js.map +1 -1
- package/dist/icons/align-vertical.js +6 -6
- package/dist/icons/align-vertical.js.map +1 -1
- package/dist/icons/angle.js +6 -6
- package/dist/icons/angle.js.map +1 -1
- package/dist/icons/archive.js +6 -6
- package/dist/icons/archive.js.map +1 -1
- package/dist/icons/arrow-bottom-left.js +6 -6
- package/dist/icons/arrow-bottom-left.js.map +1 -1
- package/dist/icons/arrow-bottom-right.js +6 -6
- package/dist/icons/arrow-bottom-right.js.map +1 -1
- package/dist/icons/arrow-down-circle.js +6 -6
- package/dist/icons/arrow-down-circle.js.map +1 -1
- package/dist/icons/arrow-down.js +6 -6
- package/dist/icons/arrow-down.js.map +1 -1
- package/dist/icons/arrow-left-circle.js +6 -6
- package/dist/icons/arrow-left-circle.js.map +1 -1
- package/dist/icons/arrow-left.js +6 -6
- package/dist/icons/arrow-left.js.map +1 -1
- package/dist/icons/arrow-right-circle.js +6 -6
- package/dist/icons/arrow-right-circle.js.map +1 -1
- package/dist/icons/arrow-right.js +6 -6
- package/dist/icons/arrow-right.js.map +1 -1
- package/dist/icons/arrow-top-left.js +6 -6
- package/dist/icons/arrow-top-left.js.map +1 -1
- package/dist/icons/arrow-top-right.js +6 -6
- package/dist/icons/arrow-top-right.js.map +1 -1
- package/dist/icons/arrow-up-circle.js +6 -6
- package/dist/icons/arrow-up-circle.js.map +1 -1
- package/dist/icons/arrow-up.js +6 -6
- package/dist/icons/arrow-up.js.map +1 -1
- package/dist/icons/audio-wave.js +6 -6
- package/dist/icons/audio-wave.js.map +1 -1
- package/dist/icons/backspace.js +6 -6
- package/dist/icons/backspace.js.map +1 -1
- package/dist/icons/backward.js +6 -6
- package/dist/icons/backward.js.map +1 -1
- package/dist/icons/bag.js +6 -6
- package/dist/icons/bag.js.map +1 -1
- package/dist/icons/battery-75.js +6 -6
- package/dist/icons/battery-75.js.map +1 -1
- package/dist/icons/battery-charging.js +6 -6
- package/dist/icons/battery-charging.js.map +1 -1
- package/dist/icons/battery-empty.js +6 -6
- package/dist/icons/battery-empty.js.map +1 -1
- package/dist/icons/battery-full.js +6 -6
- package/dist/icons/battery-full.js.map +1 -1
- package/dist/icons/battery-half.js +6 -6
- package/dist/icons/battery-half.js.map +1 -1
- package/dist/icons/battery-low.js +6 -6
- package/dist/icons/battery-low.js.map +1 -1
- package/dist/icons/bell-disabled.js +6 -6
- package/dist/icons/bell-disabled.js.map +1 -1
- package/dist/icons/bell-ringing.js +6 -6
- package/dist/icons/bell-ringing.js.map +1 -1
- package/dist/icons/bell-snooze.js +6 -6
- package/dist/icons/bell-snooze.js.map +1 -1
- package/dist/icons/bell.js +6 -6
- package/dist/icons/bell.js.map +1 -1
- package/dist/icons/bluetooth.js +6 -6
- package/dist/icons/bluetooth.js.map +1 -1
- package/dist/icons/book-closed.js +6 -6
- package/dist/icons/book-closed.js.map +1 -1
- package/dist/icons/book-text.js +6 -6
- package/dist/icons/book-text.js.map +1 -1
- package/dist/icons/book.js +6 -6
- package/dist/icons/book.js.map +1 -1
- package/dist/icons/bookmark-book.js +6 -6
- package/dist/icons/bookmark-book.js.map +1 -1
- package/dist/icons/bookmark.js +6 -6
- package/dist/icons/bookmark.js.map +1 -1
- package/dist/icons/box-add.js +6 -6
- package/dist/icons/box-add.js.map +1 -1
- package/dist/icons/box-download.js +6 -6
- package/dist/icons/box-download.js.map +1 -1
- package/dist/icons/box-open.js +6 -6
- package/dist/icons/box-open.js.map +1 -1
- package/dist/icons/box-remove.js +6 -6
- package/dist/icons/box-remove.js.map +1 -1
- package/dist/icons/box.js +6 -6
- package/dist/icons/box.js.map +1 -1
- package/dist/icons/boxes.js +6 -6
- package/dist/icons/boxes.js.map +1 -1
- package/dist/icons/branch.js +6 -6
- package/dist/icons/branch.js.map +1 -1
- package/dist/icons/briefcase.js +6 -6
- package/dist/icons/briefcase.js.map +1 -1
- package/dist/icons/browser-alt.js +6 -6
- package/dist/icons/browser-alt.js.map +1 -1
- package/dist/icons/browser.js +6 -6
- package/dist/icons/browser.js.map +1 -1
- package/dist/icons/button-add.js +6 -6
- package/dist/icons/button-add.js.map +1 -1
- package/dist/icons/button-minus.js +6 -6
- package/dist/icons/button-minus.js.map +1 -1
- package/dist/icons/calculator.js +6 -6
- package/dist/icons/calculator.js.map +1 -1
- package/dist/icons/calendar-add.js +6 -6
- package/dist/icons/calendar-add.js.map +1 -1
- package/dist/icons/calendar-date.js +6 -6
- package/dist/icons/calendar-date.js.map +1 -1
- package/dist/icons/calendar-day.js +6 -6
- package/dist/icons/calendar-day.js.map +1 -1
- package/dist/icons/calendar-days.js +6 -6
- package/dist/icons/calendar-days.js.map +1 -1
- package/dist/icons/calendar-last-day.js +6 -6
- package/dist/icons/calendar-last-day.js.map +1 -1
- package/dist/icons/calendar-month.js +6 -6
- package/dist/icons/calendar-month.js.map +1 -1
- package/dist/icons/calendar-move.js +6 -6
- package/dist/icons/calendar-move.js.map +1 -1
- package/dist/icons/calendar-remove.js +6 -6
- package/dist/icons/calendar-remove.js.map +1 -1
- package/dist/icons/calendar-split.js +6 -6
- package/dist/icons/calendar-split.js.map +1 -1
- package/dist/icons/calendar-week.js +6 -6
- package/dist/icons/calendar-week.js.map +1 -1
- package/dist/icons/calendar.js +6 -6
- package/dist/icons/calendar.js.map +1 -1
- package/dist/icons/camera-alt.js +6 -6
- package/dist/icons/camera-alt.js.map +1 -1
- package/dist/icons/camera-noflash-alt.js +6 -6
- package/dist/icons/camera-noflash-alt.js.map +1 -1
- package/dist/icons/camera-noflash.js +6 -6
- package/dist/icons/camera-noflash.js.map +1 -1
- package/dist/icons/camera.js +6 -6
- package/dist/icons/camera.js.map +1 -1
- package/dist/icons/capture.js +6 -6
- package/dist/icons/capture.js.map +1 -1
- package/dist/icons/card-timeline.js +6 -6
- package/dist/icons/card-timeline.js.map +1 -1
- package/dist/icons/card-view.js +6 -6
- package/dist/icons/card-view.js.map +1 -1
- package/dist/icons/carousel.js +6 -6
- package/dist/icons/carousel.js.map +1 -1
- package/dist/icons/cart.js +6 -6
- package/dist/icons/cart.js.map +1 -1
- package/dist/icons/cast.js +6 -6
- package/dist/icons/cast.js.map +1 -1
- package/dist/icons/chain.js +6 -6
- package/dist/icons/chain.js.map +1 -1
- package/dist/icons/chat-add.js +6 -6
- package/dist/icons/chat-add.js.map +1 -1
- package/dist/icons/check-circle-outside.js +6 -6
- package/dist/icons/check-circle-outside.js.map +1 -1
- package/dist/icons/check-circle.js +6 -6
- package/dist/icons/check-circle.js.map +1 -1
- package/dist/icons/check.js +6 -6
- package/dist/icons/check.js.map +1 -1
- package/dist/icons/checkbox-checked.js +6 -6
- package/dist/icons/checkbox-checked.js.map +1 -1
- package/dist/icons/checkbox-empty.js +6 -6
- package/dist/icons/checkbox-empty.js.map +1 -1
- package/dist/icons/chevron-close.js +6 -6
- package/dist/icons/chevron-close.js.map +1 -1
- package/dist/icons/chevron-down-circle.js +6 -6
- package/dist/icons/chevron-down-circle.js.map +1 -1
- package/dist/icons/chevron-down-double.js +6 -6
- package/dist/icons/chevron-down-double.js.map +1 -1
- package/dist/icons/chevron-down.js +6 -6
- package/dist/icons/chevron-down.js.map +1 -1
- package/dist/icons/chevron-left-circle.js +6 -6
- package/dist/icons/chevron-left-circle.js.map +1 -1
- package/dist/icons/chevron-left-double.js +6 -6
- package/dist/icons/chevron-left-double.js.map +1 -1
- package/dist/icons/chevron-left.js +6 -6
- package/dist/icons/chevron-left.js.map +1 -1
- package/dist/icons/chevron-open.js +6 -6
- package/dist/icons/chevron-open.js.map +1 -1
- package/dist/icons/chevron-right-circle.js +6 -6
- package/dist/icons/chevron-right-circle.js.map +1 -1
- package/dist/icons/chevron-right-double.js +6 -6
- package/dist/icons/chevron-right-double.js.map +1 -1
- package/dist/icons/chevron-right.js +6 -6
- package/dist/icons/chevron-right.js.map +1 -1
- package/dist/icons/chevron-up-circle.js +6 -6
- package/dist/icons/chevron-up-circle.js.map +1 -1
- package/dist/icons/chevron-up-double.js +6 -6
- package/dist/icons/chevron-up-double.js.map +1 -1
- package/dist/icons/chevron-up.js +6 -6
- package/dist/icons/chevron-up.js.map +1 -1
- package/dist/icons/circle-menu.js +6 -6
- package/dist/icons/circle-menu.js.map +1 -1
- package/dist/icons/circle-split.js +6 -6
- package/dist/icons/circle-split.js.map +1 -1
- package/dist/icons/circle.js +6 -6
- package/dist/icons/circle.js.map +1 -1
- package/dist/icons/clipboard-add.js +6 -6
- package/dist/icons/clipboard-add.js.map +1 -1
- package/dist/icons/clipboard-check.js +6 -6
- package/dist/icons/clipboard-check.js.map +1 -1
- package/dist/icons/clipboard-copy.js +6 -6
- package/dist/icons/clipboard-copy.js.map +1 -1
- package/dist/icons/clipboard-cross.js +6 -6
- package/dist/icons/clipboard-cross.js.map +1 -1
- package/dist/icons/clipboard-notes.js +6 -6
- package/dist/icons/clipboard-notes.js.map +1 -1
- package/dist/icons/clipboard-remove.js +6 -6
- package/dist/icons/clipboard-remove.js.map +1 -1
- package/dist/icons/clipboard.js +6 -6
- package/dist/icons/clipboard.js.map +1 -1
- package/dist/icons/clock.js +6 -6
- package/dist/icons/clock.js.map +1 -1
- package/dist/icons/close.js +6 -6
- package/dist/icons/close.js.map +1 -1
- package/dist/icons/cloud-disconnect.js +6 -6
- package/dist/icons/cloud-disconnect.js.map +1 -1
- package/dist/icons/cloud-download-alt.js +6 -6
- package/dist/icons/cloud-download-alt.js.map +1 -1
- package/dist/icons/cloud-download.js +6 -6
- package/dist/icons/cloud-download.js.map +1 -1
- package/dist/icons/cloud-upload-alt.js +6 -6
- package/dist/icons/cloud-upload-alt.js.map +1 -1
- package/dist/icons/cloud-upload.js +6 -6
- package/dist/icons/cloud-upload.js.map +1 -1
- package/dist/icons/cloud.js +6 -6
- package/dist/icons/cloud.js.map +1 -1
- package/dist/icons/code.js +6 -6
- package/dist/icons/code.js.map +1 -1
- package/dist/icons/coffee.js +6 -6
- package/dist/icons/coffee.js.map +1 -1
- package/dist/icons/coin.js +6 -6
- package/dist/icons/coin.js.map +1 -1
- package/dist/icons/coins.js +6 -6
- package/dist/icons/coins.js.map +1 -1
- package/dist/icons/compass.js +6 -6
- package/dist/icons/compass.js.map +1 -1
- package/dist/icons/component-add.js +6 -6
- package/dist/icons/component-add.js.map +1 -1
- package/dist/icons/contacts.js +6 -6
- package/dist/icons/contacts.js.map +1 -1
- package/dist/icons/contract.js +6 -6
- package/dist/icons/contract.js.map +1 -1
- package/dist/icons/create.js +6 -13
- package/dist/icons/create.js.map +1 -1
- package/dist/icons/credit-card.js +6 -6
- package/dist/icons/credit-card.js.map +1 -1
- package/dist/icons/crop.js +6 -6
- package/dist/icons/crop.js.map +1 -1
- package/dist/icons/cross-circle.js +6 -6
- package/dist/icons/cross-circle.js.map +1 -1
- package/dist/icons/cross.js +6 -6
- package/dist/icons/cross.js.map +1 -1
- package/dist/icons/crosshair.js +6 -6
- package/dist/icons/crosshair.js.map +1 -1
- package/dist/icons/cube.js +6 -6
- package/dist/icons/cube.js.map +1 -1
- package/dist/icons/cubes.js +6 -6
- package/dist/icons/cubes.js.map +1 -1
- package/dist/icons/cylinder.js +6 -6
- package/dist/icons/cylinder.js.map +1 -1
- package/dist/icons/database.js +6 -6
- package/dist/icons/database.js.map +1 -1
- package/dist/icons/diamond.js +6 -6
- package/dist/icons/diamond.js.map +1 -1
- package/dist/icons/directions.js +6 -6
- package/dist/icons/directions.js.map +1 -1
- package/dist/icons/disc.js +6 -6
- package/dist/icons/disc.js.map +1 -1
- package/dist/icons/display-alt.js +6 -6
- package/dist/icons/display-alt.js.map +1 -1
- package/dist/icons/display.js +6 -6
- package/dist/icons/display.js.map +1 -1
- package/dist/icons/document-justified.js +6 -6
- package/dist/icons/document-justified.js.map +1 -1
- package/dist/icons/document-list.js +6 -6
- package/dist/icons/document-list.js.map +1 -1
- package/dist/icons/document-stack.js +6 -6
- package/dist/icons/document-stack.js.map +1 -1
- package/dist/icons/document-words.js +6 -6
- package/dist/icons/document-words.js.map +1 -1
- package/dist/icons/document.js +6 -6
- package/dist/icons/document.js.map +1 -1
- package/dist/icons/door-alt.js +6 -6
- package/dist/icons/door-alt.js.map +1 -1
- package/dist/icons/door.js +6 -6
- package/dist/icons/door.js.map +1 -1
- package/dist/icons/download-alt.js +6 -6
- package/dist/icons/download-alt.js.map +1 -1
- package/dist/icons/download.js +6 -6
- package/dist/icons/download.js.map +1 -1
- package/dist/icons/downward.js +6 -6
- package/dist/icons/downward.js.map +1 -1
- package/dist/icons/drag-circle.js +6 -6
- package/dist/icons/drag-circle.js.map +1 -1
- package/dist/icons/drag-vertical.js +6 -6
- package/dist/icons/drag-vertical.js.map +1 -1
- package/dist/icons/drag.js +6 -6
- package/dist/icons/drag.js.map +1 -1
- package/dist/icons/duplicate-alt.js +6 -6
- package/dist/icons/duplicate-alt.js.map +1 -1
- package/dist/icons/duplicate.js +6 -6
- package/dist/icons/duplicate.js.map +1 -1
- package/dist/icons/enter-alt.js +6 -6
- package/dist/icons/enter-alt.js.map +1 -1
- package/dist/icons/enter.js +6 -6
- package/dist/icons/enter.js.map +1 -1
- package/dist/icons/episodes.js +6 -6
- package/dist/icons/episodes.js.map +1 -1
- package/dist/icons/exit-left.js +6 -6
- package/dist/icons/exit-left.js.map +1 -1
- package/dist/icons/exit-right.js +6 -6
- package/dist/icons/exit-right.js.map +1 -1
- package/dist/icons/expand-height.js +6 -6
- package/dist/icons/expand-height.js.map +1 -1
- package/dist/icons/expand-width.js +6 -6
- package/dist/icons/expand-width.js.map +1 -1
- package/dist/icons/expand.js +6 -6
- package/dist/icons/expand.js.map +1 -1
- package/dist/icons/external.js +6 -6
- package/dist/icons/external.js.map +1 -1
- package/dist/icons/eye-closed.js +6 -6
- package/dist/icons/eye-closed.js.map +1 -1
- package/dist/icons/eye-no.js +6 -6
- package/dist/icons/eye-no.js.map +1 -1
- package/dist/icons/eye.js +6 -6
- package/dist/icons/eye.js.map +1 -1
- package/dist/icons/face-delighted.js +6 -6
- package/dist/icons/face-delighted.js.map +1 -1
- package/dist/icons/face-happy.js +6 -6
- package/dist/icons/face-happy.js.map +1 -1
- package/dist/icons/face-neutral.js +6 -6
- package/dist/icons/face-neutral.js.map +1 -1
- package/dist/icons/face-sad.js +6 -6
- package/dist/icons/face-sad.js.map +1 -1
- package/dist/icons/file-download.js +6 -6
- package/dist/icons/file-download.js.map +1 -1
- package/dist/icons/file-upload.js +6 -6
- package/dist/icons/file-upload.js.map +1 -1
- package/dist/icons/files-history.js +6 -6
- package/dist/icons/files-history.js.map +1 -1
- package/dist/icons/files-multi.js +6 -6
- package/dist/icons/files-multi.js.map +1 -1
- package/dist/icons/files-stack.js +6 -6
- package/dist/icons/files-stack.js.map +1 -1
- package/dist/icons/film.js +6 -6
- package/dist/icons/film.js.map +1 -1
- package/dist/icons/filter-circle.js +6 -6
- package/dist/icons/filter-circle.js.map +1 -1
- package/dist/icons/filter-single.js +6 -6
- package/dist/icons/filter-single.js.map +1 -1
- package/dist/icons/filter.js +6 -6
- package/dist/icons/filter.js.map +1 -1
- package/dist/icons/filtering.js +6 -6
- package/dist/icons/filtering.js.map +1 -1
- package/dist/icons/fingerprint.js +6 -6
- package/dist/icons/fingerprint.js.map +1 -1
- package/dist/icons/flag.js +6 -6
- package/dist/icons/flag.js.map +1 -1
- package/dist/icons/flame-alt.js +6 -6
- package/dist/icons/flame-alt.js.map +1 -1
- package/dist/icons/flame.js +6 -11
- package/dist/icons/flame.js.map +1 -1
- package/dist/icons/flip-view.js +6 -6
- package/dist/icons/flip-view.js.map +1 -1
- package/dist/icons/floppy.js +6 -6
- package/dist/icons/floppy.js.map +1 -1
- package/dist/icons/folder-add.js +6 -6
- package/dist/icons/folder-add.js.map +1 -1
- package/dist/icons/folder-closed.js +6 -6
- package/dist/icons/folder-closed.js.map +1 -1
- package/dist/icons/folder-minus.js +6 -6
- package/dist/icons/folder-minus.js.map +1 -1
- package/dist/icons/folder-open.js +6 -6
- package/dist/icons/folder-open.js.map +1 -1
- package/dist/icons/fork-git.js +6 -6
- package/dist/icons/fork-git.js.map +1 -1
- package/dist/icons/forward.js +6 -6
- package/dist/icons/forward.js.map +1 -1
- package/dist/icons/frame.js +6 -6
- package/dist/icons/frame.js.map +1 -1
- package/dist/icons/fullscreen.js +6 -6
- package/dist/icons/fullscreen.js.map +1 -1
- package/dist/icons/funnel.js +6 -6
- package/dist/icons/funnel.js.map +1 -1
- package/dist/icons/gauge.js +6 -6
- package/dist/icons/gauge.js.map +1 -1
- package/dist/icons/gift.js +6 -6
- package/dist/icons/gift.js.map +1 -1
- package/dist/icons/globe.js +6 -6
- package/dist/icons/globe.js.map +1 -1
- package/dist/icons/gps.js +6 -6
- package/dist/icons/gps.js.map +1 -1
- package/dist/icons/grab.js +6 -6
- package/dist/icons/grab.js.map +1 -1
- package/dist/icons/graph-bar.js +6 -6
- package/dist/icons/graph-bar.js.map +1 -1
- package/dist/icons/graph-box.js +6 -6
- package/dist/icons/graph-box.js.map +1 -1
- package/dist/icons/graph-increase.js +6 -6
- package/dist/icons/graph-increase.js.map +1 -1
- package/dist/icons/grid-circles-add.js +6 -6
- package/dist/icons/grid-circles-add.js.map +1 -1
- package/dist/icons/grid-circles.js +6 -6
- package/dist/icons/grid-circles.js.map +1 -1
- package/dist/icons/grid-small.js +6 -6
- package/dist/icons/grid-small.js.map +1 -1
- package/dist/icons/grid-squares-add.js +6 -6
- package/dist/icons/grid-squares-add.js.map +1 -1
- package/dist/icons/grid-squares.js +6 -6
- package/dist/icons/grid-squares.js.map +1 -1
- package/dist/icons/grid.js +6 -6
- package/dist/icons/grid.js.map +1 -1
- package/dist/icons/hand.js +6 -6
- package/dist/icons/hand.js.map +1 -1
- package/dist/icons/harddrive.js +6 -6
- package/dist/icons/harddrive.js.map +1 -1
- package/dist/icons/hash.js +6 -6
- package/dist/icons/hash.js.map +1 -1
- package/dist/icons/heart-rate.js +6 -6
- package/dist/icons/heart-rate.js.map +1 -1
- package/dist/icons/heart-remove.js +6 -6
- package/dist/icons/heart-remove.js.map +1 -1
- package/dist/icons/heart.js +6 -6
- package/dist/icons/heart.js.map +1 -1
- package/dist/icons/height.js +6 -6
- package/dist/icons/height.js.map +1 -1
- package/dist/icons/hierarchy.js +6 -6
- package/dist/icons/hierarchy.js.map +1 -1
- package/dist/icons/home-alt.js +6 -6
- package/dist/icons/home-alt.js.map +1 -1
- package/dist/icons/home-check.js +6 -6
- package/dist/icons/home-check.js.map +1 -1
- package/dist/icons/home-door.js +6 -6
- package/dist/icons/home-door.js.map +1 -1
- package/dist/icons/home.js +6 -6
- package/dist/icons/home.js.map +1 -1
- package/dist/icons/import.js +6 -6
- package/dist/icons/import.js.map +1 -1
- package/dist/icons/inbox-alt.js +6 -6
- package/dist/icons/inbox-alt.js.map +1 -1
- package/dist/icons/inbox.js +6 -6
- package/dist/icons/inbox.js.map +1 -1
- package/dist/icons/info-circle.js +6 -6
- package/dist/icons/info-circle.js.map +1 -1
- package/dist/icons/iphone-landscape.js +6 -6
- package/dist/icons/iphone-landscape.js.map +1 -1
- package/dist/icons/iphone-portrait.js +6 -6
- package/dist/icons/iphone-portrait.js.map +1 -1
- package/dist/icons/jump-backward.js +6 -6
- package/dist/icons/jump-backward.js.map +1 -1
- package/dist/icons/jump-forward.js +6 -6
- package/dist/icons/jump-forward.js.map +1 -1
- package/dist/icons/jump-left.js +6 -6
- package/dist/icons/jump-left.js.map +1 -1
- package/dist/icons/jump-right.js +6 -6
- package/dist/icons/jump-right.js.map +1 -1
- package/dist/icons/keyboard.js +6 -6
- package/dist/icons/keyboard.js.map +1 -1
- package/dist/icons/laptop.js +6 -6
- package/dist/icons/laptop.js.map +1 -1
- package/dist/icons/lightbulb-on.js +6 -6
- package/dist/icons/lightbulb-on.js.map +1 -1
- package/dist/icons/lightbulb.js +6 -6
- package/dist/icons/lightbulb.js.map +1 -1
- package/dist/icons/lightning-alt.js +6 -6
- package/dist/icons/lightning-alt.js.map +1 -1
- package/dist/icons/lightning.js +6 -6
- package/dist/icons/lightning.js.map +1 -1
- package/dist/icons/lineweight.js +6 -6
- package/dist/icons/lineweight.js.map +1 -1
- package/dist/icons/link-alt.js +6 -6
- package/dist/icons/link-alt.js.map +1 -1
- package/dist/icons/link-broken.js +6 -6
- package/dist/icons/link-broken.js.map +1 -1
- package/dist/icons/link-horizontal.js +6 -6
- package/dist/icons/link-horizontal.js.map +1 -1
- package/dist/icons/link-vertical.js +6 -6
- package/dist/icons/link-vertical.js.map +1 -1
- package/dist/icons/link.js +6 -6
- package/dist/icons/link.js.map +1 -1
- package/dist/icons/list-add.js +6 -6
- package/dist/icons/list-add.js.map +1 -1
- package/dist/icons/list-numbered.js +6 -6
- package/dist/icons/list-numbered.js.map +1 -1
- package/dist/icons/list.js +6 -6
- package/dist/icons/list.js.map +1 -1
- package/dist/icons/loader.js +6 -6
- package/dist/icons/loader.js.map +1 -1
- package/dist/icons/location.js +6 -6
- package/dist/icons/location.js.map +1 -1
- package/dist/icons/lock-open.js +6 -6
- package/dist/icons/lock-open.js.map +1 -1
- package/dist/icons/lock.js +6 -6
- package/dist/icons/lock.js.map +1 -1
- package/dist/icons/mail-add.js +6 -6
- package/dist/icons/mail-add.js.map +1 -1
- package/dist/icons/mail-delete.js +6 -6
- package/dist/icons/mail-delete.js.map +1 -1
- package/dist/icons/mail-minus.js +6 -6
- package/dist/icons/mail-minus.js.map +1 -1
- package/dist/icons/mail-new.js +6 -6
- package/dist/icons/mail-new.js.map +1 -1
- package/dist/icons/mail-open.js +6 -6
- package/dist/icons/mail-open.js.map +1 -1
- package/dist/icons/mail-remove.js +6 -6
- package/dist/icons/mail-remove.js.map +1 -1
- package/dist/icons/mail.js +6 -6
- package/dist/icons/mail.js.map +1 -1
- package/dist/icons/marquee.js +6 -6
- package/dist/icons/marquee.js.map +1 -1
- package/dist/icons/maximise.js +6 -6
- package/dist/icons/maximise.js.map +1 -1
- package/dist/icons/menu-hamburger.js +6 -6
- package/dist/icons/menu-hamburger.js.map +1 -1
- package/dist/icons/menu-horizontal.js +6 -6
- package/dist/icons/menu-horizontal.js.map +1 -1
- package/dist/icons/menu-vertical.js +6 -6
- package/dist/icons/menu-vertical.js.map +1 -1
- package/dist/icons/message-writing.js +6 -6
- package/dist/icons/message-writing.js.map +1 -1
- package/dist/icons/message.js +6 -6
- package/dist/icons/message.js.map +1 -1
- package/dist/icons/microphone-disabled.js +6 -6
- package/dist/icons/microphone-disabled.js.map +1 -1
- package/dist/icons/microphone-muted.js +6 -6
- package/dist/icons/microphone-muted.js.map +1 -1
- package/dist/icons/microphone.js +6 -6
- package/dist/icons/microphone.js.map +1 -1
- package/dist/icons/midpoint.js +6 -6
- package/dist/icons/midpoint.js.map +1 -1
- package/dist/icons/mini-player.js +6 -6
- package/dist/icons/mini-player.js.map +1 -1
- package/dist/icons/minimise.js +6 -6
- package/dist/icons/minimise.js.map +1 -1
- package/dist/icons/minus-circle.js +6 -6
- package/dist/icons/minus-circle.js.map +1 -1
- package/dist/icons/minus.js +6 -6
- package/dist/icons/minus.js.map +1 -1
- package/dist/icons/moon.js +6 -6
- package/dist/icons/moon.js.map +1 -1
- package/dist/icons/move.js +6 -6
- package/dist/icons/move.js.map +1 -1
- package/dist/icons/newspaper.js +6 -6
- package/dist/icons/newspaper.js.map +1 -1
- package/dist/icons/no-sign.js +6 -6
- package/dist/icons/no-sign.js.map +1 -1
- package/dist/icons/notebook.js +6 -6
- package/dist/icons/notebook.js.map +1 -1
- package/dist/icons/notification.js +6 -6
- package/dist/icons/notification.js.map +1 -1
- package/dist/icons/nut.js +6 -6
- package/dist/icons/nut.js.map +1 -1
- package/dist/icons/pages.js +6 -6
- package/dist/icons/pages.js.map +1 -1
- package/dist/icons/panel-bottom.js +6 -6
- package/dist/icons/panel-bottom.js.map +1 -1
- package/dist/icons/panel-center.js +6 -6
- package/dist/icons/panel-center.js.map +1 -1
- package/dist/icons/panel-left.js +6 -6
- package/dist/icons/panel-left.js.map +1 -1
- package/dist/icons/panel-right.js +6 -6
- package/dist/icons/panel-right.js.map +1 -1
- package/dist/icons/panel-sectioned.js +6 -6
- package/dist/icons/panel-sectioned.js.map +1 -1
- package/dist/icons/panel-top.js +6 -6
- package/dist/icons/panel-top.js.map +1 -1
- package/dist/icons/paper-folded.js +6 -6
- package/dist/icons/paper-folded.js.map +1 -1
- package/dist/icons/paper-plane-alt.js +6 -6
- package/dist/icons/paper-plane-alt.js.map +1 -1
- package/dist/icons/paper-plane.js +6 -6
- package/dist/icons/paper-plane.js.map +1 -1
- package/dist/icons/paper.js +6 -6
- package/dist/icons/paper.js.map +1 -1
- package/dist/icons/paperclip.js +6 -6
- package/dist/icons/paperclip.js.map +1 -1
- package/dist/icons/paragraph-center.js +6 -6
- package/dist/icons/paragraph-center.js.map +1 -1
- package/dist/icons/paragraph-end.js +6 -6
- package/dist/icons/paragraph-end.js.map +1 -1
- package/dist/icons/paragraph-left.js +6 -6
- package/dist/icons/paragraph-left.js.map +1 -1
- package/dist/icons/paragraph-right.js +6 -6
- package/dist/icons/paragraph-right.js.map +1 -1
- package/dist/icons/paragraph-start.js +6 -6
- package/dist/icons/paragraph-start.js.map +1 -1
- package/dist/icons/pen.js +6 -6
- package/dist/icons/pen.js.map +1 -1
- package/dist/icons/phone-landscape.js +6 -6
- package/dist/icons/phone-landscape.js.map +1 -1
- package/dist/icons/phone-portrait.js +6 -6
- package/dist/icons/phone-portrait.js.map +1 -1
- package/dist/icons/picture.js +6 -6
- package/dist/icons/picture.js.map +1 -1
- package/dist/icons/pie-half.js +6 -6
- package/dist/icons/pie-half.js.map +1 -1
- package/dist/icons/pie-quarter.js +6 -6
- package/dist/icons/pie-quarter.js.map +1 -1
- package/dist/icons/pie-third.js +6 -6
- package/dist/icons/pie-third.js.map +1 -1
- package/dist/icons/pill.js +6 -6
- package/dist/icons/pill.js.map +1 -1
- package/dist/icons/play-button.js +6 -6
- package/dist/icons/play-button.js.map +1 -1
- package/dist/icons/plus-circle.js +6 -6
- package/dist/icons/plus-circle.js.map +1 -1
- package/dist/icons/plus.js +6 -6
- package/dist/icons/plus.js.map +1 -1
- package/dist/icons/postcard.js +6 -6
- package/dist/icons/postcard.js.map +1 -1
- package/dist/icons/printer.js +6 -6
- package/dist/icons/printer.js.map +1 -1
- package/dist/icons/projector.js +6 -6
- package/dist/icons/projector.js.map +1 -1
- package/dist/icons/pull-down.js +6 -6
- package/dist/icons/pull-down.js.map +1 -1
- package/dist/icons/pull-left.js +6 -6
- package/dist/icons/pull-left.js.map +1 -1
- package/dist/icons/pull-right.js +6 -6
- package/dist/icons/pull-right.js.map +1 -1
- package/dist/icons/pull-up.js +6 -6
- package/dist/icons/pull-up.js.map +1 -1
- package/dist/icons/push-down.js +6 -6
- package/dist/icons/push-down.js.map +1 -1
- package/dist/icons/push-left.js +6 -6
- package/dist/icons/push-left.js.map +1 -1
- package/dist/icons/push-right.js +6 -6
- package/dist/icons/push-right.js.map +1 -1
- package/dist/icons/push-up.js +6 -6
- package/dist/icons/push-up.js.map +1 -1
- package/dist/icons/question-circle.js +6 -6
- package/dist/icons/question-circle.js.map +1 -1
- package/dist/icons/radio-on.js +6 -6
- package/dist/icons/radio-on.js.map +1 -1
- package/dist/icons/receipt.js +6 -6
- package/dist/icons/receipt.js.map +1 -1
- package/dist/icons/record.js +6 -6
- package/dist/icons/record.js.map +1 -1
- package/dist/icons/redo.js +6 -6
- package/dist/icons/redo.js.map +1 -1
- package/dist/icons/refresh-alt.js +6 -6
- package/dist/icons/refresh-alt.js.map +1 -1
- package/dist/icons/refresh.js +6 -6
- package/dist/icons/refresh.js.map +1 -1
- package/dist/icons/replicate-alt.js +6 -6
- package/dist/icons/replicate-alt.js.map +1 -1
- package/dist/icons/replicate.js +6 -6
- package/dist/icons/replicate.js.map +1 -1
- package/dist/icons/reset-alt.js +6 -6
- package/dist/icons/reset-alt.js.map +1 -1
- package/dist/icons/reset-forward.js +6 -6
- package/dist/icons/reset-forward.js.map +1 -1
- package/dist/icons/reset-hard.js +6 -6
- package/dist/icons/reset-hard.js.map +1 -1
- package/dist/icons/reset-temporary.js +6 -6
- package/dist/icons/reset-temporary.js.map +1 -1
- package/dist/icons/reset.js +6 -6
- package/dist/icons/reset.js.map +1 -1
- package/dist/icons/resolver.js +439 -438
- package/dist/icons/resolver.js.map +1 -1
- package/dist/icons/retweet.js +6 -6
- package/dist/icons/retweet.js.map +1 -1
- package/dist/icons/reuse.js +6 -6
- package/dist/icons/reuse.js.map +1 -1
- package/dist/icons/reverse-alt.js +6 -6
- package/dist/icons/reverse-alt.js.map +1 -1
- package/dist/icons/reverse.js +6 -6
- package/dist/icons/reverse.js.map +1 -1
- package/dist/icons/revert.js +6 -6
- package/dist/icons/revert.js.map +1 -1
- package/dist/icons/rocket.js +6 -6
- package/dist/icons/rocket.js.map +1 -1
- package/dist/icons/ruler.js +6 -6
- package/dist/icons/ruler.js.map +1 -1
- package/dist/icons/scale-contract.js +6 -6
- package/dist/icons/scale-contract.js.map +1 -1
- package/dist/icons/scale-extend.js +6 -6
- package/dist/icons/scale-extend.js.map +1 -1
- package/dist/icons/scale.js +6 -6
- package/dist/icons/scale.js.map +1 -1
- package/dist/icons/scalpel.js +6 -6
- package/dist/icons/scalpel.js.map +1 -1
- package/dist/icons/search.js +6 -6
- package/dist/icons/search.js.map +1 -1
- package/dist/icons/server.js +6 -6
- package/dist/icons/server.js.map +1 -1
- package/dist/icons/settings.js +6 -6
- package/dist/icons/settings.js.map +1 -1
- package/dist/icons/share-alt.js +6 -6
- package/dist/icons/share-alt.js.map +1 -1
- package/dist/icons/share.js +6 -6
- package/dist/icons/share.js.map +1 -1
- package/dist/icons/shuffle.js +6 -6
- package/dist/icons/shuffle.js.map +1 -1
- package/dist/icons/side-menu.js +6 -6
- package/dist/icons/side-menu.js.map +1 -1
- package/dist/icons/signal-full.js +6 -6
- package/dist/icons/signal-full.js.map +1 -1
- package/dist/icons/signal-low.js +6 -6
- package/dist/icons/signal-low.js.map +1 -1
- package/dist/icons/signal-medium.js +6 -6
- package/dist/icons/signal-medium.js.map +1 -1
- package/dist/icons/signal-none.js +6 -6
- package/dist/icons/signal-none.js.map +1 -1
- package/dist/icons/slash-backward.js +6 -6
- package/dist/icons/slash-backward.js.map +1 -1
- package/dist/icons/slash-forward.js +6 -6
- package/dist/icons/slash-forward.js.map +1 -1
- package/dist/icons/sliders.js +6 -6
- package/dist/icons/sliders.js.map +1 -1
- package/dist/icons/sort-alt.js +6 -6
- package/dist/icons/sort-alt.js.map +1 -1
- package/dist/icons/sort.js +6 -6
- package/dist/icons/sort.js.map +1 -1
- package/dist/icons/speaker.js +6 -6
- package/dist/icons/speaker.js.map +1 -1
- package/dist/icons/speech-bubble.js +6 -6
- package/dist/icons/speech-bubble.js.map +1 -1
- package/dist/icons/speech-typing.js +6 -6
- package/dist/icons/speech-typing.js.map +1 -1
- package/dist/icons/split-three.js +6 -6
- package/dist/icons/split-three.js.map +1 -1
- package/dist/icons/split.js +6 -6
- package/dist/icons/split.js.map +1 -1
- package/dist/icons/star.js +6 -6
- package/dist/icons/star.js.map +1 -1
- package/dist/icons/sun.js +6 -6
- package/dist/icons/sun.js.map +1 -1
- package/dist/icons/support.js +6 -6
- package/dist/icons/support.js.map +1 -1
- package/dist/icons/swap.js +6 -6
- package/dist/icons/swap.js.map +1 -1
- package/dist/icons/switch.js +6 -6
- package/dist/icons/switch.js.map +1 -1
- package/dist/icons/table-header.js +6 -6
- package/dist/icons/table-header.js.map +1 -1
- package/dist/icons/table.js +6 -6
- package/dist/icons/table.js.map +1 -1
- package/dist/icons/tag-milestone.js +6 -6
- package/dist/icons/tag-milestone.js.map +1 -1
- package/dist/icons/tag.js +6 -6
- package/dist/icons/tag.js.map +1 -1
- package/dist/icons/tags.js +6 -6
- package/dist/icons/tags.js.map +1 -1
- package/dist/icons/target.js +6 -6
- package/dist/icons/target.js.map +1 -1
- package/dist/icons/terminal.js +6 -6
- package/dist/icons/terminal.js.map +1 -1
- package/dist/icons/thread.js +6 -6
- package/dist/icons/thread.js.map +1 -1
- package/dist/icons/thumbs-down.js +6 -6
- package/dist/icons/thumbs-down.js.map +1 -1
- package/dist/icons/thumbs-up.js +6 -6
- package/dist/icons/thumbs-up.js.map +1 -1
- package/dist/icons/ticket.js +6 -6
- package/dist/icons/ticket.js.map +1 -1
- package/dist/icons/timeline.js +6 -6
- package/dist/icons/timeline.js.map +1 -1
- package/dist/icons/todo.js +6 -6
- package/dist/icons/todo.js.map +1 -1
- package/dist/icons/toggle.js +6 -6
- package/dist/icons/toggle.js.map +1 -1
- package/dist/icons/toggles.js +6 -6
- package/dist/icons/toggles.js.map +1 -1
- package/dist/icons/translate.js +6 -6
- package/dist/icons/translate.js.map +1 -1
- package/dist/icons/trash-alt.js +6 -6
- package/dist/icons/trash-alt.js.map +1 -1
- package/dist/icons/trash.js +6 -6
- package/dist/icons/trash.js.map +1 -1
- package/dist/icons/trophy.js +6 -6
- package/dist/icons/trophy.js.map +1 -1
- package/dist/icons/tv-mode.js +6 -6
- package/dist/icons/tv-mode.js.map +1 -1
- package/dist/icons/unarchive.js +6 -6
- package/dist/icons/unarchive.js.map +1 -1
- package/dist/icons/undo-history.js +6 -6
- package/dist/icons/undo-history.js.map +1 -1
- package/dist/icons/undo.js +6 -6
- package/dist/icons/undo.js.map +1 -1
- package/dist/icons/unlink-horizontal.js +6 -6
- package/dist/icons/unlink-horizontal.js.map +1 -1
- package/dist/icons/unlink-vertical.js +6 -6
- package/dist/icons/unlink-vertical.js.map +1 -1
- package/dist/icons/upload-alt.js +6 -6
- package/dist/icons/upload-alt.js.map +1 -1
- package/dist/icons/upload.js +6 -6
- package/dist/icons/upload.js.map +1 -1
- package/dist/icons/upward.js +6 -6
- package/dist/icons/upward.js.map +1 -1
- package/dist/icons/user-add.js +6 -6
- package/dist/icons/user-add.js.map +1 -1
- package/dist/icons/user-circle.js +6 -6
- package/dist/icons/user-circle.js.map +1 -1
- package/dist/icons/user-male-circle.js +6 -6
- package/dist/icons/user-male-circle.js.map +1 -1
- package/dist/icons/user-male.js +6 -6
- package/dist/icons/user-male.js.map +1 -1
- package/dist/icons/user-remove.js +6 -6
- package/dist/icons/user-remove.js.map +1 -1
- package/dist/icons/user.js +6 -6
- package/dist/icons/user.js.map +1 -1
- package/dist/icons/users.js +6 -6
- package/dist/icons/users.js.map +1 -1
- package/dist/icons/venn.js +6 -6
- package/dist/icons/venn.js.map +1 -1
- package/dist/icons/version.js +6 -6
- package/dist/icons/version.js.map +1 -1
- package/dist/icons/versions.js +6 -6
- package/dist/icons/versions.js.map +1 -1
- package/dist/icons/video.js +6 -6
- package/dist/icons/video.js.map +1 -1
- package/dist/icons/volume-0.js +6 -6
- package/dist/icons/volume-0.js.map +1 -1
- package/dist/icons/volume-add.js +6 -6
- package/dist/icons/volume-add.js.map +1 -1
- package/dist/icons/volume-disabled.js +6 -6
- package/dist/icons/volume-disabled.js.map +1 -1
- package/dist/icons/volume-high.js +6 -6
- package/dist/icons/volume-high.js.map +1 -1
- package/dist/icons/volume-low.js +6 -6
- package/dist/icons/volume-low.js.map +1 -1
- package/dist/icons/volume-minus.js +6 -6
- package/dist/icons/volume-minus.js.map +1 -1
- package/dist/icons/volume-muted.js +6 -6
- package/dist/icons/volume-muted.js.map +1 -1
- package/dist/icons/wallet.js +6 -6
- package/dist/icons/wallet.js.map +1 -1
- package/dist/icons/warning-circle.js +6 -6
- package/dist/icons/warning-circle.js.map +1 -1
- package/dist/icons/warning-hex.js +6 -6
- package/dist/icons/warning-hex.js.map +1 -1
- package/dist/icons/warning-triangle.js +6 -6
- package/dist/icons/warning-triangle.js.map +1 -1
- package/dist/icons/waves.js +6 -6
- package/dist/icons/waves.js.map +1 -1
- package/dist/icons/width.js +6 -6
- package/dist/icons/width.js.map +1 -1
- package/dist/icons/wifi-error.js +6 -6
- package/dist/icons/wifi-error.js.map +1 -1
- package/dist/icons/wifi-none.js +6 -6
- package/dist/icons/wifi-none.js.map +1 -1
- package/dist/icons/wifi.js +6 -6
- package/dist/icons/wifi.js.map +1 -1
- package/dist/icons/window-collapse-left.js +6 -6
- package/dist/icons/window-collapse-left.js.map +1 -1
- package/dist/icons/window-collapse-right.js +6 -6
- package/dist/icons/window-collapse-right.js.map +1 -1
- package/dist/icons/window-content.js +6 -6
- package/dist/icons/window-content.js.map +1 -1
- package/dist/icons/window.js +6 -6
- package/dist/icons/window.js.map +1 -1
- package/dist/icons/wrap-back.js +6 -6
- package/dist/icons/wrap-back.js.map +1 -1
- package/dist/icons/wrap-forward.js +6 -6
- package/dist/icons/wrap-forward.js.map +1 -1
- package/dist/icons/write.js +6 -6
- package/dist/icons/write.js.map +1 -1
- package/dist/icons/zoom-cancel.js +6 -6
- package/dist/icons/zoom-cancel.js.map +1 -1
- package/dist/icons/zoom-in.js +6 -6
- package/dist/icons/zoom-in.js.map +1 -1
- package/dist/icons/zoom-out.js +6 -6
- package/dist/icons/zoom-out.js.map +1 -1
- package/dist/icons/zoom-reset.js +6 -6
- package/dist/icons/zoom-reset.js.map +1 -1
- package/dist/index.css +2 -1
- package/dist/index.js +56 -99
- package/dist/shared/accordion-DdjSWHBH.js +359 -0
- package/dist/shared/accordion-DdjSWHBH.js.map +1 -0
- package/dist/shared/alert-CZE6Ht5G.js +234 -0
- package/dist/shared/alert-CZE6Ht5G.js.map +1 -0
- package/dist/shared/avatar-DMc878aU.js +232 -0
- package/dist/shared/avatar-DMc878aU.js.map +1 -0
- package/dist/shared/badge-Bc661ppN.js +142 -0
- package/dist/shared/badge-Bc661ppN.js.map +1 -0
- package/dist/shared/boolean-converter-saxBDLhA.js +13 -0
- package/dist/shared/boolean-converter-saxBDLhA.js.map +1 -0
- package/dist/shared/breadcrumb-BUUBrakn.js +459 -0
- package/dist/shared/breadcrumb-BUUBrakn.js.map +1 -0
- package/dist/shared/button-BBmxCyz-.js +186 -0
- package/dist/shared/button-BBmxCyz-.js.map +1 -0
- package/dist/shared/card-Cm0X0KrG.js +216 -0
- package/dist/shared/card-Cm0X0KrG.js.map +1 -0
- package/dist/shared/checkbox-DVNGkHj-.js +322 -0
- package/dist/shared/checkbox-DVNGkHj-.js.map +1 -0
- package/dist/shared/code-block-9yvHd_mF.js +542 -0
- package/dist/shared/code-block-9yvHd_mF.js.map +1 -0
- package/dist/shared/color-picker-C3-0c3_0.js +1423 -0
- package/dist/shared/color-picker-C3-0c3_0.js.map +1 -0
- package/dist/shared/combobox-fcD23BVq.js +557 -0
- package/dist/shared/combobox-fcD23BVq.js.map +1 -0
- package/dist/shared/container-g5tWN0VG.js +85 -0
- package/dist/shared/container-g5tWN0VG.js.map +1 -0
- package/dist/shared/date-picker-CBtZk2uN.js +719 -0
- package/dist/shared/date-picker-CBtZk2uN.js.map +1 -0
- package/dist/shared/debounce-BOon6N4f.js +23 -0
- package/dist/shared/debounce-BOon6N4f.js.map +1 -0
- package/dist/shared/decorate-BJVyhdRd.js +9 -0
- package/dist/shared/divider-Cs0fV9wg.js +205 -0
- package/dist/shared/divider-Cs0fV9wg.js.map +1 -0
- package/dist/shared/drawer-B_BgT3xH.js +533 -0
- package/dist/shared/drawer-B_BgT3xH.js.map +1 -0
- package/dist/shared/dropdown-DXT3zeCU.js +316 -0
- package/dist/shared/dropdown-DXT3zeCU.js.map +1 -0
- package/dist/shared/field-message-CPXPLd6z.js +46 -0
- package/dist/shared/field-message-CPXPLd6z.js.map +1 -0
- package/dist/shared/fieldset-BPRt4nC5.js +155 -0
- package/dist/shared/fieldset-BPRt4nC5.js.map +1 -0
- package/dist/shared/file-upload-Cn6JAJ2C.js +608 -0
- package/dist/shared/file-upload-Cn6JAJ2C.js.map +1 -0
- package/dist/shared/form-control-CBEBNz12.js +120 -0
- package/dist/shared/form-control-CBEBNz12.js.map +1 -0
- package/dist/shared/grid-BDSEzri7.js +88 -0
- package/dist/shared/grid-BDSEzri7.js.map +1 -0
- package/dist/shared/heading-9DjHVERY.js +150 -0
- package/dist/shared/heading-9DjHVERY.js.map +1 -0
- package/dist/shared/icon-SU3ebQcn.js +176 -0
- package/dist/shared/icon-SU3ebQcn.js.map +1 -0
- package/dist/shared/icon-button-BQJ44FGd.js +230 -0
- package/dist/shared/icon-button-BQJ44FGd.js.map +1 -0
- package/dist/shared/input-nV6RvTZq.js +329 -0
- package/dist/shared/input-nV6RvTZq.js.map +1 -0
- package/dist/shared/link-BlDSXjMo.js +174 -0
- package/dist/shared/link-BlDSXjMo.js.map +1 -0
- package/dist/shared/memoize-CpXRWhgJ.js +14 -0
- package/dist/shared/memoize-CpXRWhgJ.js.map +1 -0
- package/dist/shared/menu-Cr_E847O.js +291 -0
- package/dist/shared/menu-Cr_E847O.js.map +1 -0
- package/dist/shared/modal-BxL4EDMm.js +299 -0
- package/dist/shared/modal-BxL4EDMm.js.map +1 -0
- package/dist/shared/multi-select-BuU5RFrR.js +631 -0
- package/dist/shared/multi-select-BuU5RFrR.js.map +1 -0
- package/dist/shared/notification--jDZt64l.js +385 -0
- package/dist/shared/notification--jDZt64l.js.map +1 -0
- package/dist/shared/notification-stack-iVG35x2L.js +127 -0
- package/dist/shared/notification-stack-iVG35x2L.js.map +1 -0
- package/dist/shared/number-input-CnHIbGjG.js +474 -0
- package/dist/shared/number-input-CnHIbGjG.js.map +1 -0
- package/dist/shared/pagination-sPm2C9Gl.js +295 -0
- package/dist/shared/pagination-sPm2C9Gl.js.map +1 -0
- package/dist/shared/popover-BBmiWhfm.js +560 -0
- package/dist/shared/popover-BBmiWhfm.js.map +1 -0
- package/dist/shared/progress-BPsiJ-Bl.js +198 -0
- package/dist/shared/progress-BPsiJ-Bl.js.map +1 -0
- package/dist/shared/radio-DnuSzORk.js +306 -0
- package/dist/shared/radio-DnuSzORk.js.map +1 -0
- package/dist/shared/radio-group-Cey9Yz5s.js +163 -0
- package/dist/shared/radio-group-Cey9Yz5s.js.map +1 -0
- package/dist/shared/select-Dz52figi.js +465 -0
- package/dist/shared/select-Dz52figi.js.map +1 -0
- package/dist/shared/skeleton-BY6tANXI.js +206 -0
- package/dist/shared/skeleton-BY6tANXI.js.map +1 -0
- package/dist/shared/slider-6Q8ChlAS.js +425 -0
- package/dist/shared/slider-6Q8ChlAS.js.map +1 -0
- package/dist/shared/spinner-Bg4fErQA.js +129 -0
- package/dist/shared/spinner-Bg4fErQA.js.map +1 -0
- package/dist/shared/stack-BZslXtDg.js +113 -0
- package/dist/shared/stack-BZslXtDg.js.map +1 -0
- package/dist/shared/stepper-B42LunTc.js +713 -0
- package/dist/shared/stepper-B42LunTc.js.map +1 -0
- package/dist/shared/switch-Df-8K3aW.js +348 -0
- package/dist/shared/switch-Df-8K3aW.js.map +1 -0
- package/dist/shared/table-D2qrSuqf.js +575 -0
- package/dist/shared/table-D2qrSuqf.js.map +1 -0
- package/dist/shared/tabs-CDf79ZXn.js +523 -0
- package/dist/shared/tabs-CDf79ZXn.js.map +1 -0
- package/dist/shared/tag-CHVTSqVW.js +292 -0
- package/dist/shared/tag-CHVTSqVW.js.map +1 -0
- package/dist/shared/text-DpWMArti.js +272 -0
- package/dist/shared/text-DpWMArti.js.map +1 -0
- package/dist/shared/textarea-Cba7xnZw.js +346 -0
- package/dist/shared/textarea-Cba7xnZw.js.map +1 -0
- package/dist/shared/time-picker-B_KTAdhx.js +423 -0
- package/dist/shared/time-picker-B_KTAdhx.js.map +1 -0
- package/dist/shared/tooltip-DUXEHFzC.js +212 -0
- package/dist/shared/tooltip-DUXEHFzC.js.map +1 -0
- package/dist/shared/tree-Dm3oQey1.js +450 -0
- package/dist/shared/tree-Dm3oQey1.js.map +1 -0
- package/dist/utilities/field-message.d.ts +42 -0
- package/dist/utilities/field-message.d.ts.map +1 -0
- package/dist/utilities/form-control.d.ts +87 -0
- package/dist/utilities/form-control.d.ts.map +1 -0
- package/dist/utilities/index.d.ts +2 -0
- package/dist/utilities/index.d.ts.map +1 -1
- package/package.json +35 -29
- package/dist/components/accordion.js.map +0 -1
- package/dist/components/alert.js.map +0 -1
- package/dist/components/avatar.js.map +0 -1
- package/dist/components/badge.js.map +0 -1
- package/dist/components/breadcrumb.js.map +0 -1
- package/dist/components/button.js.map +0 -1
- package/dist/components/card.js.map +0 -1
- package/dist/components/checkbox.js.map +0 -1
- package/dist/components/code-block.js.map +0 -1
- package/dist/components/color-picker.js.map +0 -1
- package/dist/components/combobox.js.map +0 -1
- package/dist/components/date-picker.js.map +0 -1
- package/dist/components/divider.js.map +0 -1
- package/dist/components/drawer.js.map +0 -1
- package/dist/components/dropdown.js.map +0 -1
- package/dist/components/file-upload.js.map +0 -1
- package/dist/components/heading.js.map +0 -1
- package/dist/components/icon.js.map +0 -1
- package/dist/components/input.js.map +0 -1
- package/dist/components/link.js.map +0 -1
- package/dist/components/menu.js.map +0 -1
- package/dist/components/modal.js.map +0 -1
- package/dist/components/multi-select.js.map +0 -1
- package/dist/components/notification.js.map +0 -1
- package/dist/components/number-input.js.map +0 -1
- package/dist/components/pagination.js.map +0 -1
- package/dist/components/popover.js.map +0 -1
- package/dist/components/progress.js.map +0 -1
- package/dist/components/radio.js.map +0 -1
- package/dist/components/select.js.map +0 -1
- package/dist/components/skeleton.js.map +0 -1
- package/dist/components/slider.js.map +0 -1
- package/dist/components/spinner.js.map +0 -1
- package/dist/components/stepper.js.map +0 -1
- package/dist/components/switch.js.map +0 -1
- package/dist/components/table.js.map +0 -1
- package/dist/components/tabs.js.map +0 -1
- package/dist/components/tag.js.map +0 -1
- package/dist/components/text.js.map +0 -1
- package/dist/components/textarea.js.map +0 -1
- package/dist/components/time-picker.js.map +0 -1
- package/dist/components/tooltip.js.map +0 -1
- package/dist/components/tree.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/shared/boolean-converter-XDGfS9LC.js +0 -12
- package/dist/shared/boolean-converter-XDGfS9LC.js.map +0 -1
- package/dist/shared/debounce-BckY30Sf.js +0 -23
- package/dist/shared/debounce-BckY30Sf.js.map +0 -1
- package/dist/shared/memoize-DlOFy-92.js +0 -16
- package/dist/shared/memoize-DlOFy-92.js.map +0 -1
- package/dist/shared/slider-BNt5TITl.js +0 -484
- package/dist/shared/slider-BNt5TITl.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"color-picker.js","sources":["../../source/components/color-picker/color-picker.style.ts","../../source/components/color-picker/color-picker.utils.ts","../../source/components/color-picker/color-picker.ts"],"sourcesContent":["import { css } from 'lit';\n\n/**\n * Color Picker Styles\n *\n * INTENTIONAL HARDCODED VALUES (functional, not themed):\n * - Checkerboard pattern (#ccc) - standard transparency visualization\n * - Hue gradient (hsl spectrum) - must be actual hue colors\n * - White (#fff) handles - must contrast on any color background\n * - Black (#000) gradient - value gradient for color area\n * - Component dimensions (280px, 160px) - not semantic spacing\n *\n * All other values use design tokens.\n */\nexport const colorPickerStyles = css`\n /* ─────────────────────────────────────────────────────────────────────────────\n * Base Styles\n * ───────────────────────────────────────────────────────────────────────────── */\n\n :host {\n /* Component-specific custom properties */\n /* stylelint-disable blueprint/no-hardcoded-values */\n --color-picker-width: 350px;\n --color-picker-area-height: 160px;\n --color-picker-swatch-size: var(--bp-spacing-lg);\n --color-picker-handle-size: var(--bp-spacing-md);\n /* stylelint-enable blueprint/no-hardcoded-values */\n\n display: inline-block;\n position: relative;\n font-family: var(--bp-font-family);\n }\n\n :host([disabled]) {\n opacity: var(--bp-opacity-disabled);\n pointer-events: none;\n }\n\n .color-picker {\n position: relative;\n }\n\n /* Screen reader only text */\n .sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n }\n\n /* ─────────────────────────────────────────────────────────────────────────────\n * Trigger Button\n * ───────────────────────────────────────────────────────────────────────────── */\n\n .trigger {\n display: inline-flex;\n align-items: center;\n gap: var(--bp-spacing-sm);\n padding: var(--bp-spacing-sm) var(--bp-spacing-md);\n background-color: var(--bp-color-surface);\n border: var(--bp-border-width) solid var(--bp-color-border);\n border-radius: var(--bp-border-radius-md);\n cursor: pointer;\n font-family: inherit;\n font-size: var(--bp-font-size-base);\n color: var(--bp-color-text);\n transition:\n border-color var(--bp-transition-fast),\n box-shadow var(--bp-transition-fast);\n }\n\n .trigger:hover:not(:disabled) {\n border-color: var(--bp-color-border-strong);\n }\n\n .trigger:focus-visible {\n outline: var(--bp-focus-width) var(--bp-focus-style) var(--bp-color-focus);\n outline-offset: var(--bp-focus-offset);\n }\n\n .trigger:disabled {\n cursor: not-allowed;\n }\n\n .trigger-swatch {\n display: block;\n width: var(--color-picker-swatch-size);\n height: var(--color-picker-swatch-size);\n border-radius: var(--bp-border-radius-sm);\n border: var(--bp-border-width) solid var(--bp-color-border);\n /* Checkerboard pattern for transparency - functional, not themed */\n /* stylelint-disable blueprint/no-hardcoded-values */\n background-image:\n linear-gradient(45deg, #ccc 25%, transparent 25%),\n linear-gradient(-45deg, #ccc 25%, transparent 25%),\n linear-gradient(45deg, transparent 75%, #ccc 75%),\n linear-gradient(-45deg, transparent 75%, #ccc 75%);\n background-size: var(--bp-spacing-sm) var(--bp-spacing-sm);\n background-position:\n 0 0,\n 0 calc(var(--bp-spacing-sm) / 2),\n calc(var(--bp-spacing-sm) / 2) calc(var(--bp-spacing-sm) / -2),\n calc(var(--bp-spacing-sm) / -2) 0;\n /* stylelint-enable blueprint/no-hardcoded-values */\n position: relative;\n }\n\n .trigger-swatch::after {\n content: '';\n position: absolute;\n inset: 0;\n background: inherit;\n border-radius: inherit;\n }\n\n .trigger-label {\n color: var(--bp-color-text);\n }\n\n /* ─────────────────────────────────────────────────────────────────────────────\n * Picker Panel\n * ───────────────────────────────────────────────────────────────────────────── */\n\n .picker {\n position: absolute;\n top: 100%;\n left: 0;\n margin-top: var(--bp-spacing-xs);\n width: var(--color-picker-width);\n background-color: var(--bp-color-surface-elevated);\n border: var(--bp-border-width) solid var(--bp-color-border);\n border-radius: var(--bp-border-radius-lg);\n box-shadow: var(--bp-shadow-lg);\n z-index: var(--bp-z-popover);\n animation: fadeIn var(--bp-transition-fast) ease-out;\n }\n\n @keyframes fadeIn {\n from {\n opacity: 0;\n transform: translateY(calc(var(--bp-spacing-xs) * -1));\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n }\n\n :host([inline]) .picker {\n position: static;\n margin-top: 0;\n box-shadow: none;\n }\n\n .picker-body {\n padding: var(--bp-spacing-md);\n display: flex;\n flex-direction: column;\n gap: var(--bp-spacing-md);\n }\n\n .picker-main {\n display: flex;\n gap: var(--bp-spacing-sm);\n }\n\n /* ─────────────────────────────────────────────────────────────────────────────\n * Color Area (Saturation/Value)\n * ───────────────────────────────────────────────────────────────────────────── */\n\n .color-area {\n flex: 1;\n height: var(--color-picker-area-height);\n position: relative;\n border-radius: var(--bp-border-radius-sm);\n background: var(--hue-color);\n cursor: crosshair;\n touch-action: none;\n user-select: none;\n }\n\n /* White-to-transparent and transparent-to-black gradients - functional for color picking */\n /* stylelint-disable blueprint/no-hardcoded-values */\n .color-area::before {\n content: '';\n position: absolute;\n inset: 0;\n background: linear-gradient(to right, #fff, transparent);\n border-radius: inherit;\n }\n\n .color-area::after {\n content: '';\n position: absolute;\n inset: 0;\n background: linear-gradient(to bottom, transparent, #000);\n border-radius: inherit;\n }\n /* stylelint-enable blueprint/no-hardcoded-values */\n\n .color-area:focus-visible {\n outline: var(--bp-focus-width) var(--bp-focus-style) var(--bp-color-focus);\n outline-offset: var(--bp-focus-offset);\n }\n\n /* Slider handles use white borders for visibility on any color */\n /* stylelint-disable blueprint/no-hardcoded-values -- white border for contrast on any hue */\n .color-area-handle {\n position: absolute;\n width: var(--color-picker-handle-size);\n height: var(--color-picker-handle-size);\n border: var(--bp-border-width) solid #fff;\n border-radius: 50%;\n box-shadow: var(--bp-shadow-sm);\n transform: translate(-50%, -50%);\n z-index: 1;\n pointer-events: none;\n }\n\n /* Expand touch target to 44×44px minimum (WCAG 2.2) */\n .color-area-handle::after {\n content: '';\n position: absolute;\n /* 44px touch target with 12px visual handle = 16px padding each side */\n inset: calc(var(--bp-spacing-lg) * -1);\n }\n /* stylelint-enable blueprint/no-hardcoded-values */\n\n /* ─────────────────────────────────────────────────────────────────────────────\n * Hue Slider\n * ───────────────────────────────────────────────────────────────────────────── */\n\n .hue-slider {\n width: var(--bp-spacing-lg);\n height: var(--color-picker-area-height);\n position: relative;\n border-radius: var(--bp-border-radius-sm);\n /* Full hue spectrum gradient - functional, not themed */\n /* stylelint-disable blueprint/no-hardcoded-values */\n background: linear-gradient(\n to bottom,\n hsl(0, 100%, 50%),\n hsl(60, 100%, 50%),\n hsl(120, 100%, 50%),\n hsl(180, 100%, 50%),\n hsl(240, 100%, 50%),\n hsl(300, 100%, 50%),\n hsl(360, 100%, 50%)\n );\n /* stylelint-enable blueprint/no-hardcoded-values */\n cursor: pointer;\n touch-action: none;\n user-select: none;\n }\n\n .hue-slider:focus-visible {\n outline: var(--bp-focus-width) var(--bp-focus-style) var(--bp-color-focus);\n outline-offset: var(--bp-focus-offset);\n }\n\n /* stylelint-disable blueprint/no-hardcoded-values -- white border for contrast on hue spectrum */\n .hue-slider-handle {\n position: absolute;\n left: calc(var(--bp-spacing-xs) * -0.5);\n right: calc(var(--bp-spacing-xs) * -0.5);\n height: var(--bp-spacing-sm);\n border: var(--bp-border-width) solid #fff;\n border-radius: var(--bp-border-radius-sm);\n box-shadow: var(--bp-shadow-sm);\n transform: translateY(-50%);\n pointer-events: none;\n }\n\n /* Expand touch target to 44×44px minimum (WCAG 2.2) */\n .hue-slider-handle::after {\n content: '';\n position: absolute;\n /* 44px touch target with 8px visual handle = 18px padding top/bottom */\n top: calc(var(--bp-spacing-lg) * -2.25);\n bottom: calc(var(--bp-spacing-lg) * -2.25);\n left: 0;\n right: 0;\n }\n /* stylelint-enable blueprint/no-hardcoded-values */\n\n /* ─────────────────────────────────────────────────────────────────────────────\n * Alpha Slider\n * ───────────────────────────────────────────────────────────────────────────── */\n\n .alpha-slider {\n height: var(--bp-spacing-md);\n position: relative;\n border-radius: var(--bp-border-radius-sm);\n /* Checkerboard pattern for transparency - functional, not themed */\n /* stylelint-disable blueprint/no-hardcoded-values */\n background-image:\n linear-gradient(45deg, #ccc 25%, transparent 25%),\n linear-gradient(-45deg, #ccc 25%, transparent 25%),\n linear-gradient(45deg, transparent 75%, #ccc 75%),\n linear-gradient(-45deg, transparent 75%, #ccc 75%);\n background-size: var(--bp-spacing-sm) var(--bp-spacing-sm);\n background-position:\n 0 0,\n 0 calc(var(--bp-spacing-sm) / 2),\n calc(var(--bp-spacing-sm) / 2) calc(var(--bp-spacing-sm) / -2),\n calc(var(--bp-spacing-sm) / -2) 0;\n /* stylelint-enable blueprint/no-hardcoded-values */\n cursor: pointer;\n touch-action: none;\n user-select: none;\n }\n\n .alpha-slider::before {\n content: '';\n position: absolute;\n inset: 0;\n background: var(--alpha-gradient);\n border-radius: inherit;\n }\n\n .alpha-slider:focus-visible {\n outline: var(--bp-focus-width) var(--bp-focus-style) var(--bp-color-focus);\n outline-offset: var(--bp-focus-offset);\n }\n\n /* stylelint-disable blueprint/no-hardcoded-values -- white border for contrast on alpha gradient */\n .alpha-slider-handle {\n position: absolute;\n top: calc(var(--bp-spacing-xs) * -0.5);\n bottom: calc(var(--bp-spacing-xs) * -0.5);\n width: var(--bp-spacing-sm);\n border: var(--bp-border-width) solid #fff;\n border-radius: var(--bp-border-radius-sm);\n box-shadow: var(--bp-shadow-sm);\n transform: translateX(-50%);\n pointer-events: none;\n }\n\n /* Expand touch target to 44×44px minimum (WCAG 2.2) */\n .alpha-slider-handle::after {\n content: '';\n position: absolute;\n /* 44px touch target with 8px visual handle = 18px padding left/right */\n left: calc(var(--bp-spacing-lg) * -2.25);\n right: calc(var(--bp-spacing-lg) * -2.25);\n top: 0;\n bottom: 0;\n }\n /* stylelint-enable blueprint/no-hardcoded-values */\n\n /* ─────────────────────────────────────────────────────────────────────────────\n * Controls Row\n * ───────────────────────────────────────────────────────────────────────────── */\n\n .picker-controls {\n display: flex;\n align-items: flex-start;\n gap: var(--bp-spacing-sm);\n }\n\n /* ─────────────────────────────────────────────────────────────────────────────\n * Preview\n * ───────────────────────────────────────────────────────────────────────────── */\n\n .preview {\n display: flex;\n flex-direction: column;\n width: var(--bp-spacing-2xl);\n height: var(--bp-spacing-2xl);\n border-radius: var(--bp-border-radius-sm);\n overflow: hidden;\n border: var(--bp-border-width) solid var(--bp-color-border);\n /* Checkerboard pattern for transparency - functional, not themed */\n /* stylelint-disable blueprint/no-hardcoded-values */\n background-image:\n linear-gradient(45deg, #ccc 25%, transparent 25%),\n linear-gradient(-45deg, #ccc 25%, transparent 25%),\n linear-gradient(45deg, transparent 75%, #ccc 75%),\n linear-gradient(-45deg, transparent 75%, #ccc 75%);\n background-size: var(--bp-spacing-sm) var(--bp-spacing-sm);\n background-position:\n 0 0,\n 0 calc(var(--bp-spacing-sm) / 2),\n calc(var(--bp-spacing-sm) / 2) calc(var(--bp-spacing-sm) / -2),\n calc(var(--bp-spacing-sm) / -2) 0;\n /* stylelint-enable blueprint/no-hardcoded-values */\n }\n\n .preview-swatch {\n flex: 1;\n }\n\n /* ─────────────────────────────────────────────────────────────────────────────\n * Inputs\n * ───────────────────────────────────────────────────────────────────────────── */\n\n .inputs-container {\n flex: 1;\n display: flex;\n align-items: flex-start;\n gap: var(--bp-spacing-xs);\n }\n\n .input-row {\n display: flex;\n gap: var(--bp-spacing-xs);\n flex: 1;\n }\n\n .input-group {\n flex: 1;\n display: flex;\n flex-direction: column;\n gap: var(--bp-spacing-2xs);\n }\n\n .color-input {\n width: 100%;\n padding: var(--bp-spacing-xs);\n font-family: var(--bp-font-family-mono);\n font-size: var(--bp-font-size-sm);\n background-color: var(--bp-color-surface);\n border: var(--bp-border-width) solid var(--bp-color-border);\n border-radius: var(--bp-border-radius-sm);\n color: var(--bp-color-text);\n text-align: center;\n box-sizing: border-box;\n }\n\n .color-input:focus {\n outline: var(--bp-focus-width) var(--bp-focus-style) var(--bp-color-focus);\n outline-offset: var(--bp-focus-offset);\n border-color: var(--bp-color-primary);\n }\n\n .color-input::-webkit-inner-spin-button,\n .color-input::-webkit-outer-spin-button {\n -webkit-appearance: none;\n margin: 0;\n }\n\n .color-input[type='number'] {\n -moz-appearance: textfield;\n }\n\n .hex-input {\n text-transform: uppercase;\n }\n\n .input-label {\n font-size: var(--bp-font-size-xs);\n color: var(--bp-color-text-muted);\n text-align: center;\n text-transform: uppercase;\n }\n\n .format-toggle {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--bp-spacing-xl);\n height: var(--bp-spacing-xl);\n padding: 0;\n margin-top: var(--bp-spacing-2xs);\n background-color: var(--bp-color-surface);\n border: var(--bp-border-width) solid var(--bp-color-border);\n border-radius: var(--bp-border-radius-sm);\n color: var(--bp-color-text-muted);\n cursor: pointer;\n transition:\n background-color var(--bp-transition-fast),\n color var(--bp-transition-fast);\n }\n\n .format-toggle:hover:not(:disabled) {\n background-color: var(--bp-color-surface-subdued);\n color: var(--bp-color-text);\n }\n\n .format-toggle:focus-visible {\n outline: var(--bp-focus-width) var(--bp-focus-style) var(--bp-color-focus);\n outline-offset: var(--bp-focus-offset);\n }\n\n .format-toggle svg {\n width: var(--bp-spacing-md);\n height: var(--bp-spacing-md);\n }\n\n /* ─────────────────────────────────────────────────────────────────────────────\n * Eyedropper\n * ───────────────────────────────────────────────────────────────────────────── */\n\n .eyedropper-button {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--bp-spacing-2xl);\n height: var(--bp-spacing-2xl);\n padding: 0;\n background-color: var(--bp-color-surface);\n border: var(--bp-border-width) solid var(--bp-color-border);\n border-radius: var(--bp-border-radius-sm);\n color: var(--bp-color-text-muted);\n cursor: pointer;\n transition:\n background-color var(--bp-transition-fast),\n color var(--bp-transition-fast);\n }\n\n .eyedropper-button:hover:not(:disabled) {\n background-color: var(--bp-color-surface-subdued);\n color: var(--bp-color-text);\n }\n\n .eyedropper-button:focus-visible {\n outline: var(--bp-focus-width) var(--bp-focus-style) var(--bp-color-focus);\n outline-offset: var(--bp-focus-offset);\n }\n\n .eyedropper-button:disabled {\n cursor: not-allowed;\n }\n\n .eyedropper-button svg {\n width: var(--bp-spacing-lg);\n height: var(--bp-spacing-lg);\n }\n\n /* ─────────────────────────────────────────────────────────────────────────────\n * Swatches\n * ───────────────────────────────────────────────────────────────────────────── */\n\n .swatches-container {\n display: flex;\n flex-wrap: wrap;\n gap: var(--bp-spacing-xs);\n padding-top: var(--bp-spacing-sm);\n border-top: var(--bp-border-width) solid var(--bp-color-border);\n }\n\n .swatch {\n width: var(--color-picker-swatch-size);\n height: var(--color-picker-swatch-size);\n padding: 0;\n border: var(--bp-border-width) solid var(--bp-color-border);\n border-radius: var(--bp-border-radius-sm);\n cursor: pointer;\n transition: transform var(--bp-transition-fast);\n }\n\n .swatch:hover:not(:disabled) {\n transform: scale(1.1);\n }\n\n .swatch:focus-visible {\n outline: var(--bp-focus-width) var(--bp-focus-style) var(--bp-color-focus);\n outline-offset: var(--bp-focus-offset);\n }\n\n .swatch:disabled {\n cursor: not-allowed;\n }\n\n /* ─────────────────────────────────────────────────────────────────────────────\n * Sizes\n * ───────────────────────────────────────────────────────────────────────────── */\n\n .color-picker--sm .trigger {\n padding: var(--bp-spacing-xs) var(--bp-spacing-sm);\n font-size: var(--bp-font-size-sm);\n }\n\n .color-picker--sm .trigger-swatch {\n width: var(--bp-spacing-lg);\n height: var(--bp-spacing-lg);\n }\n\n .color-picker--lg .trigger {\n padding: var(--bp-spacing-md) var(--bp-spacing-lg);\n font-size: var(--bp-font-size-lg);\n }\n\n .color-picker--lg .trigger-swatch {\n width: var(--bp-spacing-xl);\n height: var(--bp-spacing-xl);\n }\n\n /* ─────────────────────────────────────────────────────────────────────────────\n * Reduced Motion\n * ───────────────────────────────────────────────────────────────────────────── */\n\n @media (prefers-reduced-motion: reduce) {\n @keyframes fadeIn {\n from,\n to {\n opacity: 1;\n transform: translateY(0);\n }\n }\n\n .trigger,\n .format-toggle,\n .eyedropper-button,\n .swatch,\n .color-input {\n transition: none;\n }\n }\n`;\n","/**\n * Color Picker Utilities\n *\n * Pure functions for color parsing, conversion, and formatting.\n * Supports HEX, RGB, HSL formats with alpha channel.\n */\n\n/**\n * Internal HSV color representation\n */\nexport interface HSVColor {\n h: number; // 0-360\n s: number; // 0-100\n v: number; // 0-100\n a: number; // 0-1\n}\n\n/**\n * RGB color representation\n */\nexport interface RGBColor {\n r: number; // 0-255\n g: number; // 0-255\n b: number; // 0-255\n a: number; // 0-1\n}\n\n/**\n * HSL color representation\n */\nexport interface HSLColor {\n h: number; // 0-360\n s: number; // 0-100\n l: number; // 0-100\n a: number; // 0-1\n}\n\n/**\n * Color output format\n */\nexport type ColorFormat = 'hex' | 'rgb' | 'hsl';\n\n/**\n * Parses a color string and returns HSV representation\n * @param value Color string in hex, rgb, or hsl format\n * @returns HSV color object or null if parsing fails\n */\nexport function parseColor(value: string): HSVColor | null {\n if (!value) return null;\n\n value = value.trim().toLowerCase();\n\n // HEX format\n if (value.startsWith('#')) {\n return parseHex(value);\n }\n\n // RGB/RGBA format\n if (value.startsWith('rgb')) {\n return parseRgb(value);\n }\n\n // HSL/HSLA format\n if (value.startsWith('hsl')) {\n return parseHsl(value);\n }\n\n return null;\n}\n\n/**\n * Parses a hex color string to HSV\n * @param hex Hex color string (with or without #, 3/4/6/8 digits)\n * @returns HSV color object or null if invalid\n */\nexport function parseHex(hex: string): HSVColor | null {\n hex = hex.replace('#', '');\n\n let r: number,\n g: number,\n b: number,\n a = 1;\n\n if (hex.length === 3) {\n r = parseInt(hex[0] + hex[0], 16);\n g = parseInt(hex[1] + hex[1], 16);\n b = parseInt(hex[2] + hex[2], 16);\n } else if (hex.length === 4) {\n r = parseInt(hex[0] + hex[0], 16);\n g = parseInt(hex[1] + hex[1], 16);\n b = parseInt(hex[2] + hex[2], 16);\n a = parseInt(hex[3] + hex[3], 16) / 255;\n } else if (hex.length === 6) {\n r = parseInt(hex.substring(0, 2), 16);\n g = parseInt(hex.substring(2, 4), 16);\n b = parseInt(hex.substring(4, 6), 16);\n } else if (hex.length === 8) {\n r = parseInt(hex.substring(0, 2), 16);\n g = parseInt(hex.substring(2, 4), 16);\n b = parseInt(hex.substring(4, 6), 16);\n a = parseInt(hex.substring(6, 8), 16) / 255;\n } else {\n return null;\n }\n\n if (isNaN(r) || isNaN(g) || isNaN(b) || isNaN(a)) {\n return null;\n }\n\n return rgbToHsv({ r, g, b, a });\n}\n\n/**\n * Parses an rgb/rgba color string to HSV\n * @param rgb RGB color string (e.g., 'rgb(255, 87, 51)' or 'rgba(255, 87, 51, 0.5)')\n * @returns HSV color object or null if invalid\n */\nexport function parseRgb(rgb: string): HSVColor | null {\n const match = rgb.match(\n /rgba?\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*(?:,\\s*([\\d.]+))?\\s*\\)/\n );\n if (!match) return null;\n\n const r = parseInt(match[1], 10);\n const g = parseInt(match[2], 10);\n const b = parseInt(match[3], 10);\n const a = match[4] !== undefined ? parseFloat(match[4]) : 1;\n\n return rgbToHsv({ r, g, b, a });\n}\n\n/**\n * Parses an hsl/hsla color string to HSV\n * @param hsl HSL color string (e.g., 'hsl(14, 100%, 60%)' or 'hsla(14, 100%, 60%, 0.5)')\n * @returns HSV color object or null if invalid\n */\nexport function parseHsl(hsl: string): HSVColor | null {\n const match = hsl.match(\n /hsla?\\(\\s*([\\d.]+)\\s*,\\s*([\\d.]+)%?\\s*,\\s*([\\d.]+)%?\\s*(?:,\\s*([\\d.]+))?\\s*\\)/\n );\n if (!match) return null;\n\n const h = parseFloat(match[1]);\n const s = parseFloat(match[2]);\n const l = parseFloat(match[3]);\n const a = match[4] !== undefined ? parseFloat(match[4]) : 1;\n\n return hslToHsv({ h, s, l, a });\n}\n\n/**\n * Converts RGB color to HSV color space\n * @param rgb RGB color object with r, g, b (0-255) and a (0-1)\n * @returns HSV color object with h (0-360), s (0-100), v (0-100), a (0-1)\n */\nexport function rgbToHsv(rgb: RGBColor): HSVColor {\n const r = rgb.r / 255;\n const g = rgb.g / 255;\n const b = rgb.b / 255;\n\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n const delta = max - min;\n\n let h = 0;\n const s = max === 0 ? 0 : (delta / max) * 100;\n const v = max * 100;\n\n if (delta !== 0) {\n if (max === r) {\n h = 60 * (((g - b) / delta) % 6);\n } else if (max === g) {\n h = 60 * ((b - r) / delta + 2);\n } else {\n h = 60 * ((r - g) / delta + 4);\n }\n }\n\n if (h < 0) h += 360;\n\n return { h, s, v, a: rgb.a };\n}\n\n/**\n * Converts HSV color to RGB color space\n * @param hsv HSV color object with h (0-360), s (0-100), v (0-100), a (0-1)\n * @returns RGB color object with r, g, b (0-255) and a (0-1)\n */\nexport function hsvToRgb(hsv: HSVColor): RGBColor {\n const h = hsv.h;\n const s = hsv.s / 100;\n const v = hsv.v / 100;\n\n const c = v * s;\n const x = c * (1 - Math.abs(((h / 60) % 2) - 1));\n const m = v - c;\n\n let r = 0,\n g = 0,\n b = 0;\n\n if (h >= 0 && h < 60) {\n r = c;\n g = x;\n b = 0;\n } else if (h >= 60 && h < 120) {\n r = x;\n g = c;\n b = 0;\n } else if (h >= 120 && h < 180) {\n r = 0;\n g = c;\n b = x;\n } else if (h >= 180 && h < 240) {\n r = 0;\n g = x;\n b = c;\n } else if (h >= 240 && h < 300) {\n r = x;\n g = 0;\n b = c;\n } else {\n r = c;\n g = 0;\n b = x;\n }\n\n return {\n r: Math.round((r + m) * 255),\n g: Math.round((g + m) * 255),\n b: Math.round((b + m) * 255),\n a: hsv.a,\n };\n}\n\n/**\n * Converts HSL color to HSV color space\n * @param hsl HSL color object with h (0-360), s (0-100), l (0-100), a (0-1)\n * @returns HSV color object with h (0-360), s (0-100), v (0-100), a (0-1)\n */\nexport function hslToHsv(hsl: HSLColor): HSVColor {\n const h = hsl.h;\n const s = hsl.s / 100;\n const l = hsl.l / 100;\n\n const v = l + s * Math.min(l, 1 - l);\n const sv = v === 0 ? 0 : 2 * (1 - l / v);\n\n return { h, s: sv * 100, v: v * 100, a: hsl.a };\n}\n\n/**\n * Converts HSV color to HSL color space\n * @param hsv HSV color object with h (0-360), s (0-100), v (0-100), a (0-1)\n * @returns HSL color object with h (0-360), s (0-100), l (0-100), a (0-1)\n */\nexport function hsvToHsl(hsv: HSVColor): HSLColor {\n const h = hsv.h;\n const s = hsv.s / 100;\n const v = hsv.v / 100;\n\n const l = v * (1 - s / 2);\n const sl = l === 0 || l === 1 ? 0 : (v - l) / Math.min(l, 1 - l);\n\n return { h, s: sl * 100, l: l * 100, a: hsv.a };\n}\n\n/**\n * Rounds alpha value to 2 decimal places\n * @param a Alpha value (0-1)\n * @returns Rounded alpha value\n */\nexport function roundAlpha(a: number): number {\n return Math.round(a * 100) / 100;\n}\n\n/**\n * Formats an HSV color to the specified output format\n * @param hsv HSV color object\n * @param format Output format (hex, rgb, or hsl)\n * @param includeAlpha Whether to include alpha channel in output\n * @returns Formatted color string\n */\nexport function formatColorOutput(\n hsv: HSVColor,\n format: ColorFormat,\n includeAlpha: boolean\n): string {\n const rgb = hsvToRgb(hsv);\n const hsl = hsvToHsl(hsv);\n\n switch (format) {\n case 'rgb':\n if (includeAlpha && hsv.a < 1) {\n return `rgba(${rgb.r}, ${rgb.g}, ${rgb.b}, ${roundAlpha(hsv.a)})`;\n }\n return `rgb(${rgb.r}, ${rgb.g}, ${rgb.b})`;\n\n case 'hsl':\n if (includeAlpha && hsv.a < 1) {\n return `hsla(${Math.round(hsl.h)}, ${Math.round(hsl.s)}%, ${Math.round(hsl.l)}%, ${roundAlpha(hsv.a)})`;\n }\n return `hsl(${Math.round(hsl.h)}, ${Math.round(hsl.s)}%, ${Math.round(hsl.l)}%)`;\n\n case 'hex':\n default: {\n const hexR = rgb.r.toString(16).padStart(2, '0');\n const hexG = rgb.g.toString(16).padStart(2, '0');\n const hexB = rgb.b.toString(16).padStart(2, '0');\n if (includeAlpha && hsv.a < 1) {\n const hexA = Math.round(hsv.a * 255)\n .toString(16)\n .padStart(2, '0');\n return `#${hexR}${hexG}${hexB}${hexA}`;\n }\n return `#${hexR}${hexG}${hexB}`;\n }\n }\n}\n","import { LitElement, html, nothing, PropertyValues } from 'lit';\nimport { customElement, property, state, query } from 'lit/decorators.js';\nimport { colorPickerStyles } from './color-picker.style.js';\nimport { booleanConverter } from '../../utilities/boolean-converter.js';\nimport {\n type ColorFormat,\n type HSVColor,\n parseColor,\n hsvToRgb,\n hsvToHsl,\n formatColorOutput,\n} from './color-picker.utils.js';\n\n// Browser globals: PointerEvent and EyeDropper are available in modern browsers\n\n/**\n * Color picker size\n */\nexport type ColorPickerSize = 'sm' | 'md' | 'lg';\n\n/**\n * A color picker component that provides a consistent, accessible, and feature-rich\n * color selection experience. Supports HEX, RGB, and HSL formats with optional alpha channel.\n *\n * @element bp-color-picker\n *\n * @slot trigger - Custom trigger button content\n * @slot swatches - Custom swatch elements\n * @slot footer - Additional content below picker\n *\n * @csspart trigger - The popover trigger button\n * @csspart popover - The popover container\n * @csspart color-area - The 2D saturation/value gradient\n * @csspart hue-slider - The hue selection slider\n * @csspart alpha-slider - The alpha selection slider\n * @csspart preview - The color preview swatch\n * @csspart input - Text input fields\n * @csspart swatches - Swatches container\n * @csspart swatch - Individual swatch items\n *\n * @fires bp-change - Fired when value changes (on blur/confirm)\n * @fires bp-input - Fired on every input (live updates)\n * @fires bp-open - Popover opened\n * @fires bp-close - Popover closed\n */\n@customElement('bp-color-picker')\nexport class BpColorPicker extends LitElement {\n static styles = [colorPickerStyles];\n\n /** Current color value */\n @property({ type: String }) declare value: string;\n\n /** Output format for value */\n @property({ type: String }) declare format: ColorFormat;\n\n /** Enable alpha channel */\n @property({ converter: booleanConverter, reflect: true })\n declare alpha: boolean;\n\n /** Predefined swatch colors */\n @property({ type: Array }) declare swatches: string[];\n\n /** Render inline instead of popover */\n @property({ type: Boolean }) declare inline: boolean;\n\n /** Disable all interactions */\n @property({ type: Boolean, reflect: true }) declare disabled: boolean;\n\n /** Show value but prevent editing */\n @property({ type: Boolean, reflect: true }) declare readonly: boolean;\n\n /** Component size */\n @property({ type: String, reflect: true }) declare size: ColorPickerSize;\n\n /** Accessible label */\n @property({ type: String }) declare label: string;\n\n /** Form field name */\n @property({ type: String }) declare name: string;\n\n /** Placeholder for trigger */\n @property({ type: String }) declare placeholder: string;\n\n /** Whether the popover is open */\n @state() private _open = false;\n\n /** Internal HSV color state */\n @state() private _hsv: HSVColor = { h: 0, s: 0, v: 0, a: 1 };\n\n /** Original color when popover opened */\n @state() private _originalValue = '';\n\n /** Whether eyedropper is supported */\n @state() private _eyedropperSupported = false;\n\n /** Current input mode for format toggle */\n @state() private _inputMode: ColorFormat = 'hex';\n\n /** HEX input value for controlled input */\n @state() private _hexInputValue = '';\n\n /** Whether eyedropper is currently active */\n @state() private _isPickingColor = false;\n\n @query('.color-area') private _colorArea!: HTMLElement;\n @query('.hue-slider') private _hueSlider!: HTMLElement;\n @query('.alpha-slider') private _alphaSlider!: HTMLElement;\n\n private _isDraggingArea = false;\n private _isDraggingHue = false;\n private _isDraggingAlpha = false;\n\n constructor() {\n super();\n this.value = '#000000';\n this.format = 'hex';\n this.alpha = true;\n this.swatches = [];\n this.inline = false;\n this.disabled = false;\n this.readonly = false;\n this.size = 'md';\n this.label = '';\n this.name = '';\n this.placeholder = '';\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n // Check for EyeDropper API support\n this._eyedropperSupported = 'EyeDropper' in window;\n this._parseValue(this.value);\n this._hexInputValue = this._formatOutput('hex');\n this._inputMode = this.format;\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n this._removeGlobalListeners();\n }\n\n protected willUpdate(changedProperties: PropertyValues): void {\n if (changedProperties.has('value') && !this._isDragging()) {\n this._parseValue(this.value);\n this._hexInputValue = this._formatOutput('hex');\n }\n if (changedProperties.has('format')) {\n this._inputMode = this.format;\n }\n }\n\n private _isDragging(): boolean {\n return this._isDraggingArea || this._isDraggingHue || this._isDraggingAlpha;\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Color Parsing & Conversion\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * Parses a color value string and updates internal HSV state\n * @param value Color string in hex, rgb, or hsl format\n */\n private _parseValue(value: string): void {\n const parsed = parseColor(value);\n if (parsed) {\n this._hsv = parsed;\n }\n }\n\n /**\n * Formats the current HSV color to the specified output format\n * @param format Output format (hex, rgb, or hsl), defaults to this.format\n * @returns Formatted color string\n */\n private _formatOutput(format: ColorFormat = this.format): string {\n return formatColorOutput(this._hsv, format, this.alpha);\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Event Handlers\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * Handles click events on the trigger button\n * Toggles the picker popover open/closed state\n */\n private _handleTriggerClick(): void {\n if (this.disabled || this.readonly) return;\n this._toggleOpen();\n }\n\n /**\n * Handles keyboard events on the trigger button\n * Opens picker on Enter or Space key\n * @param event Keyboard event\n */\n private _handleTriggerKeydown(event: KeyboardEvent): void {\n if (this.disabled || this.readonly) return;\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this._toggleOpen();\n }\n }\n\n /**\n * Toggles the picker popover between open and closed states\n * Saves original value when opening and emits bp-open/bp-close events\n */\n private _toggleOpen(): void {\n if (this._open) {\n this._close();\n } else {\n this._open = true;\n this._originalValue = this.value;\n this.dispatchEvent(\n new CustomEvent('bp-open', { bubbles: true, composed: true })\n );\n this._addGlobalListeners();\n }\n }\n\n /**\n * Closes the picker popover\n * Removes global event listeners and emits bp-close event\n */\n private _close(): void {\n this._open = false;\n this._removeGlobalListeners();\n this.dispatchEvent(\n new CustomEvent('bp-close', { bubbles: true, composed: true })\n );\n }\n\n private _handleOutsideClick = (event: MouseEvent): void => {\n const path = event.composedPath();\n if (!path.includes(this)) {\n this._close();\n }\n };\n\n private _handleEscapeKey = (event: KeyboardEvent): void => {\n if (event.key === 'Escape') {\n // Restore original value\n this.value = this._originalValue;\n this._parseValue(this._originalValue);\n this._hexInputValue = this._formatOutput('hex');\n this._close();\n }\n };\n\n /**\n * Adds global document event listeners for outside clicks and escape key\n * Used when picker popover is open\n */\n private _addGlobalListeners(): void {\n document.addEventListener('click', this._handleOutsideClick);\n document.addEventListener('keydown', this._handleEscapeKey);\n }\n\n /**\n * Removes global document event listeners\n * Called when picker popover is closed\n */\n private _removeGlobalListeners(): void {\n document.removeEventListener('click', this._handleOutsideClick);\n document.removeEventListener('keydown', this._handleEscapeKey);\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Color Area Handlers\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * Handles pointer down events on the color area\n * Starts saturation/value drag interaction\n * @param event Pointer event\n */\n private _handleColorAreaPointerDown(event: PointerEvent): void {\n if (this.disabled || this.readonly) return;\n event.preventDefault();\n this._isDraggingArea = true;\n this._colorArea.setPointerCapture(event.pointerId);\n this._updateColorFromPointer(event);\n }\n\n /**\n * Handles pointer move events on the color area during drag\n * Updates color based on pointer position\n * @param event Pointer event\n */\n private _handleColorAreaPointerMove(event: PointerEvent): void {\n if (!this._isDraggingArea) return;\n this._updateColorFromPointer(event);\n }\n\n /**\n * Handles pointer up events on the color area\n * Ends drag interaction and emits change event\n * @param event Pointer event\n */\n private _handleColorAreaPointerUp(event: PointerEvent): void {\n if (!this._isDraggingArea) return;\n this._isDraggingArea = false;\n this._colorArea.releasePointerCapture(event.pointerId);\n this._emitChange();\n }\n\n /**\n * Updates color saturation and value based on pointer position in color area\n * @param event Pointer event with clientX/clientY coordinates\n */\n private _updateColorFromPointer(event: PointerEvent): void {\n const rect = this._colorArea.getBoundingClientRect();\n const x = Math.max(0, Math.min(event.clientX - rect.left, rect.width));\n const y = Math.max(0, Math.min(event.clientY - rect.top, rect.height));\n\n this._hsv = {\n ...this._hsv,\n s: (x / rect.width) * 100,\n v: 100 - (y / rect.height) * 100,\n };\n\n this._hexInputValue = this._formatOutput('hex');\n this._emitInput();\n }\n\n /**\n * Handles keyboard navigation on the color area\n * Arrow keys adjust saturation/value, Shift increases step size\n * @param event Keyboard event\n */\n private _handleColorAreaKeydown(event: KeyboardEvent): void {\n if (this.disabled || this.readonly) return;\n\n const step = event.shiftKey ? 10 : 1;\n let handled = false;\n\n switch (event.key) {\n case 'ArrowRight':\n this._hsv = { ...this._hsv, s: Math.min(100, this._hsv.s + step) };\n handled = true;\n break;\n case 'ArrowLeft':\n this._hsv = { ...this._hsv, s: Math.max(0, this._hsv.s - step) };\n handled = true;\n break;\n case 'ArrowUp':\n this._hsv = { ...this._hsv, v: Math.min(100, this._hsv.v + step) };\n handled = true;\n break;\n case 'ArrowDown':\n this._hsv = { ...this._hsv, v: Math.max(0, this._hsv.v - step) };\n handled = true;\n break;\n case 'Home':\n this._hsv = { ...this._hsv, s: 0 };\n handled = true;\n break;\n case 'End':\n this._hsv = { ...this._hsv, s: 100 };\n handled = true;\n break;\n }\n\n if (handled) {\n event.preventDefault();\n this._hexInputValue = this._formatOutput('hex');\n this._emitInput();\n this._emitChange();\n }\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Hue Slider Handlers\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * Handles pointer down events on the hue slider\n * Starts hue drag interaction\n * @param event Pointer event\n */\n private _handleHuePointerDown(event: PointerEvent): void {\n if (this.disabled || this.readonly) return;\n event.preventDefault();\n this._isDraggingHue = true;\n this._hueSlider.setPointerCapture(event.pointerId);\n this._updateHueFromPointer(event);\n }\n\n /**\n * Handles pointer move events on the hue slider during drag\n * Updates hue based on pointer position\n * @param event Pointer event\n */\n private _handleHuePointerMove(event: PointerEvent): void {\n if (!this._isDraggingHue) return;\n this._updateHueFromPointer(event);\n }\n\n /**\n * Handles pointer up events on the hue slider\n * Ends drag interaction and emits change event\n * @param event Pointer event\n */\n private _handleHuePointerUp(event: PointerEvent): void {\n if (!this._isDraggingHue) return;\n this._isDraggingHue = false;\n this._hueSlider.releasePointerCapture(event.pointerId);\n this._emitChange();\n }\n\n /**\n * Updates hue based on pointer position in hue slider\n * @param event Pointer event with clientY coordinate\n */\n private _updateHueFromPointer(event: PointerEvent): void {\n const rect = this._hueSlider.getBoundingClientRect();\n const y = Math.max(0, Math.min(event.clientY - rect.top, rect.height));\n const hue = (y / rect.height) * 360;\n\n this._hsv = { ...this._hsv, h: hue };\n this._hexInputValue = this._formatOutput('hex');\n this._emitInput();\n }\n\n /**\n * Handles keyboard navigation on the hue slider\n * Arrow keys adjust hue, Shift increases step size\n * @param event Keyboard event\n */\n private _handleHueKeydown(event: KeyboardEvent): void {\n if (this.disabled || this.readonly) return;\n\n const step = event.shiftKey ? 10 : 1;\n let handled = false;\n\n switch (event.key) {\n case 'ArrowDown':\n case 'ArrowRight':\n this._hsv = { ...this._hsv, h: (this._hsv.h + step) % 360 };\n handled = true;\n break;\n case 'ArrowUp':\n case 'ArrowLeft':\n this._hsv = { ...this._hsv, h: (this._hsv.h - step + 360) % 360 };\n handled = true;\n break;\n case 'Home':\n this._hsv = { ...this._hsv, h: 0 };\n handled = true;\n break;\n case 'End':\n this._hsv = { ...this._hsv, h: 359 };\n handled = true;\n break;\n }\n\n if (handled) {\n event.preventDefault();\n this._hexInputValue = this._formatOutput('hex');\n this._emitInput();\n this._emitChange();\n }\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Alpha Slider Handlers\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * Handles pointer down events on the alpha slider\n * Starts alpha drag interaction\n * @param event Pointer event\n */\n private _handleAlphaPointerDown(event: PointerEvent): void {\n if (this.disabled || this.readonly) return;\n event.preventDefault();\n this._isDraggingAlpha = true;\n this._alphaSlider.setPointerCapture(event.pointerId);\n this._updateAlphaFromPointer(event);\n }\n\n /**\n * Handles pointer move events on the alpha slider during drag\n * Updates alpha based on pointer position\n * @param event Pointer event\n */\n private _handleAlphaPointerMove(event: PointerEvent): void {\n if (!this._isDraggingAlpha) return;\n this._updateAlphaFromPointer(event);\n }\n\n /**\n * Handles pointer up events on the alpha slider\n * Ends drag interaction and emits change event\n * @param event Pointer event\n */\n private _handleAlphaPointerUp(event: PointerEvent): void {\n if (!this._isDraggingAlpha) return;\n this._isDraggingAlpha = false;\n this._alphaSlider.releasePointerCapture(event.pointerId);\n this._emitChange();\n }\n\n /**\n * Updates alpha based on pointer position in alpha slider\n * @param event Pointer event with clientX coordinate\n */\n private _updateAlphaFromPointer(event: PointerEvent): void {\n const rect = this._alphaSlider.getBoundingClientRect();\n const x = Math.max(0, Math.min(event.clientX - rect.left, rect.width));\n const alpha = x / rect.width;\n\n this._hsv = { ...this._hsv, a: alpha };\n this._hexInputValue = this._formatOutput('hex');\n this._emitInput();\n }\n\n /**\n * Handles keyboard navigation on the alpha slider\n * Arrow keys adjust alpha, Shift increases step size\n * @param event Keyboard event\n */\n private _handleAlphaKeydown(event: KeyboardEvent): void {\n if (this.disabled || this.readonly) return;\n\n const step = event.shiftKey ? 0.1 : 0.01;\n let handled = false;\n\n switch (event.key) {\n case 'ArrowRight':\n case 'ArrowUp':\n this._hsv = { ...this._hsv, a: Math.min(1, this._hsv.a + step) };\n handled = true;\n break;\n case 'ArrowLeft':\n case 'ArrowDown':\n this._hsv = { ...this._hsv, a: Math.max(0, this._hsv.a - step) };\n handled = true;\n break;\n case 'Home':\n this._hsv = { ...this._hsv, a: 0 };\n handled = true;\n break;\n case 'End':\n this._hsv = { ...this._hsv, a: 1 };\n handled = true;\n break;\n }\n\n if (handled) {\n event.preventDefault();\n this._hexInputValue = this._formatOutput('hex');\n this._emitInput();\n this._emitChange();\n }\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Input Handlers\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * Handles input events on the hex input field\n * Updates controlled input value\n * @param event Input event\n */\n private _handleHexInput(event: Event): void {\n const input = event.target as HTMLInputElement;\n this._hexInputValue = input.value;\n }\n\n /**\n * Handles change events on the hex input field\n * Parses and applies hex color value, adds # prefix if missing\n * @param event Change event\n */\n private _handleHexChange(event: Event): void {\n const input = event.target as HTMLInputElement;\n let value = input.value.trim();\n\n // Add # if missing\n if (value && !value.startsWith('#')) {\n value = '#' + value;\n }\n\n const parsed = parseColor(value);\n if (parsed) {\n this._hsv = parsed;\n this._hexInputValue = this._formatOutput('hex');\n this._emitInput();\n this._emitChange();\n } else {\n // Reset to current value if invalid\n this._hexInputValue = this._formatOutput('hex');\n }\n }\n\n /**\n * Handles input events on RGB channel inputs\n * Updates color based on red, green, or blue channel value\n * @param channel RGB channel to update ('r', 'g', or 'b')\n * @param event Input event\n */\n private _handleRgbInput(channel: 'r' | 'g' | 'b', event: Event): void {\n const input = event.target as HTMLInputElement;\n const value = Math.max(0, Math.min(255, parseInt(input.value, 10) || 0));\n\n const rgb = hsvToRgb(this._hsv);\n rgb[channel] = value;\n this._hsv = parseColor(`rgba(${rgb.r}, ${rgb.g}, ${rgb.b}, ${rgb.a})`)!;\n this._hexInputValue = this._formatOutput('hex');\n this._emitInput();\n }\n\n /**\n * Handles change events on RGB inputs\n * Emits bp-change event\n */\n private _handleRgbChange(): void {\n this._emitChange();\n }\n\n /**\n * Handles input events on HSL channel inputs\n * Updates color based on hue, saturation, or lightness value\n * @param channel HSL channel to update ('h', 's', or 'l')\n * @param event Input event\n */\n private _handleHslInput(channel: 'h' | 's' | 'l', event: Event): void {\n const input = event.target as HTMLInputElement;\n const hsl = hsvToHsl(this._hsv);\n\n if (channel === 'h') {\n hsl.h = Math.max(0, Math.min(360, parseInt(input.value, 10) || 0));\n } else {\n hsl[channel] = Math.max(0, Math.min(100, parseInt(input.value, 10) || 0));\n }\n\n this._hsv = parseColor(`hsla(${hsl.h}, ${hsl.s}%, ${hsl.l}%, ${hsl.a})`)!;\n this._hexInputValue = this._formatOutput('hex');\n this._emitInput();\n }\n\n /**\n * Handles change events on HSL inputs\n * Emits bp-change event\n */\n private _handleHslChange(): void {\n this._emitChange();\n }\n\n /**\n * Handles input events on the alpha percentage input\n * Updates alpha channel (0-100%)\n * @param event Input event\n */\n private _handleAlphaInput(event: Event): void {\n const input = event.target as HTMLInputElement;\n const value = Math.max(0, Math.min(100, parseInt(input.value, 10) || 0));\n this._hsv = { ...this._hsv, a: value / 100 };\n this._hexInputValue = this._formatOutput('hex');\n this._emitInput();\n }\n\n /**\n * Handles change events on alpha input\n * Emits bp-change event\n */\n private _handleAlphaInputChange(): void {\n this._emitChange();\n }\n\n /**\n * Handles format toggle button click\n * Cycles through hex → rgb → hsl input modes\n */\n private _handleFormatToggle(): void {\n const formats: ColorFormat[] = ['hex', 'rgb', 'hsl'];\n const currentIndex = formats.indexOf(this._inputMode);\n this._inputMode = formats[(currentIndex + 1) % formats.length];\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Swatch Handlers\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * Handles click events on predefined color swatches\n * Updates color to the swatch value\n * @param color Color string to apply\n */\n private _handleSwatchClick(color: string): void {\n if (this.disabled || this.readonly) return;\n\n const parsed = parseColor(color);\n if (parsed) {\n this._hsv = parsed;\n this._hexInputValue = this._formatOutput('hex');\n this._emitInput();\n this._emitChange();\n }\n }\n\n /**\n * Handles keyboard events on swatch elements\n * Activates swatch on Enter or Space key\n * @param color Color string to apply\n * @param event Keyboard event\n */\n private _handleSwatchKeydown(color: string, event: KeyboardEvent): void {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this._handleSwatchClick(color);\n }\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Eyedropper\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * Handles eyedropper button click\n * Opens native EyeDropper API to pick color from screen\n * Only available in browsers that support the EyeDropper API\n */\n private async _handleEyedropper(): Promise<void> {\n if (!this._eyedropperSupported || this.disabled || this.readonly) return;\n\n this._isPickingColor = true;\n try {\n // @ts-expect-error EyeDropper API is not in TypeScript types yet\n const eyeDropper = new EyeDropper();\n const result = await eyeDropper.open();\n\n if (result.sRGBHex) {\n const parsed = parseColor(result.sRGBHex);\n if (parsed) {\n this._hsv = parsed;\n this._hexInputValue = this._formatOutput('hex');\n this._emitInput();\n this._emitChange();\n }\n }\n } catch {\n // User cancelled or error occurred\n } finally {\n this._isPickingColor = false;\n }\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Event Emission\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * Emits bp-input event with current formatted color value\n * Fired during live color updates (dragging, typing)\n */\n private _emitInput(): void {\n const value = this._formatOutput();\n this.dispatchEvent(\n new CustomEvent('bp-input', {\n detail: { value },\n bubbles: true,\n composed: true,\n })\n );\n }\n\n /**\n * Emits bp-change event and updates the value property\n * Fired on blur/confirm actions (drag end, input blur)\n */\n private _emitChange(): void {\n const value = this._formatOutput();\n this.value = value;\n this.dispatchEvent(\n new CustomEvent('bp-change', {\n detail: { value },\n bubbles: true,\n composed: true,\n })\n );\n }\n\n // ─────────────────────────────────────────────────────────────────────────────\n // Rendering\n // ─────────────────────────────────────────────────────────────────────────────\n\n /**\n * Renders the 2D color area for saturation and value selection\n * @returns TemplateResult for color area with draggable handle\n */\n private _renderColorArea() {\n const hueColor = `hsl(${this._hsv.h}, 100%, 50%)`;\n const handleX = this._hsv.s;\n const handleY = 100 - this._hsv.v;\n\n return html`\n <div\n class=\"color-area\"\n part=\"color-area\"\n role=\"slider\"\n tabindex=\"${this.disabled ? -1 : 0}\"\n aria-label=\"Color selection\"\n aria-valuetext=\"Saturation ${Math.round(\n this._hsv.s\n )}%, Brightness ${Math.round(this._hsv.v)}%\"\n style=\"--hue-color: ${hueColor}\"\n @pointerdown=${this._handleColorAreaPointerDown}\n @pointermove=${this._handleColorAreaPointerMove}\n @pointerup=${this._handleColorAreaPointerUp}\n @keydown=${this._handleColorAreaKeydown}\n >\n <div\n class=\"color-area-handle\"\n style=\"left: ${handleX}%; top: ${handleY}%\"\n ></div>\n </div>\n `;\n }\n\n /**\n * Renders the vertical hue slider (0-360 degrees)\n * @returns TemplateResult for hue slider with draggable handle\n */\n private _renderHueSlider() {\n const handleY = (this._hsv.h / 360) * 100;\n\n return html`\n <div\n class=\"hue-slider\"\n part=\"hue-slider\"\n role=\"slider\"\n tabindex=\"${this.disabled ? -1 : 0}\"\n aria-label=\"Hue\"\n aria-valuenow=\"${Math.round(this._hsv.h)}\"\n aria-valuemin=\"0\"\n aria-valuemax=\"360\"\n @pointerdown=${this._handleHuePointerDown}\n @pointermove=${this._handleHuePointerMove}\n @pointerup=${this._handleHuePointerUp}\n @keydown=${this._handleHueKeydown}\n >\n <div class=\"hue-slider-handle\" style=\"top: ${handleY}%\"></div>\n </div>\n `;\n }\n\n /**\n * Renders the horizontal alpha slider (0-100%)\n * Only shown when alpha property is true\n * @returns TemplateResult for alpha slider or nothing\n */\n private _renderAlphaSlider() {\n if (!this.alpha) return nothing;\n\n const rgb = hsvToRgb(this._hsv);\n const colorStart = `rgba(${rgb.r}, ${rgb.g}, ${rgb.b}, 0)`;\n const colorEnd = `rgba(${rgb.r}, ${rgb.g}, ${rgb.b}, 1)`;\n const handleX = this._hsv.a * 100;\n\n return html`\n <div\n class=\"alpha-slider\"\n part=\"alpha-slider\"\n role=\"slider\"\n tabindex=\"${this.disabled ? -1 : 0}\"\n aria-label=\"Opacity\"\n aria-valuenow=\"${Math.round(this._hsv.a * 100)}\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n style=\"--alpha-gradient: linear-gradient(to right, ${colorStart}, ${colorEnd})\"\n @pointerdown=${this._handleAlphaPointerDown}\n @pointermove=${this._handleAlphaPointerMove}\n @pointerup=${this._handleAlphaPointerUp}\n @keydown=${this._handleAlphaKeydown}\n >\n <div class=\"alpha-slider-handle\" style=\"left: ${handleX}%\"></div>\n </div>\n `;\n }\n\n /**\n * Renders the color preview showing original and current colors\n * Displays side-by-side comparison with checkerboard background for transparency\n * @returns TemplateResult for preview swatches\n */\n private _renderPreview() {\n const rgb = hsvToRgb(this._hsv);\n const currentColor = `rgba(${rgb.r}, ${rgb.g}, ${rgb.b}, ${this._hsv.a})`;\n const originalHsv = parseColor(this._originalValue);\n const originalColor = originalHsv\n ? (() => {\n const origRgb = hsvToRgb(originalHsv);\n return `rgba(${origRgb.r}, ${origRgb.g}, ${origRgb.b}, ${originalHsv.a})`;\n })()\n : currentColor;\n\n return html`\n <div class=\"preview\" part=\"preview\">\n <div\n class=\"preview-swatch preview-original\"\n style=\"background: ${originalColor}\"\n title=\"Original color\"\n aria-label=\"Original color\"\n ></div>\n <div\n class=\"preview-swatch preview-current\"\n style=\"background: ${currentColor}\"\n title=\"Current color\"\n aria-label=\"Current color\"\n ></div>\n </div>\n `;\n }\n\n /**\n * Renders the hex color input field\n * @returns TemplateResult for hex input group\n */\n private _renderHexInput() {\n return html`\n <div class=\"input-group\">\n <input\n type=\"text\"\n class=\"color-input hex-input\"\n part=\"input\"\n .value=${this._hexInputValue}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n @input=${this._handleHexInput}\n @change=${this._handleHexChange}\n aria-label=\"Hex color value\"\n />\n <span class=\"input-label\">HEX</span>\n </div>\n `;\n }\n\n /**\n * Renders RGB color input fields (R, G, B, and optionally A)\n * @returns TemplateResult for RGB input row\n */\n private _renderRgbInputs() {\n const rgb = hsvToRgb(this._hsv);\n\n return html`\n <div class=\"input-row\">\n <div class=\"input-group\">\n <input\n type=\"number\"\n class=\"color-input\"\n part=\"input\"\n min=\"0\"\n max=\"255\"\n .value=${String(rgb.r)}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n @input=${(e: Event) => this._handleRgbInput('r', e)}\n @change=${this._handleRgbChange}\n aria-label=\"Red\"\n />\n <span class=\"input-label\">R</span>\n </div>\n <div class=\"input-group\">\n <input\n type=\"number\"\n class=\"color-input\"\n part=\"input\"\n min=\"0\"\n max=\"255\"\n .value=${String(rgb.g)}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n @input=${(e: Event) => this._handleRgbInput('g', e)}\n @change=${this._handleRgbChange}\n aria-label=\"Green\"\n />\n <span class=\"input-label\">G</span>\n </div>\n <div class=\"input-group\">\n <input\n type=\"number\"\n class=\"color-input\"\n part=\"input\"\n min=\"0\"\n max=\"255\"\n .value=${String(rgb.b)}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n @input=${(e: Event) => this._handleRgbInput('b', e)}\n @change=${this._handleRgbChange}\n aria-label=\"Blue\"\n />\n <span class=\"input-label\">B</span>\n </div>\n ${this.alpha\n ? html`\n <div class=\"input-group\">\n <input\n type=\"number\"\n class=\"color-input\"\n part=\"input\"\n min=\"0\"\n max=\"100\"\n .value=${String(Math.round(this._hsv.a * 100))}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n @input=${this._handleAlphaInput}\n @change=${this._handleAlphaInputChange}\n aria-label=\"Alpha\"\n />\n <span class=\"input-label\">A</span>\n </div>\n `\n : nothing}\n </div>\n `;\n }\n\n /**\n * Renders HSL color input fields (H, S, L, and optionally A)\n * @returns TemplateResult for HSL input row\n */\n private _renderHslInputs() {\n const hsl = hsvToHsl(this._hsv);\n\n return html`\n <div class=\"input-row\">\n <div class=\"input-group\">\n <input\n type=\"number\"\n class=\"color-input\"\n part=\"input\"\n min=\"0\"\n max=\"360\"\n .value=${String(Math.round(hsl.h))}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n @input=${(e: Event) => this._handleHslInput('h', e)}\n @change=${this._handleHslChange}\n aria-label=\"Hue\"\n />\n <span class=\"input-label\">H</span>\n </div>\n <div class=\"input-group\">\n <input\n type=\"number\"\n class=\"color-input\"\n part=\"input\"\n min=\"0\"\n max=\"100\"\n .value=${String(Math.round(hsl.s))}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n @input=${(e: Event) => this._handleHslInput('s', e)}\n @change=${this._handleHslChange}\n aria-label=\"Saturation\"\n />\n <span class=\"input-label\">S</span>\n </div>\n <div class=\"input-group\">\n <input\n type=\"number\"\n class=\"color-input\"\n part=\"input\"\n min=\"0\"\n max=\"100\"\n .value=${String(Math.round(hsl.l))}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n @input=${(e: Event) => this._handleHslInput('l', e)}\n @change=${this._handleHslChange}\n aria-label=\"Lightness\"\n />\n <span class=\"input-label\">L</span>\n </div>\n ${this.alpha\n ? html`\n <div class=\"input-group\">\n <input\n type=\"number\"\n class=\"color-input\"\n part=\"input\"\n min=\"0\"\n max=\"100\"\n .value=${String(Math.round(this._hsv.a * 100))}\n ?disabled=${this.disabled}\n ?readonly=${this.readonly}\n @input=${this._handleAlphaInput}\n @change=${this._handleAlphaInputChange}\n aria-label=\"Alpha\"\n />\n <span class=\"input-label\">A</span>\n </div>\n `\n : nothing}\n </div>\n `;\n }\n\n /**\n * Renders the input controls container with format toggle button\n * Shows hex, rgb, or hsl inputs based on current input mode\n * @returns TemplateResult for inputs container\n */\n private _renderInputs() {\n return html`\n <div class=\"inputs-container\">\n ${this._inputMode === 'hex' ? this._renderHexInput() : nothing}\n ${this._inputMode === 'rgb' ? this._renderRgbInputs() : nothing}\n ${this._inputMode === 'hsl' ? this._renderHslInputs() : nothing}\n <button\n type=\"button\"\n class=\"format-toggle\"\n @click=${this._handleFormatToggle}\n ?disabled=${this.disabled}\n aria-label=\"Cycle color format (${this._inputMode.toUpperCase()})\"\n title=\"Cycle color format\"\n >\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n >\n <path\n d=\"M21.5 2v6h-6M2.5 22v-6h6M2 11.5a10 10 0 0 1 18.8-4.3M22 12.5a10 10 0 0 1-18.8 4.2\"\n />\n </svg>\n </button>\n </div>\n `;\n }\n\n /**\n * Renders predefined color swatches\n * Shows swatches from the swatches property or slotted content\n * @returns TemplateResult for swatches container or nothing\n */\n private _renderSwatches() {\n const hasSwatches = this.swatches.length > 0;\n const hasSlottedSwatches = this.querySelector('[slot=\"swatches\"]') !== null;\n\n if (!hasSwatches && !hasSlottedSwatches) return nothing;\n\n return html`\n <div\n class=\"swatches-container\"\n part=\"swatches\"\n role=\"listbox\"\n aria-label=\"Color swatches\"\n >\n <slot name=\"swatches\">\n ${this.swatches.map(\n (color) => html`\n <button\n type=\"button\"\n class=\"swatch\"\n part=\"swatch\"\n role=\"option\"\n style=\"background: ${color}\"\n @click=${() => this._handleSwatchClick(color)}\n @keydown=${(e: KeyboardEvent) =>\n this._handleSwatchKeydown(color, e)}\n ?disabled=${this.disabled}\n aria-label=\"${color}\"\n ></button>\n `\n )}\n </slot>\n </div>\n `;\n }\n\n /**\n * Renders the eyedropper button if API is supported\n * @returns TemplateResult for eyedropper button or nothing\n */\n private _renderEyedropper() {\n if (!this._eyedropperSupported) return nothing;\n\n return html`\n <button\n type=\"button\"\n class=\"eyedropper-button\"\n @click=${this._handleEyedropper}\n ?disabled=${this.disabled || this.readonly || this._isPickingColor}\n aria-label=\"Pick color from screen\"\n aria-busy=\"${this._isPickingColor}\"\n >\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n >\n <path d=\"M2 22l1-1h3l9-9m-3-3l3-3 5 5-3 3m-5-5l5 5M12.5 6.5l5 5\" />\n </svg>\n </button>\n `;\n }\n\n /**\n * Renders the complete color picker panel\n * Includes color area, sliders, preview, inputs, and swatches\n * @returns TemplateResult for picker panel\n */\n private _renderPicker() {\n return html`\n <div\n class=\"picker\"\n part=\"popover\"\n role=\"dialog\"\n aria-label=\"${this.label || 'Color picker'}\"\n >\n <div class=\"picker-body\">\n <div class=\"picker-main\">\n ${this._renderColorArea()} ${this._renderHueSlider()}\n </div>\n ${this._renderAlphaSlider()}\n <div class=\"picker-controls\">\n ${this._renderPreview()} ${this._renderInputs()}\n ${this._renderEyedropper()}\n </div>\n ${this._renderSwatches()}\n <slot name=\"footer\"></slot>\n </div>\n </div>\n `;\n }\n\n /**\n * Renders the trigger button to open the picker popover\n * Shows current color swatch and optional label\n * @returns TemplateResult for trigger button\n */\n private _renderTrigger() {\n const rgb = hsvToRgb(this._hsv);\n const currentColor = `rgba(${rgb.r}, ${rgb.g}, ${rgb.b}, ${this._hsv.a})`;\n const hasLabel = this.label || this.placeholder;\n\n return html`\n <button\n type=\"button\"\n class=\"trigger\"\n part=\"trigger\"\n role=\"button\"\n aria-haspopup=\"dialog\"\n aria-expanded=\"${this._open}\"\n aria-disabled=\"${this.disabled}\"\n tabindex=\"${this.disabled ? -1 : 0}\"\n ?disabled=${this.disabled}\n @click=${this._handleTriggerClick}\n @keydown=${this._handleTriggerKeydown}\n >\n <slot name=\"trigger\">\n <span\n class=\"trigger-swatch\"\n style=\"background: ${currentColor}\"\n ></span>\n ${hasLabel\n ? html`<span class=\"trigger-label\"\n >${this.label || this.placeholder}</span\n >`\n : nothing}\n </slot>\n </button>\n `;\n }\n\n render() {\n if (this.inline) {\n return this._renderPicker();\n }\n\n return html`\n <div class=\"color-picker color-picker--${this.size}\">\n ${this._renderTrigger()}\n ${this._open\n ? html`\n <div aria-live=\"polite\" aria-atomic=\"true\" class=\"sr-only\">\n Current color: ${this._formatOutput()}\n </div>\n ${this._renderPicker()}\n `\n : nothing}\n </div>\n ${this.name\n ? html`<input\n type=\"hidden\"\n name=\"${this.name}\"\n .value=${this._formatOutput()}\n />`\n : nothing}\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'bp-color-picker': BpColorPicker;\n }\n}\n"],"names":["colorPickerStyles","css","parseColor","value","parseHex","parseRgb","parseHsl","hex","r","g","b","a","rgbToHsv","rgb","match","hsl","h","s","l","hslToHsv","max","min","delta","v","hsvToRgb","hsv","c","x","m","sv","hsvToHsl","sl","roundAlpha","formatColorOutput","format","includeAlpha","hexR","hexG","hexB","hexA","BpColorPicker","LitElement","event","changedProperties","parsed","rect","y","step","handled","hue","alpha","input","channel","formats","currentIndex","color","result","hueColor","handleX","handleY","html","nothing","colorStart","colorEnd","currentColor","originalHsv","originalColor","origRgb","hasSwatches","hasSlottedSwatches","e","hasLabel","__decorateClass","property","booleanConverter","state","query","customElement"],"mappings":";;;AAcO,MAAMA,IAAoBC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"combobox.js","sources":["../../source/components/combobox/combobox.style.ts","../../source/components/combobox/combobox.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const comboboxStyles = css`\n /* Base styles */\n :host {\n display: block;\n font-family: var(--bp-font-family);\n }\n\n .combobox {\n position: relative;\n width: 100%;\n }\n\n .combobox__control {\n display: flex;\n align-items: center;\n position: relative;\n background-color: var(--bp-color-surface);\n border: var(--bp-border-width) solid var(--bp-color-border);\n border-radius: var(--bp-border-radius-md);\n transition: border-color var(--bp-transition-fast);\n }\n\n .combobox__control:hover:not(.combobox--disabled .combobox__control) {\n border-color: var(--bp-color-primary);\n }\n\n .combobox__control:focus-within {\n outline: var(--bp-focus-width) solid var(--bp-color-focus);\n outline-offset: var(--bp-focus-width);\n border-color: var(--bp-color-focus);\n }\n\n .combobox__input {\n flex: 1;\n min-width: 0;\n padding: var(--bp-spacing-sm) var(--bp-spacing-md);\n background: transparent;\n border: none;\n outline: none;\n color: var(--bp-color-text);\n font-family: var(--bp-font-family);\n font-size: var(--bp-font-size-base);\n }\n\n .combobox__input::placeholder {\n color: var(--bp-color-text-muted);\n }\n\n .combobox__input:disabled {\n cursor: not-allowed;\n }\n\n .combobox__indicators {\n display: flex;\n align-items: center;\n gap: var(--bp-spacing-xs);\n padding-right: var(--bp-spacing-sm);\n flex-shrink: 0;\n }\n\n .combobox__clear {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--bp-spacing-6);\n height: var(--bp-spacing-6);\n padding: 0;\n background: transparent;\n border: none;\n border-radius: var(--bp-border-radius-sm);\n color: var(--bp-color-text-muted);\n cursor: pointer;\n font-size: var(--bp-font-size-xl);\n line-height: 1;\n transition: all var(--bp-transition-fast);\n }\n\n .combobox__clear:hover {\n color: var(--bp-color-primary);\n background-color: color-mix(\n in srgb,\n var(--bp-color-primary) 8%,\n transparent\n );\n }\n\n .combobox__clear:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n }\n\n .combobox__dropdown-indicator {\n color: var(--bp-color-text-muted);\n font-size: var(--bp-font-size-xs);\n transition: transform var(--bp-transition-fast);\n user-select: none;\n }\n\n .combobox--open .combobox__dropdown-indicator {\n transform: rotate(180deg);\n }\n\n .combobox__dropdown {\n position: absolute;\n top: calc(100% + var(--bp-spacing-xs));\n left: 0;\n right: 0;\n z-index: var(--bp-z-dropdown);\n background-color: var(--bp-color-surface);\n border: var(--bp-border-width) solid var(--bp-color-border);\n border-top: calc(var(--bp-border-width) * 2) solid var(--bp-color-primary);\n border-radius: var(--bp-border-radius-md);\n box-shadow: var(--bp-shadow-md);\n max-height: calc(var(--bp-spacing-10) * 6);\n overflow-y: auto;\n opacity: 0;\n visibility: hidden;\n transform: translateY(calc(-1 * var(--bp-spacing-md)));\n transition:\n opacity var(--bp-transition-fast),\n transform var(--bp-transition-fast),\n visibility var(--bp-transition-fast);\n contain: layout style paint;\n }\n\n .combobox--open .combobox__dropdown {\n opacity: 1;\n visibility: visible;\n transform: translateY(0);\n }\n\n .combobox__options {\n list-style: none;\n margin: 0;\n padding: var(--bp-spacing-2xs);\n }\n\n .combobox__option {\n padding: var(--bp-spacing-sm) var(--bp-spacing-md);\n cursor: pointer;\n border-radius: var(--bp-border-radius-md);\n transition:\n background-color var(--bp-transition-fast),\n color var(--bp-transition-fast);\n }\n\n .combobox__option:hover {\n background-color: color-mix(\n in srgb,\n var(--bp-color-primary) 8%,\n transparent\n );\n }\n\n .combobox__option--focused {\n background-color: color-mix(\n in srgb,\n var(--bp-color-primary) 8%,\n transparent\n );\n outline: var(--bp-focus-width) solid var(--bp-color-primary);\n outline-offset: calc(-1 * var(--bp-focus-width));\n }\n\n .combobox__option--selected {\n background-color: color-mix(\n in srgb,\n var(--bp-color-primary) 8%,\n transparent\n );\n color: var(--bp-color-primary);\n }\n\n .combobox__option--selected:hover,\n .combobox__option--selected.combobox__option--focused {\n background-color: color-mix(\n in srgb,\n var(--bp-color-primary) 12%,\n transparent\n );\n }\n\n .combobox__option--empty {\n color: var(--bp-color-text-muted);\n cursor: default;\n text-align: center;\n padding: var(--bp-spacing-lg) var(--bp-spacing-md);\n font-style: italic;\n }\n\n .combobox__option--empty:hover {\n background-color: transparent;\n }\n\n /* Sizes */\n .combobox--sm .combobox__input {\n padding: var(--bp-spacing-2xs) var(--bp-spacing-xs);\n font-size: var(--bp-font-size-sm);\n }\n\n .combobox--sm .combobox__indicators {\n padding-right: var(--bp-spacing-xs);\n }\n\n .combobox--lg .combobox__input {\n padding: var(--bp-spacing-md) var(--bp-spacing-lg);\n font-size: var(--bp-font-size-lg);\n }\n\n .combobox--lg .combobox__indicators {\n padding-right: var(--bp-spacing-md);\n }\n\n /* Variants */\n .combobox--default .combobox__control {\n border-color: var(--bp-color-border);\n }\n\n .combobox--success .combobox__control {\n border-color: var(--bp-color-success);\n }\n\n .combobox--error .combobox__control {\n border-color: var(--bp-color-error);\n }\n\n .combobox--warning .combobox__control {\n border-color: var(--bp-color-warning);\n }\n\n .combobox--info .combobox__control {\n border-color: var(--bp-color-info);\n }\n\n .combobox--success\n .combobox__control:hover:not(.combobox--disabled .combobox__control) {\n border-color: var(--bp-color-success);\n }\n\n .combobox--error\n .combobox__control:hover:not(.combobox--disabled .combobox__control) {\n border-color: var(--bp-color-error);\n }\n\n .combobox--warning\n .combobox__control:hover:not(.combobox--disabled .combobox__control) {\n border-color: var(--bp-color-warning);\n }\n\n .combobox--info\n .combobox__control:hover:not(.combobox--disabled .combobox__control) {\n border-color: var(--bp-color-info);\n }\n\n /* States */\n .combobox--disabled .combobox__control {\n background-color: var(--bp-color-surface-subdued);\n cursor: not-allowed;\n opacity: 0.6;\n }\n\n .combobox--disabled .combobox__input {\n color: var(--bp-color-text-muted);\n }\n\n /* Hide slot */\n slot {\n display: none;\n }\n\n /* Hide hidden inputs */\n input[type='hidden'] {\n display: none;\n }\n\n /* iOS zoom prevention: ensure 16px minimum on touch devices */\n @media (max-width: 768px) {\n .combobox--sm .combobox__input {\n font-size: 16px;\n }\n }\n`;\n","import { LitElement, html, nothing } from 'lit';\nimport { customElement, property, state, query } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { repeat } from 'lit/directives/repeat.js';\nimport { comboboxStyles } from './combobox.style.js';\nimport { debounce } from '../../utilities/debounce.js';\nimport { memoizeOne } from '../../utilities/memoize.js';\n\nexport type ComboboxSize = 'sm' | 'md' | 'lg';\nexport type ComboboxVariant =\n | 'default'\n | 'success'\n | 'error'\n | 'warning'\n | 'info';\n\nexport interface ComboboxOption {\n value: string;\n label: string;\n}\n\n@customElement('bp-combobox')\nexport class BpCombobox extends LitElement {\n /** The current value of the combobox */\n @property({ type: String, reflect: true }) declare value: string;\n\n /** Name attribute for form submission */\n @property({ type: String }) declare name: string;\n\n /** Placeholder text when no value is selected */\n @property({ type: String }) declare placeholder: string;\n\n /** Whether the combobox is disabled */\n @property({ type: Boolean, reflect: true }) declare disabled: boolean;\n\n /** Whether the combobox is required */\n @property({ type: Boolean, reflect: true }) declare required: boolean;\n\n /** Size variant of the combobox */\n @property({ type: String, reflect: true }) declare size: ComboboxSize;\n\n /** Visual variant for validation states */\n @property({ type: String, reflect: true }) declare variant: ComboboxVariant;\n\n /** Whether to allow free-form input (not just from the options list) */\n @property({ type: Boolean }) declare allowCustomValue: boolean;\n\n /** Whether the dropdown is currently open */\n @state() private isOpen = false;\n\n /** Current search/filter text */\n @state() private searchText = '';\n\n /** Index of the focused option for keyboard navigation */\n @state() private focusedIndex = -1;\n\n /** Cached filtered options to avoid recomputation on every render */\n @state() private cachedFilteredOptions: ComboboxOption[] = [];\n\n /** Cached options from slotted elements */\n @state() private cachedOptions: ComboboxOption[] = [];\n\n /** Reference to the input element */\n @query('input[type=\"text\"]') private inputElement!: HTMLInputElement;\n\n /** Debounced filter computation for search input */\n private debouncedFilter = debounce(() => {\n this.cachedFilteredOptions = this.filterOptions(\n this.cachedOptions,\n this.searchText\n );\n }, 150);\n\n /**\n * Memoized filter computation.\n * Returns cached result when options array and searchText are the same references.\n */\n private filterOptions = memoizeOne(\n (options: ComboboxOption[], searchText: string): ComboboxOption[] => {\n if (!searchText.trim()) {\n return options;\n }\n\n const searchLower = searchText.toLowerCase();\n return options.filter((option) =>\n option.label.toLowerCase().includes(searchLower)\n );\n }\n );\n\n static styles = [comboboxStyles];\n\n constructor() {\n super();\n this.value = '';\n this.name = '';\n this.placeholder = 'Search or select...';\n this.disabled = false;\n this.required = false;\n this.size = 'md';\n this.variant = 'default';\n this.allowCustomValue = false;\n }\n\n connectedCallback() {\n super.connectedCallback();\n document.addEventListener('click', this.handleDocumentClick, {\n passive: true,\n });\n // Initialize search text with selected label and populate cached filtered options\n this.updateComplete.then(() => {\n this.cachedOptions = this.getOptions();\n this.updateSearchText();\n this.cachedFilteredOptions = this.filterOptions(\n this.cachedOptions,\n this.searchText\n );\n });\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n document.removeEventListener('click', this.handleDocumentClick, {\n passive: true,\n } as EventListenerOptions);\n this.debouncedFilter.cancel();\n }\n\n private updateSearchText() {\n if (!this.value) {\n this.searchText = '';\n return;\n }\n\n const options =\n this.cachedOptions.length > 0 ? this.cachedOptions : this.getOptions();\n const selectedOption = options.find((opt) => opt.value === this.value);\n if (selectedOption) {\n this.searchText = selectedOption.label;\n }\n }\n\n private handleDocumentClick = (event: MouseEvent) => {\n if (!this.contains(event.target as globalThis.Node)) {\n this.closeDropdown();\n }\n };\n\n private closeDropdown() {\n this.isOpen = false;\n this.focusedIndex = -1;\n this.debouncedFilter.cancel();\n this.updateSearchText();\n this.cachedFilteredOptions = this.filterOptions(\n this.cachedOptions,\n this.searchText\n );\n }\n\n private getOptions(): ComboboxOption[] {\n const slot = this.shadowRoot?.querySelector('slot');\n const assignedElements = slot?.assignedElements() || [];\n const options = assignedElements.filter(\n (el): el is globalThis.HTMLOptionElement => el.tagName === 'OPTION'\n );\n\n return options.map((option) => ({\n value: option.value || option.textContent || '',\n label: option.textContent || '',\n }));\n }\n\n /**\n * Returns the cached filtered options for rendering and keyboard navigation.\n */\n private getFilteredOptions(): ComboboxOption[] {\n return this.cachedFilteredOptions;\n }\n\n /**\n * Handle slot changes by refreshing the cached options.\n */\n private handleSlotChange = () => {\n this.cachedOptions = this.getOptions();\n this.cachedFilteredOptions = this.filterOptions(\n this.cachedOptions,\n this.searchText\n );\n };\n\n private handleInputFocus = () => {\n if (this.disabled) return;\n this.isOpen = true;\n this.focusedIndex = -1;\n };\n\n private handleInputClick = (event: MouseEvent) => {\n event.stopPropagation();\n if (this.disabled) return;\n this.isOpen = true;\n };\n\n private handleInputChange = (event: Event) => {\n const target = event.target as HTMLInputElement;\n this.searchText = target.value;\n this.isOpen = true;\n this.focusedIndex = -1;\n\n // Debounce the filter computation for search input\n this.debouncedFilter();\n\n // If allowCustomValue is true, update value immediately\n if (this.allowCustomValue) {\n const previousValue = this.value;\n this.value = this.searchText;\n\n this.dispatchEvent(\n new CustomEvent('bp-change', {\n detail: {\n value: this.value,\n previousValue,\n },\n bubbles: true,\n composed: true,\n })\n );\n }\n };\n\n private handleOptionClick = (option: ComboboxOption) => {\n if (this.disabled) return;\n\n const previousValue = this.value;\n this.value = option.value;\n this.searchText = option.label;\n this.isOpen = false;\n this.focusedIndex = -1;\n this.debouncedFilter.cancel();\n this.cachedFilteredOptions = this.filterOptions(\n this.cachedOptions,\n this.searchText\n );\n\n // Dispatch change event\n this.dispatchEvent(\n new CustomEvent('bp-change', {\n detail: {\n value: this.value,\n label: option.label,\n previousValue,\n },\n bubbles: true,\n composed: true,\n })\n );\n\n // Update hidden input for form submission\n const hiddenInput = this.shadowRoot?.querySelector('input[type=\"hidden\"]');\n if (hiddenInput) {\n (hiddenInput as HTMLInputElement).value = this.value;\n }\n\n // Return focus to input\n this.inputElement?.focus();\n };\n\n private handleInputKeyDown = (event: globalThis.KeyboardEvent) => {\n if (this.disabled) return;\n\n const filteredOptions = this.getFilteredOptions();\n\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault();\n if (!this.isOpen) {\n this.isOpen = true;\n this.focusedIndex = 0;\n } else {\n this.focusedIndex = Math.min(\n this.focusedIndex + 1,\n filteredOptions.length - 1\n );\n }\n break;\n\n case 'ArrowUp':\n event.preventDefault();\n if (!this.isOpen) {\n this.isOpen = true;\n this.focusedIndex = filteredOptions.length - 1;\n } else {\n this.focusedIndex = Math.max(this.focusedIndex - 1, 0);\n }\n break;\n\n case 'Enter':\n event.preventDefault();\n if (this.isOpen && this.focusedIndex >= 0) {\n const option = filteredOptions[this.focusedIndex];\n if (option) {\n this.handleOptionClick(option);\n }\n } else if (!this.isOpen) {\n this.isOpen = true;\n }\n break;\n\n case 'Escape':\n event.preventDefault();\n this.closeDropdown();\n break;\n\n case 'Tab':\n // Allow tab to close dropdown\n this.closeDropdown();\n break;\n }\n };\n\n private handleClear = (event: MouseEvent) => {\n event.stopPropagation();\n if (this.disabled) return;\n\n const previousValue = this.value;\n this.value = '';\n this.searchText = '';\n this.debouncedFilter.cancel();\n this.cachedFilteredOptions = this.filterOptions(\n this.cachedOptions,\n this.searchText\n );\n\n this.dispatchEvent(\n new CustomEvent('bp-change', {\n detail: {\n value: '',\n previousValue,\n },\n bubbles: true,\n composed: true,\n })\n );\n\n this.inputElement?.focus();\n };\n\n private renderDropdown() {\n const filteredOptions = this.getFilteredOptions();\n\n return html`\n <div class=\"combobox__dropdown\" id=\"listbox\" part=\"dropdown\">\n <ul class=\"combobox__options\" role=\"listbox\">\n ${filteredOptions.length === 0\n ? html`<li\n class=\"combobox__option combobox__option--empty\"\n role=\"option\"\n >\n No results found\n </li>`\n : repeat(\n filteredOptions,\n (opt) => opt.value,\n (opt, index) => {\n const isSelected = opt.value === this.value;\n const isFocused = index === this.focusedIndex;\n return html`\n <li\n class=${classMap({\n combobox__option: true,\n 'combobox__option--selected': isSelected,\n 'combobox__option--focused': isFocused,\n })}\n role=\"option\"\n aria-selected=${isSelected}\n @click=${() => this.handleOptionClick(opt)}\n part=\"option ${isSelected ? 'option-selected' : ''}\"\n >\n ${opt.label}\n </li>\n `;\n }\n )}\n </ul>\n </div>\n `;\n }\n\n render() {\n const hasValue = Boolean(this.value || this.searchText);\n\n return html`\n <div\n class=${classMap({\n combobox: true,\n 'combobox--open': this.isOpen,\n 'combobox--disabled': this.disabled,\n [`combobox--${this.size}`]: true,\n [`combobox--${this.variant}`]: true,\n })}\n >\n <div class=\"combobox__control\" part=\"control\">\n <input\n type=\"text\"\n class=\"combobox__input\"\n .value=${this.searchText}\n placeholder=${this.placeholder}\n ?disabled=${this.disabled}\n ?required=${this.required}\n @focus=${this.handleInputFocus}\n @click=${this.handleInputClick}\n @input=${this.handleInputChange}\n @keydown=${this.handleInputKeyDown}\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n aria-expanded=${this.isOpen}\n aria-autocomplete=\"list\"\n aria-controls=\"listbox\"\n aria-disabled=${this.disabled}\n part=\"input\"\n />\n\n <div class=\"combobox__indicators\">\n ${hasValue\n ? html`\n <button\n type=\"button\"\n class=\"combobox__clear\"\n @click=${this.handleClear}\n aria-label=\"Clear selection\"\n tabindex=\"-1\"\n ?disabled=${this.disabled}\n part=\"clear-button\"\n >\n ×\n </button>\n `\n : ''}\n <span class=\"combobox__dropdown-indicator\" part=\"indicator\">\n ▼\n </span>\n </div>\n </div>\n\n ${this.isOpen ? this.renderDropdown() : nothing}\n\n <!-- Hidden slot for options -->\n <slot @slotchange=${this.handleSlotChange}></slot>\n\n <!-- Hidden input for form submission -->\n ${this.name\n ? html`<input\n type=\"hidden\"\n name=\"${this.name}\"\n .value=${this.value}\n />`\n : ''}\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'bp-combobox': BpCombobox;\n }\n}\n"],"names":["comboboxStyles","css","BpCombobox","LitElement","debounce","memoizeOne","options","searchText","searchLower","option","event","target","previousValue","hiddenInput","filteredOptions","selectedOption","opt","el","html","repeat","index","isSelected","isFocused","classMap","hasValue","nothing","__decorateClass","property","state","query","customElement"],"mappings":";;;;;;AAEO,MAAMA,IAAiBC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;A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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"date-picker.js","sources":["../../source/components/date-picker/date-picker.style.ts","../../source/components/date-picker/date-picker.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const datePickerStyles = css`\n /* Base */\n .date-picker {\n position: relative;\n width: 100%;\n }\n\n .date-picker__input-wrapper {\n position: relative;\n display: flex;\n align-items: center;\n }\n\n .date-picker__input {\n flex: 1;\n padding: var(--bp-spacing-sm) var(--bp-spacing-md);\n padding-right: var(--bp-spacing-2xl);\n font-family: var(--bp-font-family);\n font-size: var(--bp-font-size-base);\n color: var(--bp-color-text);\n background-color: var(--bp-color-surface);\n border: var(--bp-border-width) solid var(--bp-color-border);\n border-radius: var(--bp-border-radius-md);\n cursor: pointer;\n transition:\n border-color var(--bp-transition-fast),\n box-shadow var(--bp-transition-fast);\n outline: none;\n }\n\n .date-picker__input:hover:not(:disabled) {\n border-color: var(--bp-color-primary);\n }\n\n .date-picker__input:focus {\n border-color: var(--bp-color-focus);\n box-shadow: 0 0 0 var(--bp-focus-width) var(--bp-color-focus);\n }\n\n .date-picker__input:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n .date-picker__input::placeholder {\n color: var(--bp-color-text-muted);\n }\n\n .date-picker__clear {\n position: absolute;\n right: var(--bp-spacing-2xl);\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--bp-spacing-lg);\n height: var(--bp-spacing-lg);\n padding: 0;\n font-size: var(--bp-font-size-sm);\n color: var(--bp-color-text-muted);\n background: none;\n border: none;\n border-radius: var(--bp-border-radius-sm);\n cursor: pointer;\n transition:\n color var(--bp-transition-fast),\n background-color var(--bp-transition-fast);\n }\n\n .date-picker__clear:hover {\n color: var(--bp-color-primary);\n background-color: color-mix(\n in srgb,\n var(--bp-color-primary) 8%,\n transparent\n );\n }\n\n .date-picker__indicator {\n position: absolute;\n right: var(--bp-spacing-md);\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--bp-spacing-lg);\n height: var(--bp-spacing-lg);\n color: var(--bp-color-text-muted);\n pointer-events: none;\n }\n\n /* Calendar */\n .date-picker__calendar {\n position: absolute;\n top: calc(100% + var(--bp-spacing-xs));\n left: 0;\n z-index: var(--bp-z-dropdown);\n min-width: var(--bp-spacing-2xl);\n padding: var(--bp-spacing-md);\n background-color: var(--bp-color-surface);\n border-top: calc(var(--bp-border-width) * 2) solid var(--bp-color-primary);\n border-right: var(--bp-border-width) solid var(--bp-color-border);\n border-bottom: var(--bp-border-width) solid var(--bp-color-border);\n border-left: var(--bp-border-width) solid var(--bp-color-border);\n border-radius: var(--bp-border-radius-md);\n box-shadow: var(--bp-shadow-md);\n }\n\n /* Header */\n .date-picker__header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: var(--bp-spacing-sm);\n }\n\n .date-picker__nav-button {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--bp-spacing-xl);\n height: var(--bp-spacing-xl);\n padding: 0;\n font-size: var(--bp-font-size-xl);\n color: var(--bp-color-text);\n background: none;\n border: none;\n border-radius: var(--bp-border-radius-sm);\n cursor: pointer;\n transition: background-color var(--bp-transition-fast);\n }\n\n .date-picker__nav-button:hover {\n background-color: color-mix(\n in srgb,\n var(--bp-color-primary) 8%,\n transparent\n );\n }\n\n .date-picker__month-year {\n flex: 1;\n font-size: var(--bp-font-size-base);\n font-weight: var(--bp-font-weight-semibold);\n color: var(--bp-color-text);\n text-align: center;\n }\n\n /* Weekdays */\n .date-picker__weekdays {\n display: grid;\n grid-template-columns: repeat(7, 1fr);\n gap: var(--bp-spacing-xs);\n margin-bottom: var(--bp-spacing-xs);\n }\n\n .date-picker__weekday {\n padding: var(--bp-spacing-xs);\n font-size: var(--bp-font-size-xs);\n font-weight: var(--bp-font-weight-semibold);\n color: var(--bp-color-text-muted);\n text-align: center;\n text-transform: uppercase;\n }\n\n /* Days */\n .date-picker__days {\n display: grid;\n grid-template-columns: repeat(7, 1fr);\n gap: var(--bp-spacing-xs);\n }\n\n .date-picker__day {\n aspect-ratio: 1;\n padding: var(--bp-spacing-xs);\n font-size: var(--bp-font-size-sm);\n color: var(--bp-color-text);\n background: none;\n border: none;\n border-radius: var(--bp-border-radius-sm);\n cursor: pointer;\n transition:\n background-color var(--bp-transition-fast),\n color var(--bp-transition-fast);\n }\n\n .date-picker__day:hover:not(:disabled) {\n background-color: color-mix(\n in srgb,\n var(--bp-color-primary) 8%,\n transparent\n );\n }\n\n .date-picker__day--other-month {\n color: var(--bp-color-text-muted);\n opacity: 0.5;\n }\n\n .date-picker__day--today {\n font-weight: var(--bp-font-weight-bold);\n color: var(--bp-color-primary);\n background-color: color-mix(\n in srgb,\n var(--bp-color-primary) 4%,\n transparent\n );\n }\n\n .date-picker__day--selected {\n color: var(--bp-color-text-inverse);\n background-color: var(--bp-color-primary);\n }\n\n .date-picker__day--selected:hover:not(:disabled) {\n background-color: var(--bp-color-primary-hover);\n }\n\n .date-picker__day--focused {\n outline: var(--bp-focus-width) solid var(--bp-color-primary);\n outline-offset: calc(-1 * var(--bp-focus-width));\n }\n\n .date-picker__day--disabled {\n color: var(--bp-color-text-muted);\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n /* Sizes */\n .date-picker--sm .date-picker__input {\n padding: var(--bp-spacing-xs) var(--bp-spacing-sm);\n padding-right: var(--bp-spacing-xl);\n font-size: var(--bp-font-size-sm);\n }\n\n .date-picker--sm .date-picker__indicator {\n right: var(--bp-spacing-xs);\n width: var(--bp-spacing-md);\n height: var(--bp-spacing-md);\n }\n\n .date-picker--sm .date-picker__clear {\n right: var(--bp-spacing-xl);\n width: var(--bp-spacing-md);\n height: var(--bp-spacing-md);\n }\n\n .date-picker--sm .date-picker__calendar {\n padding: var(--bp-spacing-sm);\n }\n\n .date-picker--sm .date-picker__nav-button {\n width: var(--bp-spacing-lg);\n height: var(--bp-spacing-lg);\n font-size: var(--bp-font-size-lg);\n }\n\n .date-picker--sm .date-picker__month-year {\n font-size: var(--bp-font-size-sm);\n }\n\n .date-picker--sm .date-picker__header {\n margin-bottom: var(--bp-spacing-xs);\n }\n\n .date-picker--sm .date-picker__weekdays {\n gap: var(--bp-spacing-2xs);\n margin-bottom: var(--bp-spacing-2xs);\n }\n\n .date-picker--sm .date-picker__weekday {\n padding: var(--bp-spacing-2xs);\n font-size: var(--bp-font-size-xs);\n }\n\n .date-picker--sm .date-picker__days {\n gap: var(--bp-spacing-2xs);\n }\n\n .date-picker--sm .date-picker__day {\n padding: var(--bp-spacing-2xs);\n font-size: var(--bp-font-size-xs);\n }\n\n .date-picker--lg .date-picker__input {\n padding: var(--bp-spacing-md) var(--bp-spacing-lg);\n padding-right: var(--bp-spacing-24);\n font-size: var(--bp-font-size-lg);\n }\n\n .date-picker--lg .date-picker__indicator {\n right: var(--bp-spacing-md);\n width: var(--bp-spacing-xl);\n height: var(--bp-spacing-xl);\n }\n\n .date-picker--lg .date-picker__clear {\n right: var(--bp-spacing-24);\n width: var(--bp-spacing-xl);\n height: var(--bp-spacing-xl);\n }\n\n .date-picker--lg .date-picker__calendar {\n padding: var(--bp-spacing-lg);\n }\n\n .date-picker--lg .date-picker__nav-button {\n width: var(--bp-spacing-2xl);\n height: var(--bp-spacing-2xl);\n font-size: var(--bp-font-size-2xl);\n }\n\n .date-picker--lg .date-picker__month-year {\n font-size: var(--bp-font-size-lg);\n }\n\n .date-picker--lg .date-picker__header {\n margin-bottom: var(--bp-spacing-md);\n }\n\n .date-picker--lg .date-picker__weekdays {\n gap: var(--bp-spacing-sm);\n margin-bottom: var(--bp-spacing-sm);\n }\n\n .date-picker--lg .date-picker__weekday {\n padding: var(--bp-spacing-sm);\n font-size: var(--bp-font-size-sm);\n }\n\n .date-picker--lg .date-picker__days {\n gap: var(--bp-spacing-sm);\n }\n\n .date-picker--lg .date-picker__day {\n padding: var(--bp-spacing-sm);\n font-size: var(--bp-font-size-base);\n }\n\n /* States */\n .date-picker--disabled {\n opacity: 0.6;\n pointer-events: none;\n }\n`;\n","import { LitElement, html } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { datePickerStyles } from './date-picker.style.js';\n\nexport type DatePickerSize = 'sm' | 'md' | 'lg';\n\n/**\n * A calendar-based date picker component.\n *\n * @element bp-date-picker\n *\n * @fires bp-change - Fired when the selected date changes\n *\n * @csspart control - The outer container\n * @csspart input - The text input field\n * @csspart indicator - The calendar icon\n * @csspart clear-button - The clear button\n * @csspart calendar - The calendar dropdown\n * @csspart header - The calendar header with navigation\n * @csspart nav-button - Month/year navigation buttons\n * @csspart month-year - Month and year display\n * @csspart weekday - Day of week header cell\n * @csspart day - Individual day cell\n */\n@customElement('bp-date-picker')\nexport class BpDatePicker extends LitElement {\n @property({ type: String, reflect: true }) declare value: string;\n @property({ type: String }) declare name: string;\n @property({ type: String }) declare label: string;\n @property({ type: String }) declare placeholder: string;\n @property({ type: Boolean, reflect: true }) declare disabled: boolean;\n @property({ type: Boolean, reflect: true }) declare required: boolean;\n @property({ type: String, reflect: true }) declare size: DatePickerSize;\n @property({ type: String }) declare min: string;\n @property({ type: String }) declare max: string;\n @property({ type: String, attribute: 'first-day-of-week' })\n declare firstDayOfWeek: '0' | '1';\n\n @state() private isOpen = false;\n @state() private displayMonth = new Date().getMonth();\n @state() private displayYear = new Date().getFullYear();\n @state() private focusedDate: Date | null = null;\n\n static styles = [datePickerStyles];\n\n constructor() {\n super();\n this.value = '';\n this.name = '';\n this.label = '';\n this.placeholder = 'Select date...';\n this.disabled = false;\n this.required = false;\n this.size = 'md';\n this.min = '';\n this.max = '';\n this.firstDayOfWeek = '0';\n }\n\n private handleInputClick() {\n if (!this.disabled) {\n this.isOpen = !this.isOpen;\n }\n }\n\n private handlePreviousMonth() {\n if (this.displayMonth === 0) {\n this.displayMonth = 11;\n this.displayYear--;\n } else {\n this.displayMonth--;\n }\n }\n\n private handleNextMonth() {\n if (this.displayMonth === 11) {\n this.displayMonth = 0;\n this.displayYear++;\n } else {\n this.displayMonth++;\n }\n }\n\n private handleDateSelect(date: Date) {\n const previousValue = this.value;\n this.value = this.formatDate(date);\n this.isOpen = false;\n this.focusedDate = null;\n\n this.dispatchEvent(\n new CustomEvent('bp-change', {\n detail: {\n value: this.value,\n previousValue,\n date,\n },\n bubbles: true,\n composed: true,\n })\n );\n }\n\n private handleClear(e: Event) {\n e.stopPropagation();\n const previousValue = this.value;\n this.value = '';\n this.focusedDate = null;\n\n this.dispatchEvent(\n new CustomEvent('bp-change', {\n detail: {\n value: '',\n previousValue,\n date: null,\n },\n bubbles: true,\n composed: true,\n })\n );\n }\n\n private handleKeyDown(e: Event) {\n const event = e as globalThis.KeyboardEvent;\n if (!this.isOpen) {\n if (\n event.key === 'ArrowDown' ||\n event.key === 'Enter' ||\n event.key === ' '\n ) {\n event.preventDefault();\n this.isOpen = true;\n this.focusedDate = this.getSelectedDate() || this.getTodayDate();\n }\n return;\n }\n\n const currentFocus =\n this.focusedDate || this.getSelectedDate() || this.getTodayDate();\n\n switch (event.key) {\n case 'Escape':\n event.preventDefault();\n this.isOpen = false;\n this.focusedDate = null;\n break;\n\n case 'ArrowLeft':\n event.preventDefault();\n this.focusedDate = this.addDays(currentFocus, -1);\n this.updateDisplayMonth(this.focusedDate);\n break;\n\n case 'ArrowRight':\n event.preventDefault();\n this.focusedDate = this.addDays(currentFocus, 1);\n this.updateDisplayMonth(this.focusedDate);\n break;\n\n case 'ArrowUp':\n event.preventDefault();\n this.focusedDate = this.addDays(currentFocus, -7);\n this.updateDisplayMonth(this.focusedDate);\n break;\n\n case 'ArrowDown':\n event.preventDefault();\n this.focusedDate = this.addDays(currentFocus, 7);\n this.updateDisplayMonth(this.focusedDate);\n break;\n\n case 'Home':\n event.preventDefault();\n this.focusedDate = new Date(\n currentFocus.getFullYear(),\n currentFocus.getMonth(),\n 1\n );\n break;\n\n case 'End':\n event.preventDefault();\n this.focusedDate = new Date(\n currentFocus.getFullYear(),\n currentFocus.getMonth() + 1,\n 0\n );\n break;\n\n case 'PageUp':\n event.preventDefault();\n this.focusedDate = this.addMonths(\n currentFocus,\n event.shiftKey ? -12 : -1\n );\n this.updateDisplayMonth(this.focusedDate);\n break;\n\n case 'PageDown':\n event.preventDefault();\n this.focusedDate = this.addMonths(\n currentFocus,\n event.shiftKey ? 12 : 1\n );\n this.updateDisplayMonth(this.focusedDate);\n break;\n\n case 'Enter':\n case ' ':\n event.preventDefault();\n if (this.focusedDate && !this.isDateDisabled(this.focusedDate)) {\n this.handleDateSelect(this.focusedDate);\n }\n break;\n }\n }\n\n private updateDisplayMonth(date: Date) {\n this.displayMonth = date.getMonth();\n this.displayYear = date.getFullYear();\n }\n\n private addDays(date: Date, days: number): Date {\n const result = new Date(date);\n result.setDate(result.getDate() + days);\n return result;\n }\n\n private addMonths(date: Date, months: number): Date {\n const result = new Date(date);\n result.setMonth(result.getMonth() + months);\n return result;\n }\n\n private formatDate(date: Date): string {\n const year = date.getFullYear();\n const month = String(date.getMonth() + 1).padStart(2, '0');\n const day = String(date.getDate()).padStart(2, '0');\n return `${year}-${month}-${day}`;\n }\n\n private parseDate(value: string): Date | null {\n if (!value) return null;\n // Parse YYYY-MM-DD format in local timezone to avoid UTC offset issues\n const match = value.match(/^(\\d{4})-(\\d{2})-(\\d{2})$/);\n if (match) {\n const [, year, month, day] = match;\n const date = new Date(\n parseInt(year, 10),\n parseInt(month, 10) - 1,\n parseInt(day, 10)\n );\n date.setHours(0, 0, 0, 0);\n return date;\n }\n // Fallback for other formats\n const date = new Date(value);\n if (isNaN(date.getTime())) {\n console.warn(\n `bp-date-picker: Invalid date format \"${value}\". Expected YYYY-MM-DD.`\n );\n return null;\n }\n return date;\n }\n\n private getSelectedDate(): Date | null {\n return this.parseDate(this.value);\n }\n\n private getTodayDate(): Date {\n const today = new Date();\n today.setHours(0, 0, 0, 0);\n return today;\n }\n\n private isSameDay(date1: Date, date2: Date): boolean {\n return (\n date1.getFullYear() === date2.getFullYear() &&\n date1.getMonth() === date2.getMonth() &&\n date1.getDate() === date2.getDate()\n );\n }\n\n private isDateDisabled(date: Date): boolean {\n if (this.min) {\n const minDate = this.parseDate(this.min);\n if (minDate && date < minDate) return true;\n }\n if (this.max) {\n const maxDate = this.parseDate(this.max);\n if (maxDate && date > maxDate) return true;\n }\n return false;\n }\n\n private getCalendarDays(): Date[] {\n const CALENDAR_GRID_SIZE = 42; // 6 weeks × 7 days for consistent grid\n const firstDay = new Date(this.displayYear, this.displayMonth, 1);\n const lastDay = new Date(this.displayYear, this.displayMonth + 1, 0);\n\n const startDayOfWeek = this.firstDayOfWeek === '1' ? 1 : 0;\n let dayOfWeek = firstDay.getDay() - startDayOfWeek;\n if (dayOfWeek < 0) dayOfWeek += 7;\n\n const days: Date[] = [];\n\n // Add previous month's days\n for (let i = dayOfWeek - 1; i >= 0; i--) {\n const date = new Date(this.displayYear, this.displayMonth, -i);\n days.push(date);\n }\n\n // Add current month's days\n for (let i = 1; i <= lastDay.getDate(); i++) {\n days.push(new Date(this.displayYear, this.displayMonth, i));\n }\n\n // Add next month's days to complete the grid\n const remainingDays = CALENDAR_GRID_SIZE - days.length;\n for (let i = 1; i <= remainingDays; i++) {\n days.push(new Date(this.displayYear, this.displayMonth + 1, i));\n }\n\n return days;\n }\n\n public checkValidity(): boolean {\n // Check required validation\n if (this.required && !this.value) {\n return false;\n }\n // Check min/max validation\n if (this.value) {\n const date = this.parseDate(this.value);\n if (date && this.isDateDisabled(date)) {\n return false;\n }\n }\n return true;\n }\n\n private getWeekdayNames(): string[] {\n const weekdays = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];\n if (this.firstDayOfWeek === '1') {\n return [...weekdays.slice(1), weekdays[0]];\n }\n return weekdays;\n }\n\n private getMonthName(month: number): string {\n return new Date(2000, month, 1).toLocaleString('default', {\n month: 'long',\n });\n }\n\n private getFormattedValue(): string {\n const selectedDate = this.getSelectedDate();\n if (!selectedDate) return '';\n return selectedDate.toLocaleDateString();\n }\n\n render() {\n const selectedDate = this.getSelectedDate();\n const today = this.getTodayDate();\n const calendarDays = this.getCalendarDays();\n const weekdays = this.getWeekdayNames();\n const hasValue = !!this.value;\n\n const datePickerClasses = {\n 'date-picker': true,\n 'date-picker--open': this.isOpen,\n 'date-picker--disabled': this.disabled,\n [`date-picker--${this.size}`]: true,\n };\n\n return html`\n <div class=${classMap(datePickerClasses)} part=\"control\">\n <div class=\"date-picker__input-wrapper\">\n <input\n type=\"text\"\n class=\"date-picker__input\"\n part=\"input\"\n .value=${this.getFormattedValue()}\n placeholder=${this.placeholder}\n ?disabled=${this.disabled}\n ?required=${this.required}\n readonly\n @click=${this.handleInputClick}\n @keydown=${this.handleKeyDown}\n role=\"combobox\"\n aria-haspopup=\"grid\"\n aria-expanded=${this.isOpen}\n aria-disabled=${this.disabled}\n aria-label=${this.label || this.placeholder || 'Date picker'}\n />\n ${hasValue && !this.disabled\n ? html`\n <button\n type=\"button\"\n class=\"date-picker__clear\"\n part=\"clear-button\"\n @click=${this.handleClear}\n aria-label=\"Clear date\"\n tabindex=\"-1\"\n >\n ✕\n </button>\n `\n : ''}\n <div class=\"date-picker__indicator\" part=\"indicator\">\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M5 2V4M11 2V4M3 6H13M4 4H12C12.5523 4 13 4.44772 13 5V13C13 13.5523 12.5523 14 12 14H4C3.44772 14 3 13.5523 3 13V5C3 4.44772 3.44772 4 4 4Z\"\n stroke=\"currentColor\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n </div>\n </div>\n\n ${this.isOpen\n ? html`\n <div class=\"date-picker__calendar\" part=\"calendar\" role=\"grid\">\n <div class=\"date-picker__header\" part=\"header\">\n <button\n type=\"button\"\n class=\"date-picker__nav-button\"\n part=\"nav-button\"\n @click=${this.handlePreviousMonth}\n aria-label=\"Previous month\"\n tabindex=\"-1\"\n >\n ‹\n </button>\n <div class=\"date-picker__month-year\" part=\"month-year\">\n ${this.getMonthName(this.displayMonth)} ${this.displayYear}\n </div>\n <button\n type=\"button\"\n class=\"date-picker__nav-button\"\n part=\"nav-button\"\n @click=${this.handleNextMonth}\n aria-label=\"Next month\"\n tabindex=\"-1\"\n >\n ›\n </button>\n </div>\n\n <div class=\"date-picker__weekdays\">\n ${weekdays.map(\n (day) => html`\n <div\n class=\"date-picker__weekday\"\n part=\"weekday\"\n role=\"columnheader\"\n >\n ${day}\n </div>\n `\n )}\n </div>\n\n <div class=\"date-picker__days\">\n ${calendarDays.map((date) => {\n const isCurrentMonth =\n date.getMonth() === this.displayMonth;\n const isSelected =\n selectedDate && this.isSameDay(date, selectedDate);\n const isToday = this.isSameDay(date, today);\n const isFocused =\n this.focusedDate &&\n this.isSameDay(date, this.focusedDate);\n const isDisabled = this.isDateDisabled(date);\n\n const dayClasses = {\n 'date-picker__day': true,\n 'date-picker__day--other-month': !isCurrentMonth,\n 'date-picker__day--selected': !!isSelected,\n 'date-picker__day--today': isToday,\n 'date-picker__day--focused': !!isFocused,\n 'date-picker__day--disabled': isDisabled,\n };\n\n return html`\n <button\n type=\"button\"\n class=${classMap(dayClasses)}\n part=\"day\"\n @click=${() =>\n !isDisabled && this.handleDateSelect(date)}\n ?disabled=${isDisabled}\n tabindex=\"-1\"\n role=\"gridcell\"\n aria-selected=${!!isSelected}\n aria-label=${date.toLocaleDateString()}\n >\n ${date.getDate()}\n </button>\n `;\n })}\n </div>\n </div>\n `\n : ''}\n ${this.name\n ? html`\n <input type=\"hidden\" name=${this.name} .value=${this.value} />\n `\n : ''}\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'bp-date-picker': BpDatePicker;\n }\n}\n"],"names":["datePickerStyles","css","BpDatePicker","LitElement","date","previousValue","event","currentFocus","days","result","months","year","month","day","value","match","today","date1","date2","minDate","maxDate","firstDay","lastDay","startDayOfWeek","dayOfWeek","i","remainingDays","weekdays","selectedDate","calendarDays","hasValue","datePickerClasses","html","classMap","isCurrentMonth","isSelected","isToday","isFocused","isDisabled","__decorateClass","property","state","customElement"],"mappings":";;;AAEO,MAAMA,IAAmBC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"divider.js","sources":["../../source/components/divider/divider.style.ts","../../source/components/divider/divider.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const dividerStyles = css`\n /* Base styles */\n :host {\n display: block;\n }\n\n :host([orientation='vertical']) {\n display: inline-flex;\n height: 100%;\n }\n\n .divider {\n display: flex;\n align-items: center;\n font-family: var(--bp-font-family);\n font-size: var(--bp-font-size-xs);\n color: var(--bp-color-text-muted);\n }\n\n .divider__line {\n flex: 1;\n border: none;\n border-top: var(--bp-border-width) solid var(--bp-color-border);\n transition:\n border-color 150ms ease,\n border-width 150ms ease;\n }\n\n .divider__content {\n display: inline-flex;\n padding: 0 var(--bp-spacing-md);\n white-space: nowrap;\n min-width: fit-content;\n }\n\n .divider__content {\n font-weight: var(--bp-font-weight-semibold);\n text-transform: uppercase;\n letter-spacing: 0.05em;\n color: var(--bp-color-text-muted);\n }\n\n /* Orientations */\n .divider--horizontal {\n width: 100%;\n flex-direction: row;\n }\n\n .divider--vertical {\n height: 100%;\n flex-direction: column;\n align-self: stretch;\n }\n\n .divider--vertical .divider__line {\n width: var(--bp-border-width);\n height: auto;\n border-top: none;\n border-left: var(--bp-border-width) solid var(--bp-color-border);\n }\n\n /* Spacing */\n .divider--spacing-sm {\n margin: var(--bp-spacing-sm) 0;\n }\n\n .divider--spacing-sm.divider--vertical {\n margin: 0 var(--bp-spacing-sm);\n }\n\n .divider--spacing-md {\n margin: var(--bp-spacing-md) 0;\n }\n\n .divider--spacing-md.divider--vertical {\n margin: 0 var(--bp-spacing-md);\n }\n\n .divider--spacing-lg {\n margin: var(--bp-spacing-lg) 0;\n }\n\n .divider--spacing-lg.divider--vertical {\n margin: 0 var(--bp-spacing-lg);\n }\n\n /* Variants */\n .divider__line--dashed {\n border-top-style: dashed;\n }\n\n .divider__line--dotted {\n border-top-style: dotted;\n }\n\n .divider--vertical .divider__line--dashed {\n border-top-style: none;\n border-left-style: dashed;\n }\n\n .divider--vertical .divider__line--dotted {\n border-top-style: none;\n border-left-style: dotted;\n }\n\n /* Color variants */\n :host([color='default']) .divider__line {\n border-color: var(--bp-color-border);\n }\n\n :host([color='subtle']) .divider__line {\n border-color: var(--bp-color-border);\n opacity: 0.5;\n }\n\n :host([color='accent']) .divider__line {\n border-color: var(--bp-color-primary);\n }\n\n /* Weight variants */\n :host([weight='thin']) .divider__line {\n border-top-width: var(--bp-border-width);\n }\n\n :host([weight='medium']) .divider__line {\n border-top-width: calc(var(--bp-border-width) * 2);\n }\n\n :host([weight='thick']) .divider__line {\n border-top-width: calc(var(--bp-border-width) * 3);\n }\n\n :host([weight='thin'][orientation='vertical']) .divider__line {\n border-left-width: var(--bp-border-width);\n border-top-width: 0;\n }\n\n :host([weight='medium'][orientation='vertical']) .divider__line {\n border-left-width: calc(var(--bp-border-width) * 2);\n border-top-width: 0;\n }\n\n :host([weight='thick'][orientation='vertical']) .divider__line {\n border-left-width: calc(var(--bp-border-width) * 3);\n border-top-width: 0;\n }\n`;\n","import { LitElement, html, nothing } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { dividerStyles } from './divider.style.js';\n\nexport type DividerOrientation = 'horizontal' | 'vertical';\nexport type DividerSpacing = 'sm' | 'md' | 'lg';\nexport type DividerVariant = 'solid' | 'dashed' | 'dotted';\nexport type DividerColor = 'default' | 'subtle' | 'accent';\nexport type DividerWeight = 'thin' | 'medium' | 'thick';\n\n/**\n * A divider component that provides visual separation between content sections.\n * Supports both horizontal and vertical orientations with optional text labels.\n */\n@customElement('bp-divider')\nexport class BpDivider extends LitElement {\n /**\n * Orientation of the divider.\n * @type {'horizontal' | 'vertical'}\n * @default 'horizontal'\n */\n @property({ type: String, reflect: true })\n declare orientation: DividerOrientation;\n\n /**\n * Spacing variant for the divider.\n * @type {'sm' | 'md' | 'lg'}\n * @default 'md'\n */\n @property({ type: String, reflect: true }) declare spacing: DividerSpacing;\n\n /**\n * Visual variant of the divider line.\n * @type {'solid' | 'dashed' | 'dotted'}\n * @default 'solid'\n */\n @property({ type: String, reflect: true }) declare variant: DividerVariant;\n\n /**\n * Color variant for the divider line.\n * @type {'default' | 'subtle' | 'accent'}\n * @default 'default'\n */\n @property({ type: String, reflect: true }) declare color: DividerColor;\n\n /**\n * Border weight for the divider line.\n * @type {'thin' | 'medium' | 'thick'}\n * @default 'thin'\n */\n @property({ type: String, reflect: true }) declare weight: DividerWeight;\n\n /** Whether the default slot has content. */\n @property({ attribute: false }) declare hasContent: boolean;\n\n static styles = [dividerStyles];\n\n constructor() {\n super();\n this.orientation = 'horizontal';\n this.spacing = 'md';\n this.variant = 'solid';\n this.color = 'default';\n this.weight = 'thin';\n this.hasContent = false;\n }\n\n private handleSlotChange = (event: Event) => {\n const slot = event.target as HTMLElement & {\n assignedNodes: (options?: { flatten?: boolean }) => Node[];\n };\n const nodes = slot.assignedNodes({ flatten: true });\n this.hasContent = nodes.some(\n (node) =>\n node.nodeType === Node.ELEMENT_NODE ||\n (node.nodeType === Node.TEXT_NODE && node.textContent?.trim() !== '')\n );\n };\n\n render() {\n return html`\n <div\n class=\"divider divider--${this.orientation} divider--spacing-${this\n .spacing}\"\n role=\"separator\"\n aria-orientation=\"${this.orientation}\"\n part=\"divider\"\n >\n <span\n class=\"divider__line divider__line--${this.variant}\"\n part=\"line\"\n ></span>\n ${this.orientation === 'horizontal'\n ? html`\n ${this.hasContent\n ? html`<span class=\"divider__content\" part=\"content\">\n <slot @slotchange=${this.handleSlotChange}></slot>\n </span>\n <span\n class=\"divider__line divider__line--${this.variant}\"\n part=\"line\"\n ></span>`\n : html`<slot @slotchange=${this.handleSlotChange}></slot>`}\n `\n : nothing}\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'bp-divider': BpDivider;\n }\n}\n"],"names":["dividerStyles","css","BpDivider","LitElement","event","nodes","node","html","nothing","__decorateClass","property","customElement"],"mappings":";;AAEO,MAAMA,IAAgBC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;ACatB,IAAMC,IAAN,cAAwBC,EAAW;AAAA,EA0CxC,cAAc;AACZ,UAAA,GASF,KAAQ,mBAAmB,CAACC,MAAiB;AAI3C,YAAMC,IAHOD,EAAM,OAGA,cAAc,EAAE,SAAS,IAAM;AAClD,WAAK,aAAaC,EAAM;AAAA,QACtB,CAACC,MACCA,EAAK,aAAa,KAAK,gBACtBA,EAAK,aAAa,KAAK,aAAaA,EAAK,aAAa,WAAW;AAAA,MAAA;AAAA,IAExE,GAlBE,KAAK,cAAc,cACnB,KAAK,UAAU,MACf,KAAK,UAAU,SACf,KAAK,QAAQ,WACb,KAAK,SAAS,QACd,KAAK,aAAa;AAAA,EACpB;AAAA,EAcA,SAAS;AACP,WAAOC;AAAA;AAAA,kCAEuB,KAAK,WAAW,qBAAqB,KAC5D,OAAO;AAAA;AAAA,4BAEU,KAAK,WAAW;AAAA;AAAA;AAAA;AAAA,gDAII,KAAK,OAAO;AAAA;AAAA;AAAA,UAGlD,KAAK,gBAAgB,eACnBA;AAAA,gBACI,KAAK,aACHA;AAAA,0CACwB,KAAK,gBAAgB;AAAA;AAAA;AAAA,4DAGH,KAAK,OAAO;AAAA;AAAA,gCAGtDA,sBAAyB,KAAK,gBAAgB,UAAU;AAAA,gBAE9DC,CAAO;AAAA;AAAA;AAAA,EAGjB;AACF;AA7FaN,EAwCJ,SAAS,CAACF,CAAa;AAjCtBS,EAAA;AAAA,EADPC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAN9BR,EAOH,WAAA,eAAA,CAAA;AAO2CO,EAAA;AAAA,EAAlDC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAd9BR,EAcwC,WAAA,WAAA,CAAA;AAOAO,EAAA;AAAA,EAAlDC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GArB9BR,EAqBwC,WAAA,WAAA,CAAA;AAOAO,EAAA;AAAA,EAAlDC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GA5B9BR,EA4BwC,WAAA,SAAA,CAAA;AAOAO,EAAA;AAAA,EAAlDC,EAAS,EAAE,MAAM,QAAQ,SAAS,IAAM;AAAA,GAnC9BR,EAmCwC,WAAA,UAAA,CAAA;AAGXO,EAAA;AAAA,EAAvCC,EAAS,EAAE,WAAW,GAAA,CAAO;AAAA,GAtCnBR,EAsC6B,WAAA,cAAA,CAAA;AAtC7BA,IAANO,EAAA;AAAA,EADNE,EAAc,YAAY;AAAA,GACdT,CAAA;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"drawer.js","sources":["../../source/components/drawer/drawer.style.ts","../../source/components/drawer/drawer.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const drawerStyles = css`\n /* Base styles */\n :host {\n display: contents;\n }\n\n .drawer {\n font-family: var(--bp-font-family);\n font-size: var(--bp-font-size-base);\n color: var(--bp-color-text);\n }\n\n /* Overlay mode */\n .drawer--overlay {\n position: fixed;\n inset: 0;\n z-index: var(--bp-z-modal);\n pointer-events: none;\n }\n\n .drawer--overlay.drawer--open {\n pointer-events: auto;\n }\n\n /* Backdrop */\n .backdrop {\n position: absolute;\n inset: 0;\n background-color: oklch(from var(--bp-color-text) l c h / 0.5);\n opacity: 0;\n transition: opacity var(--bp-transition-base) ease-out;\n }\n\n .backdrop--visible {\n opacity: 1;\n }\n\n /* Panel base */\n .panel {\n position: absolute;\n display: flex;\n flex-direction: column;\n background-color: var(--bp-color-surface);\n box-shadow: var(--bp-shadow-xl);\n transition: transform var(--bp-transition-base) ease-out;\n overflow: hidden;\n }\n\n .drawer--overlay .panel:focus {\n outline: none;\n }\n\n /* Horizontal drawers (left/right) */\n .drawer--horizontal .panel {\n top: 0;\n bottom: 0;\n height: 100%;\n }\n\n .drawer--left .panel {\n left: 0;\n transform: translateX(-100%);\n }\n\n .drawer--left .panel--open {\n transform: translateX(0);\n }\n\n .drawer--right .panel {\n right: 0;\n transform: translateX(100%);\n }\n\n .drawer--right .panel--open {\n transform: translateX(0);\n }\n\n /* Vertical drawers (top/bottom) */\n .drawer--vertical .panel {\n left: 0;\n right: 0;\n width: 100%;\n }\n\n .drawer--top .panel {\n top: 0;\n transform: translateY(-100%);\n }\n\n .drawer--top .panel--open {\n transform: translateY(0);\n }\n\n .drawer--bottom .panel {\n bottom: 0;\n transform: translateY(100%);\n }\n\n .drawer--bottom .panel--open {\n transform: translateY(0);\n }\n\n /* Sizes - horizontal (width) */\n .drawer--horizontal.drawer--sm .panel {\n width: calc(var(--bp-spacing-24) * 3);\n }\n\n .drawer--horizontal.drawer--md .panel {\n width: calc(var(--bp-spacing-24) * 4 + var(--bp-spacing-16));\n }\n\n .drawer--horizontal.drawer--lg .panel {\n width: var(--bp-breakpoint-sm);\n }\n\n .drawer--horizontal.drawer--full .panel {\n width: 100%;\n }\n\n /* Sizes - vertical (height) */\n .drawer--vertical.drawer--sm .panel {\n height: calc(var(--bp-spacing-24) * 2);\n }\n\n .drawer--vertical.drawer--md .panel {\n height: calc(var(--bp-spacing-24) * 3 + var(--bp-spacing-8));\n }\n\n .drawer--vertical.drawer--lg .panel {\n height: calc(var(--bp-spacing-24) * 5);\n }\n\n .drawer--vertical.drawer--full .panel {\n height: 100%;\n }\n\n /* Header */\n .header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--bp-spacing-4);\n padding: var(--bp-spacing-4) var(--bp-spacing-5);\n border-bottom: var(--bp-border-width) solid var(--bp-color-border);\n flex-shrink: 0;\n }\n\n .header--empty {\n display: none;\n }\n\n .header ::slotted(*) {\n margin: 0;\n font-size: var(--bp-font-size-lg);\n font-weight: var(--bp-font-weight-semibold);\n }\n\n /* Body */\n .body {\n flex: 1;\n overflow-y: auto;\n padding: var(--bp-spacing-5);\n }\n\n /* Footer */\n .footer {\n display: flex;\n align-items: center;\n gap: var(--bp-spacing-4);\n padding: var(--bp-spacing-4) var(--bp-spacing-5);\n border-top: var(--bp-border-width) solid var(--bp-color-border);\n flex-shrink: 0;\n }\n\n /* Close button */\n .close-button {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 44px;\n height: 44px;\n padding: 0;\n margin-left: auto;\n background: transparent;\n border: none;\n border-radius: var(--bp-border-radius-sm);\n color: var(--bp-color-text-muted);\n cursor: pointer;\n transition:\n background-color var(--bp-transition-fast),\n color var(--bp-transition-fast),\n transform var(--bp-transition-fast);\n }\n\n .close-button:hover {\n background-color: var(--bp-color-surface-subdued);\n color: var(--bp-color-text);\n }\n\n .close-button:active {\n background-color: var(--bp-color-surface-pressed);\n transform: translateY(1px);\n }\n\n .close-button:focus {\n outline: var(--bp-focus-width) var(--bp-focus-style) var(--bp-color-focus);\n outline-offset: var(--bp-focus-offset);\n }\n\n .close-button:focus:not(:focus-visible) {\n outline: none;\n }\n\n .close-button:focus-visible {\n outline: var(--bp-focus-width) var(--bp-focus-style) var(--bp-color-focus);\n outline-offset: var(--bp-focus-offset);\n }\n\n /* Inline mode - static sidebar */\n .drawer--inline {\n display: block;\n }\n\n .drawer--inline .panel {\n position: relative;\n transform: none;\n box-shadow: none;\n border: var(--bp-border-width) solid var(--bp-color-border);\n border-radius: var(--bp-border-radius-md);\n }\n\n .drawer--inline.drawer--horizontal {\n height: 100%;\n }\n\n .drawer--inline.drawer--vertical {\n width: 100%;\n }\n\n /* Inline sizes - horizontal */\n .drawer--inline.drawer--horizontal.drawer--small {\n width: calc(var(--bp-spacing-24) * 3);\n }\n\n .drawer--inline.drawer--horizontal.drawer--medium {\n width: calc(var(--bp-spacing-24) * 4 + var(--bp-spacing-16));\n }\n\n .drawer--inline.drawer--horizontal.drawer--large {\n width: var(--bp-breakpoint-sm);\n }\n\n .drawer--inline.drawer--horizontal.drawer--full {\n width: 100%;\n }\n\n /* Inline sizes - vertical */\n .drawer--inline.drawer--vertical.drawer--small .panel {\n height: calc(var(--bp-spacing-24) * 2);\n }\n\n .drawer--inline.drawer--vertical.drawer--medium .panel {\n height: calc(var(--bp-spacing-24) * 3 + var(--bp-spacing-8));\n }\n\n .drawer--inline.drawer--vertical.drawer--large .panel {\n height: calc(var(--bp-spacing-24) * 5);\n }\n\n .drawer--inline.drawer--vertical.drawer--full .panel {\n height: auto;\n }\n\n /* Border positioning for inline drawers */\n .drawer--inline.drawer--left .panel {\n border-left: none;\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n\n .drawer--inline.drawer--right .panel {\n border-right: none;\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n\n .drawer--inline.drawer--top .panel {\n border-top: none;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n }\n\n .drawer--inline.drawer--bottom .panel {\n border-bottom: none;\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n }\n\n /* Reduced motion */\n @media (prefers-reduced-motion: reduce) {\n .panel {\n transition: none;\n }\n\n .backdrop {\n transition: none;\n }\n }\n`;\n","import { LitElement, html, nothing } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { drawerStyles } from './drawer.style.js';\nimport { booleanConverter } from '../../utilities/boolean-converter.js';\nimport { closeSvg } from '../icon/icons/entries/close.js';\nimport '../icon/icon.js';\n\nexport type DrawerPlacement = 'left' | 'right' | 'top' | 'bottom';\nexport type DrawerSize = 'sm' | 'md' | 'lg' | 'full';\n\n/**\n * A slide-in panel component that can appear from any edge of the viewport.\n *\n * @fires bp-open - Fired when the drawer opens\n * @fires bp-close - Fired when the drawer closes (includes reason: 'escape' | 'backdrop' | 'close-button' | 'api')\n * @fires bp-after-open - Fired after open animation completes\n * @fires bp-after-close - Fired after close animation completes\n *\n * @slot - Default slot for drawer content\n * @slot header - Optional header content\n * @slot footer - Optional footer content\n *\n * @csspart drawer - The drawer container\n * @csspart backdrop - The backdrop overlay (when not inline)\n * @csspart panel - The drawer panel\n * @csspart header - The header section\n * @csspart body - The body/content section\n * @csspart footer - The footer section\n * @csspart close-button - The close button\n */\n@customElement('bp-drawer')\nexport class BpDrawer extends LitElement {\n /** Whether the drawer is open */\n @property({ type: Boolean, reflect: true }) declare open: boolean;\n\n /** Which edge the drawer slides in from */\n @property({\n type: String,\n reflect: true,\n converter: {\n fromAttribute: (value: string | null) => {\n const valid = ['left', 'right', 'top', 'bottom'];\n return value && valid.includes(value)\n ? (value as DrawerPlacement)\n : 'left';\n },\n },\n })\n declare placement: DrawerPlacement;\n\n /** Size of the drawer (width for left/right, height for top/bottom) */\n @property({\n type: String,\n reflect: true,\n converter: {\n fromAttribute: (value: string | null) => {\n const valid = ['sm', 'md', 'lg', 'full'];\n return value && valid.includes(value) ? (value as DrawerSize) : 'md';\n },\n },\n })\n declare size: DrawerSize;\n\n /** Whether to show the close button */\n @property({\n converter: booleanConverter,\n attribute: 'show-close',\n reflect: true,\n })\n declare showClose: boolean;\n\n /** Whether clicking the backdrop closes the drawer */\n @property({\n converter: booleanConverter,\n attribute: 'close-on-backdrop',\n reflect: true,\n })\n declare closeOnBackdrop: boolean;\n\n /** Whether pressing Escape closes the drawer */\n @property({\n converter: booleanConverter,\n attribute: 'close-on-escape',\n reflect: true,\n })\n declare closeOnEscape: boolean;\n\n /** Whether to show the backdrop overlay */\n @property({\n converter: booleanConverter,\n attribute: 'show-backdrop',\n reflect: true,\n })\n declare showBackdrop: boolean;\n\n /** Accessible label for the drawer */\n @property({ type: String }) declare label: string;\n\n /**\n * Whether the drawer is rendered inline (always visible, part of document flow).\n * When true, the drawer acts as a static sidebar without overlay behavior.\n */\n @property({ type: Boolean, reflect: true }) declare inline: boolean;\n\n /** Whether the drawer has a header slot content */\n @property({ type: Boolean, attribute: false }) private hasHeader = false;\n\n /** Whether the drawer has a footer slot content */\n @property({ type: Boolean, attribute: false }) private hasFooter = false;\n\n private previouslyFocusedElement: HTMLElement | null = null;\n\n static styles = [drawerStyles];\n\n constructor() {\n super();\n this.open = false;\n this.placement = 'left';\n this.size = 'md';\n this.showClose = true;\n this.closeOnBackdrop = true;\n this.closeOnEscape = true;\n this.showBackdrop = true;\n this.label = '';\n this.inline = false;\n }\n\n connectedCallback(): void {\n super.connectedCallback();\n this.addEventListener('keydown', this.handleKeyDown);\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n this.removeEventListener('keydown', this.handleKeyDown);\n }\n\n /**\n * Open the drawer.\n * Sets open property to true and manages focus/scroll behavior.\n *\n * @fires bp-open - Emitted when the drawer opens\n * @fires bp-after-open - Emitted after open animation completes\n */\n show(): void {\n if (this.open) return;\n this.open = true;\n }\n\n /**\n * Close the drawer.\n * Sets open property to false if bp-close event is not prevented.\n *\n * @param reason - The reason the drawer was closed\n * @fires bp-close - Emitted when the drawer closes (cancelable)\n * @fires bp-after-close - Emitted after close animation completes\n */\n hide(reason: 'escape' | 'backdrop' | 'close-button' | 'api' = 'api'): void {\n if (!this.open) return;\n\n const event = new CustomEvent('bp-close', {\n detail: { reason },\n bubbles: true,\n composed: true,\n cancelable: true,\n });\n\n this.dispatchEvent(event);\n\n if (!event.defaultPrevented) {\n this.open = false;\n }\n }\n\n /**\n * Toggle the drawer open/closed state.\n * Calls hide() if open, show() if closed.\n */\n toggle(): void {\n if (this.open) {\n this.hide('api');\n } else {\n this.show();\n }\n }\n\n protected updated(changedProperties: Map<string, unknown>): void {\n if (changedProperties.has('open')) {\n if (this.open) {\n this.handleOpen();\n } else {\n this.handleClose();\n }\n }\n }\n\n private handleOpen(): void {\n if (!this.inline) {\n // Store currently focused element\n this.previouslyFocusedElement = document.activeElement as HTMLElement;\n\n // Prevent body scroll\n document.body.style.overflow = 'hidden';\n }\n\n this.dispatchEvent(\n new CustomEvent('bp-open', {\n bubbles: true,\n composed: true,\n })\n );\n\n // Focus the drawer panel for accessibility\n this.updateComplete.then(() => {\n const panel = this.shadowRoot?.querySelector('.panel') as HTMLElement;\n panel?.focus();\n\n this.dispatchEvent(\n new CustomEvent('bp-after-open', {\n bubbles: true,\n composed: true,\n })\n );\n });\n }\n\n private handleClose(): void {\n if (!this.inline) {\n // Restore body scroll\n document.body.style.overflow = '';\n\n // Restore focus\n if (this.previouslyFocusedElement) {\n this.previouslyFocusedElement.focus();\n this.previouslyFocusedElement = null;\n }\n }\n\n this.updateComplete.then(() => {\n this.dispatchEvent(\n new CustomEvent('bp-after-close', {\n bubbles: true,\n composed: true,\n })\n );\n });\n }\n\n private handleKeyDown = (event: KeyboardEvent): void => {\n if (\n event.key === 'Escape' &&\n this.closeOnEscape &&\n this.open &&\n !this.inline\n ) {\n event.preventDefault();\n this.hide('escape');\n }\n };\n\n /**\n * Handles click events on the backdrop overlay.\n * Closes the drawer if closeOnBackdrop is true.\n */\n private handleBackdropClick = (): void => {\n if (this.closeOnBackdrop) {\n this.hide('backdrop');\n }\n };\n\n /**\n * Handles click events on the close button.\n * Closes the drawer with reason 'close-button'.\n */\n private handleCloseClick = (): void => {\n this.hide('close-button');\n };\n\n /**\n * Handles slot change events for the header slot.\n * Updates hasHeader state to control header visibility.\n *\n * @param event - The slotchange event\n */\n private handleHeaderSlotChange = (event: Event): void => {\n const slot = event.target as HTMLElement & {\n assignedNodes: (options?: { flatten?: boolean }) => Node[];\n };\n this.hasHeader = slot.assignedNodes({ flatten: true }).length > 0;\n };\n\n /**\n * Handles slot change events for the footer slot.\n * Updates hasFooter state to control footer visibility.\n *\n * @param event - The slotchange event\n */\n private handleFooterSlotChange = (event: Event): void => {\n const slot = event.target as HTMLElement & {\n assignedNodes: (options?: { flatten?: boolean }) => Node[];\n };\n this.hasFooter = slot.assignedNodes({ flatten: true }).length > 0;\n };\n\n render() {\n const isHorizontal =\n this.placement === 'left' || this.placement === 'right';\n\n // Inline mode: always visible, no backdrop, no overlay behavior\n if (this.inline) {\n return html`\n <aside\n class=\"drawer drawer--inline drawer--${this.placement} drawer--${this\n .size} ${isHorizontal ? 'drawer--horizontal' : 'drawer--vertical'}\"\n part=\"drawer\"\n role=\"complementary\"\n aria-label=${this.label || nothing}\n >\n <div class=\"panel\" part=\"panel\">\n ${this.hasHeader || this.showClose\n ? html`\n <header class=\"header\" part=\"header\">\n <slot\n name=\"header\"\n @slotchange=${this.handleHeaderSlotChange}\n ></slot>\n </header>\n `\n : html`<slot\n name=\"header\"\n @slotchange=${this.handleHeaderSlotChange}\n ></slot>`}\n <div class=\"body\" part=\"body\">\n <slot></slot>\n </div>\n ${this.hasFooter\n ? html`\n <footer class=\"footer\" part=\"footer\">\n <slot\n name=\"footer\"\n @slotchange=${this.handleFooterSlotChange}\n ></slot>\n </footer>\n `\n : html`<slot\n name=\"footer\"\n @slotchange=${this.handleFooterSlotChange}\n ></slot>`}\n </div>\n </aside>\n `;\n }\n\n // Overlay mode: slide-in panel with backdrop\n return html`\n <div\n class=\"drawer drawer--overlay drawer--${this.placement} drawer--${this\n .size} ${isHorizontal\n ? 'drawer--horizontal'\n : 'drawer--vertical'} ${this.open ? 'drawer--open' : ''}\"\n part=\"drawer\"\n >\n ${this.showBackdrop\n ? html`\n <div\n class=\"backdrop ${this.open ? 'backdrop--visible' : ''}\"\n part=\"backdrop\"\n @click=${this.handleBackdropClick}\n aria-hidden=\"true\"\n ></div>\n `\n : nothing}\n <aside\n class=\"panel ${this.open ? 'panel--open' : ''}\"\n part=\"panel\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label=${this.label || nothing}\n tabindex=\"-1\"\n >\n <header\n class=\"header ${this.hasHeader || this.showClose\n ? ''\n : 'header--empty'}\"\n part=\"header\"\n >\n <slot\n name=\"header\"\n @slotchange=${this.handleHeaderSlotChange}\n ></slot>\n ${this.showClose\n ? html`\n <button\n class=\"close-button\"\n part=\"close-button\"\n type=\"button\"\n aria-label=\"Close drawer\"\n @click=${this.handleCloseClick}\n >\n <bp-icon .svg=${closeSvg} size=\"sm\"></bp-icon>\n </button>\n `\n : nothing}\n </header>\n <div class=\"body\" part=\"body\">\n <slot></slot>\n </div>\n ${this.hasFooter\n ? html`\n <footer class=\"footer\" part=\"footer\">\n <slot\n name=\"footer\"\n @slotchange=${this.handleFooterSlotChange}\n ></slot>\n </footer>\n `\n : html`<slot\n name=\"footer\"\n @slotchange=${this.handleFooterSlotChange}\n ></slot>`}\n </aside>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'bp-drawer': BpDrawer;\n }\n}\n"],"names":["drawerStyles","css","BpDrawer","LitElement","event","slot","reason","changedProperties","isHorizontal","html","nothing","closeSvg","__decorateClass","property","value","booleanConverter","customElement"],"mappings":";;;;AAEO,MAAMA,IAAeC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dropdown.js","sources":["../../source/components/dropdown/dropdown.style.ts","../../source/components/dropdown/dropdown.ts"],"sourcesContent":["import { css } from 'lit';\n\nexport const dropdownStyles = css`\n /* Base styles */\n :host {\n display: inline-block;\n position: relative;\n }\n\n .dropdown {\n position: relative;\n display: inline-block;\n }\n\n /* Trigger */\n .dropdown__trigger {\n display: inline-flex;\n align-items: center;\n cursor: pointer;\n outline: none;\n user-select: none;\n }\n\n .dropdown__trigger:focus-visible {\n outline: var(--bp-focus-width) var(--bp-focus-style) var(--bp-color-focus);\n outline-offset: var(--bp-focus-offset);\n border-radius: var(--bp-border-radius-sm);\n }\n\n /* Panel */\n .dropdown__panel {\n position: absolute;\n z-index: 1000; /* Overlay layer - above page content, below modals */\n min-width: 200px;\n background-color: var(--bp-color-surface-elevated);\n border: var(--bp-border-width) solid var(--bp-color-border);\n border-radius: var(--bp-border-radius-lg);\n box-shadow: var(--bp-shadow-lg);\n padding: var(--bp-spacing-sm);\n opacity: 0;\n will-change: opacity, transform;\n transition:\n opacity var(--bp-transition-fast) var(--bp-ease-out),\n transform var(--bp-transition-fast) var(--bp-ease-out);\n contain: layout style;\n }\n\n /* Placement: Bottom variants */\n .dropdown__panel--bottom-start {\n top: 100%;\n left: 0;\n margin-top: var(--dropdown-distance, 4px);\n transform: translateY(-8px);\n }\n\n .dropdown__panel--bottom-start.dropdown__panel--open {\n opacity: 1;\n transform: translateY(0);\n }\n\n .dropdown__panel--bottom {\n top: 100%;\n left: 50%;\n transform: translateX(-50%) translateY(-8px);\n margin-top: var(--dropdown-distance, 4px);\n }\n\n .dropdown__panel--bottom.dropdown__panel--open {\n opacity: 1;\n transform: translateX(-50%) translateY(0);\n }\n\n .dropdown__panel--bottom-end {\n top: 100%;\n right: 0;\n margin-top: var(--dropdown-distance, 4px);\n transform: translateY(-8px);\n }\n\n .dropdown__panel--bottom-end.dropdown__panel--open {\n opacity: 1;\n transform: translateY(0);\n }\n\n /* Placement: Top variants */\n .dropdown__panel--top-start {\n bottom: 100%;\n left: 0;\n margin-bottom: var(--dropdown-distance, 4px);\n transform: translateY(8px);\n }\n\n .dropdown__panel--top-start.dropdown__panel--open {\n opacity: 1;\n transform: translateY(0);\n }\n\n .dropdown__panel--top {\n bottom: 100%;\n left: 50%;\n transform: translateX(-50%) translateY(8px);\n margin-bottom: var(--dropdown-distance, 4px);\n }\n\n .dropdown__panel--top.dropdown__panel--open {\n opacity: 1;\n transform: translateX(-50%) translateY(0);\n }\n\n .dropdown__panel--top-end {\n bottom: 100%;\n right: 0;\n margin-bottom: var(--dropdown-distance, 4px);\n transform: translateY(8px);\n }\n\n .dropdown__panel--top-end.dropdown__panel--open {\n opacity: 1;\n transform: translateY(0);\n }\n\n /* Placement: Side variants */\n .dropdown__panel--left {\n right: 100%;\n top: 50%;\n transform: translateY(-50%);\n margin-right: var(--dropdown-distance, 4px);\n }\n\n .dropdown__panel--left.dropdown__panel--open {\n opacity: 1;\n }\n\n .dropdown__panel--right {\n left: 100%;\n top: 50%;\n transform: translateY(-50%);\n margin-left: var(--dropdown-distance, 4px);\n }\n\n .dropdown__panel--right.dropdown__panel--open {\n opacity: 1;\n }\n\n /* Arrow */\n .dropdown__arrow {\n position: absolute;\n width: 12px;\n height: 12px;\n background-color: var(--bp-color-surface-elevated);\n border: var(--bp-border-width) solid var(--bp-color-border);\n transform: rotate(45deg);\n border-bottom: none;\n border-right: none;\n }\n\n /* Arrow positioning: Bottom variants */\n .dropdown__panel--bottom .dropdown__arrow {\n top: -7px;\n left: 50%;\n margin-left: -6px;\n }\n\n .dropdown__panel--bottom-start .dropdown__arrow {\n top: -7px;\n left: 16px;\n }\n\n .dropdown__panel--bottom-end .dropdown__arrow {\n top: -7px;\n right: 16px;\n }\n\n /* Arrow positioning: Top variants */\n .dropdown__panel--top .dropdown__arrow {\n bottom: -7px;\n left: 50%;\n margin-left: -6px;\n transform: rotate(225deg);\n }\n\n .dropdown__panel--top-start .dropdown__arrow {\n bottom: -7px;\n left: 16px;\n transform: rotate(225deg);\n }\n\n .dropdown__panel--top-end .dropdown__arrow {\n bottom: -7px;\n right: 16px;\n transform: rotate(225deg);\n }\n\n /* Arrow positioning: Side variants */\n .dropdown__panel--left .dropdown__arrow {\n right: -7px;\n top: 50%;\n margin-top: -6px;\n transform: rotate(135deg);\n }\n\n .dropdown__panel--right .dropdown__arrow {\n left: -7px;\n top: 50%;\n margin-top: -6px;\n transform: rotate(-45deg);\n }\n\n /* Disabled state */\n .dropdown--disabled .dropdown__trigger {\n cursor: not-allowed;\n opacity: 0.6;\n filter: grayscale(50%);\n pointer-events: none;\n }\n`;\n","import { LitElement, html, nothing } from 'lit';\nimport { customElement, property, query } from 'lit/decorators.js';\nimport { dropdownStyles } from './dropdown.style.js';\n\n/**\n * A generic dropdown component that displays content in a floating panel.\n *\n * @fires bp-show - Dispatched when the dropdown opens\n * @fires bp-hide - Dispatched when the dropdown closes\n * @fires bp-toggle - Dispatched when the dropdown toggles\n *\n * @slot - Default slot for the dropdown trigger element\n * @slot content - Content to display in the dropdown panel\n *\n * @csspart trigger - The trigger button container\n * @csspart panel - The dropdown panel container\n */\n@customElement('bp-dropdown')\nexport class BpDropdown extends LitElement {\n /** Whether the dropdown is open */\n @property({ type: Boolean, reflect: true }) declare open: boolean;\n\n /** Placement of the dropdown panel relative to the trigger */\n @property({ type: String }) declare placement:\n | 'top'\n | 'top-start'\n | 'top-end'\n | 'bottom'\n | 'bottom-start'\n | 'bottom-end'\n | 'left'\n | 'right';\n\n /** Whether the dropdown should close when clicking outside */\n @property({ type: Boolean }) declare closeOnClickOutside: boolean;\n\n /** Whether the dropdown should close when pressing Escape */\n @property({ type: Boolean }) declare closeOnEscape: boolean;\n\n /** Whether the dropdown should close when an item inside is clicked */\n @property({ type: Boolean }) declare closeOnSelect: boolean;\n\n /** Whether the dropdown is disabled */\n @property({ type: Boolean }) declare disabled: boolean;\n\n /** Distance in pixels between the trigger and the panel */\n @property({ type: Number }) declare distance: number;\n\n /** Whether to show an arrow pointing to the trigger */\n @property({ type: Boolean }) declare arrow: boolean;\n\n /** ARIA role for the dropdown panel */\n @property({ type: String }) declare panelRole: 'menu' | 'dialog' | 'listbox';\n\n @query('.dropdown__trigger') private triggerElement!: HTMLElement;\n\n private clickOutsideHandler = this.handleClickOutside.bind(this);\n private keydownHandler = this.handleKeydown.bind(this);\n\n static styles = [dropdownStyles];\n\n constructor() {\n super();\n this.open = false;\n this.placement = 'bottom-start';\n this.closeOnClickOutside = true;\n this.closeOnEscape = true;\n this.closeOnSelect = true;\n this.disabled = false;\n this.distance = 4;\n this.arrow = false;\n this.panelRole = 'menu';\n }\n\n connectedCallback() {\n super.connectedCallback();\n document.addEventListener('click', this.clickOutsideHandler, {\n passive: true,\n });\n document.addEventListener('keydown', this.keydownHandler);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n document.removeEventListener('click', this.clickOutsideHandler, {\n passive: true,\n } as EventListenerOptions);\n document.removeEventListener('keydown', this.keydownHandler);\n }\n\n updated(changedProperties: Map<string, unknown>) {\n super.updated(changedProperties);\n if (changedProperties.has('open') && this.open) {\n // Trigger width available via this.triggerElement.offsetWidth if needed\n }\n }\n\n /** Show the dropdown */\n show() {\n if (this.disabled || this.open) return;\n\n this.open = true;\n this.dispatchEvent(\n new CustomEvent('bp-show', { bubbles: true, composed: true })\n );\n this.dispatchEvent(\n new CustomEvent('bp-toggle', {\n detail: { open: true },\n bubbles: true,\n composed: true,\n })\n );\n }\n\n /** Hide the dropdown */\n hide() {\n if (!this.open) return;\n\n this.open = false;\n this.dispatchEvent(\n new CustomEvent('bp-hide', { bubbles: true, composed: true })\n );\n this.dispatchEvent(\n new CustomEvent('bp-toggle', {\n detail: { open: false },\n bubbles: true,\n composed: true,\n })\n );\n }\n\n /** Toggle the dropdown open/closed */\n toggle() {\n if (this.open) {\n this.hide();\n } else {\n this.show();\n }\n }\n\n /**\n * Toggles dropdown when trigger is clicked.\n * Stops propagation to prevent immediate outside click detection.\n */\n private handleTriggerClick(event: MouseEvent) {\n event.stopPropagation();\n if (!this.disabled) {\n this.toggle();\n }\n }\n\n /**\n * Handles keyboard interaction on the trigger.\n * Enter/Space toggle, ArrowDown opens when closed.\n */\n private handleTriggerKeydown(event: KeyboardEvent) {\n if (this.disabled) return;\n\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this.toggle();\n } else if (event.key === 'ArrowDown' && !this.open) {\n event.preventDefault();\n this.show();\n }\n }\n\n /**\n * Closes the dropdown when user clicks outside the component.\n * Only runs if closeOnClickOutside is true and dropdown is open.\n */\n private handleClickOutside(event: MouseEvent) {\n if (!this.closeOnClickOutside || !this.open) return;\n\n const path = event.composedPath();\n if (!path.includes(this)) {\n this.hide();\n }\n }\n\n /**\n * Closes dropdown on Escape key and returns focus to trigger.\n * Only runs if closeOnEscape is true and dropdown is open.\n */\n private handleKeydown(event: KeyboardEvent) {\n if (!this.closeOnEscape || !this.open) return;\n\n if (event.key === 'Escape') {\n event.preventDefault();\n this.hide();\n this.triggerElement?.focus();\n }\n }\n\n /**\n * Handles clicks inside the panel to auto-close on item selection.\n * Detects menu items or elements with data-dropdown-close attribute.\n */\n private handlePanelClick(event: MouseEvent) {\n if (this.closeOnSelect) {\n // Check if clicked element or its parent is a menu item or similar\n const target = event.target as HTMLElement;\n const isSelectableItem =\n target.closest('bp-menu-item') ||\n target.closest('[data-dropdown-close]') ||\n target.hasAttribute('data-dropdown-close');\n\n if (isSelectableItem) {\n this.hide();\n }\n }\n }\n\n render() {\n return html`\n <div\n class=\"dropdown ${this.open ? 'dropdown--open' : ''} ${this.disabled\n ? 'dropdown--disabled'\n : ''}\"\n >\n <div\n class=\"dropdown__trigger\"\n part=\"trigger\"\n tabindex=${this.disabled ? -1 : 0}\n role=\"button\"\n aria-haspopup=\"true\"\n aria-expanded=${this.open}\n aria-disabled=${this.disabled}\n @click=${this.handleTriggerClick}\n @keydown=${this.handleTriggerKeydown}\n >\n <slot></slot>\n </div>\n ${this.open\n ? html`\n <div\n class=\"dropdown__panel dropdown__panel--${this.placement} ${this\n .open\n ? 'dropdown__panel--open'\n : ''}\"\n part=\"panel\"\n role=${this.panelRole}\n style=\"--dropdown-distance: ${this.distance}px;\"\n @click=${this.handlePanelClick}\n >\n ${this.arrow\n ? html`<div class=\"dropdown__arrow\"></div>`\n : nothing}\n <slot name=\"content\"></slot>\n </div>\n `\n : nothing}\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'bp-dropdown': BpDropdown;\n }\n}\n"],"names":["dropdownStyles","css","BpDropdown","LitElement","changedProperties","event","target","html","nothing","__decorateClass","property","query","customElement"],"mappings":"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"}
|