@dvcol/neo-svelte 1.1.2 → 1.2.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/CHANGELOG.md +90 -0
- package/README.md +15 -7
- package/dist/badge/neo-badge.model.d.ts +1 -1
- package/dist/buttons/NeoArrowButton.svelte +4 -4
- package/dist/buttons/NeoButton.svelte +110 -24
- package/dist/buttons/NeoButtonGroup.svelte +18 -9
- package/dist/buttons/NeoButtonGroup.svelte.d.ts +1 -1
- package/dist/buttons/NeoButtonRow.svelte +137 -0
- package/dist/buttons/NeoButtonRow.svelte.d.ts +4 -0
- package/dist/buttons/NeoCancelButton.svelte +2 -2
- package/dist/buttons/NeoCheckboxButton.svelte +6 -4
- package/dist/buttons/NeoCheckboxButton.svelte.d.ts +1 -1
- package/dist/buttons/NeoCloseButton.svelte +37 -6
- package/dist/buttons/NeoCloseButton.svelte.d.ts +2 -2
- package/dist/buttons/NeoRadioButton.svelte +6 -4
- package/dist/buttons/NeoSwitchButton.svelte +5 -3
- package/dist/buttons/index.d.ts +2 -0
- package/dist/buttons/index.js +1 -0
- package/dist/buttons/neo-arrow-button.model.d.ts +3 -3
- package/dist/buttons/neo-button-group.model.d.ts +12 -3
- package/dist/buttons/neo-button-row.model.d.ts +33 -0
- package/dist/buttons/neo-button-row.model.js +1 -0
- package/dist/buttons/neo-button.model.d.ts +11 -4
- package/dist/buttons/neo-close-button.model.d.ts +13 -0
- package/dist/buttons/neo-close-button.model.js +5 -0
- package/dist/buttons/neo-icon-button.model.d.ts +2 -2
- package/dist/cards/NeoCard.svelte +22 -20
- package/dist/cards/neo-card.model.d.ts +3 -2
- package/dist/collapse/NeoAccordion.svelte +3 -1
- package/dist/collapse/NeoCollapse.svelte +2 -2
- package/dist/collapse/NeoCollapse.svelte.d.ts +3 -1
- package/dist/collapse/neo-accordion.model.d.ts +2 -1
- package/dist/containers/NeoTransitionContainer.svelte +10 -0
- package/dist/containers/neo-transition-container.model.d.ts +9 -0
- package/dist/cursor/NeoCursor.svelte.d.ts +1 -1
- package/dist/divider/NeoDivider.svelte +4 -2
- package/dist/divider/neo-divider.model.d.ts +2 -1
- package/dist/floating/common/NeoConfirm.svelte +5 -5
- package/dist/floating/common/NeoConfirm.svelte.d.ts +1 -1
- package/dist/floating/common/NeoFloatingStepper.svelte +1 -1
- package/dist/floating/common/NeoFloatingStepper.svelte.d.ts +1 -1
- package/dist/floating/common/NeoHandle.svelte +2 -1
- package/dist/floating/common/neo-confirm.model.d.ts +2 -1
- package/dist/floating/common/neo-floating-stepper.model.d.ts +1 -1
- package/dist/floating/common/neo-placement.model.d.ts +56 -4
- package/dist/floating/common/neo-placement.model.js +22 -0
- package/dist/floating/dialog/NeoDialog.svelte +23 -21
- package/dist/floating/dialog/NeoDialog.svelte.d.ts +1 -1
- package/dist/floating/dialog/NeoDialogConfirm.svelte.d.ts +1 -1
- package/dist/floating/dialog/NeoDialogStepper.svelte.d.ts +1 -1
- package/dist/floating/dialog/neo-dialog-confirm.model.d.ts +5 -5
- package/dist/floating/dialog/neo-dialog-stepper.model.d.ts +4 -4
- package/dist/floating/dialog/neo-dialog.model.d.ts +2 -1
- package/dist/floating/dialog/use-movable.svelte.js +2 -1
- package/dist/floating/drawer/NeoDrawer.svelte +9 -9
- package/dist/floating/drawer/NeoDrawer.svelte.d.ts +2 -2
- package/dist/floating/drawer/NeoDrawerConfirm.svelte +2 -4
- package/dist/floating/drawer/NeoDrawerConfirm.svelte.d.ts +2 -2
- package/dist/floating/drawer/NeoDrawerStepper.svelte +2 -4
- package/dist/floating/drawer/NeoDrawerStepper.svelte.d.ts +2 -2
- package/dist/floating/drawer/neo-drawer.model.d.ts +6 -0
- package/dist/floating/drawer/neo-drawer.model.js +1 -0
- package/dist/floating/index.d.ts +1 -0
- package/dist/floating/index.js +1 -0
- package/dist/floating/menu/NeoMenu.svelte +55 -17
- package/dist/floating/menu/NeoMenu.svelte.d.ts +1 -1
- package/dist/floating/menu/NeoMenuList.svelte +60 -67
- package/dist/floating/menu/NeoMenuListItem.svelte +157 -24
- package/dist/floating/menu/NeoMenuListItem.svelte.d.ts +1 -0
- package/dist/floating/menu/index.d.ts +1 -0
- package/dist/floating/menu/neo-menu-list-item.model.d.ts +48 -11
- package/dist/floating/menu/neo-menu-list.model.d.ts +24 -4
- package/dist/floating/menu/neo-menu.model.d.ts +3 -3
- package/dist/floating/notification/NeoNotificationItem.svelte +459 -0
- package/dist/floating/notification/NeoNotificationItem.svelte.d.ts +4 -0
- package/dist/floating/notification/NeoNotificationProvider.svelte +49 -0
- package/dist/floating/notification/NeoNotificationProvider.svelte.d.ts +4 -0
- package/dist/floating/notification/NeoNotificationStack.svelte +345 -0
- package/dist/floating/notification/NeoNotificationStack.svelte.d.ts +16 -0
- package/dist/floating/notification/NeoSimpleNotification.svelte +304 -0
- package/dist/floating/notification/NeoSimpleNotification.svelte.d.ts +4 -0
- package/dist/floating/notification/index.d.ts +8 -0
- package/dist/floating/notification/index.js +7 -0
- package/dist/floating/notification/neo-notification-item.model.d.ts +54 -0
- package/dist/floating/notification/neo-notification-item.model.js +1 -0
- package/dist/floating/notification/neo-notification-provider.model.d.ts +78 -0
- package/dist/floating/notification/neo-notification-provider.model.js +18 -0
- package/dist/floating/notification/neo-notification-stack.model.d.ts +48 -0
- package/dist/floating/notification/neo-notification-stack.model.js +1 -0
- package/dist/floating/notification/neo-notification.model.d.ts +271 -0
- package/dist/floating/notification/neo-notification.model.js +70 -0
- package/dist/floating/notification/neo-simple-notification.model.d.ts +14 -0
- package/dist/floating/notification/neo-simple-notification.model.js +1 -0
- package/dist/floating/portal/NeoPortal.svelte +11 -8
- package/dist/floating/portal/NeoPortalTarget.svelte +7 -0
- package/dist/floating/portal/NeoPortalTarget.svelte.d.ts +7 -0
- package/dist/floating/portal/neo-portal-context.svelte.d.ts +1 -1
- package/dist/floating/portal/neo-portal.model.d.ts +4 -5
- package/dist/floating/tooltips/NeoPopConfirm.svelte +2 -0
- package/dist/floating/tooltips/NeoPopConfirm.svelte.d.ts +1 -1
- package/dist/floating/tooltips/NeoPopSelect.svelte +5 -3
- package/dist/floating/tooltips/NeoPopSelect.svelte.d.ts +1 -1
- package/dist/floating/tooltips/NeoPopStepper.svelte +2 -0
- package/dist/floating/tooltips/NeoPopStepper.svelte.d.ts +1 -1
- package/dist/floating/tooltips/NeoTooltip.svelte +43 -23
- package/dist/floating/tooltips/NeoTooltip.svelte.d.ts +5 -1
- package/dist/floating/tooltips/neo-pop-confirm.model.d.ts +1 -1
- package/dist/floating/tooltips/neo-pop-select.model.d.ts +1 -3
- package/dist/floating/tooltips/neo-pop-stepper.model.d.ts +2 -2
- package/dist/floating/tooltips/neo-tooltip.model.d.ts +7 -2
- package/dist/form/NeoForm.svelte +1 -1
- package/dist/form/NeoForm.svelte.d.ts +3 -1
- package/dist/form/neo-form-context.svelte.d.ts +2 -0
- package/dist/icons/{IconAccount.svelte → NeoIconAccount.svelte} +2 -2
- package/dist/icons/NeoIconAccount.svelte.d.ts +4 -0
- package/dist/icons/{IconAdd.svelte → NeoIconAdd.svelte} +11 -6
- package/dist/icons/NeoIconAdd.svelte.d.ts +4 -0
- package/dist/icons/{IconAddress.svelte → NeoIconAddress.svelte} +2 -2
- package/dist/icons/NeoIconAddress.svelte.d.ts +4 -0
- package/dist/icons/{IconAlert.svelte → NeoIconAlert.svelte} +11 -6
- package/dist/icons/NeoIconAlert.svelte.d.ts +4 -0
- package/dist/icons/{IconAlignBottom.svelte → NeoIconAlignBottom.svelte} +11 -6
- package/dist/icons/NeoIconAlignBottom.svelte.d.ts +4 -0
- package/dist/icons/{IconAlignMiddle.svelte → NeoIconAlignMiddle.svelte} +11 -6
- package/dist/icons/NeoIconAlignMiddle.svelte.d.ts +4 -0
- package/dist/icons/{IconAlignTop.svelte → NeoIconAlignTop.svelte} +11 -6
- package/dist/icons/NeoIconAlignTop.svelte.d.ts +4 -0
- package/dist/icons/{IconArrow.svelte → NeoIconArrow.svelte} +9 -9
- package/dist/icons/NeoIconArrow.svelte.d.ts +4 -0
- package/dist/icons/NeoIconAudio.svelte +83 -0
- package/dist/icons/NeoIconAudio.svelte.d.ts +4 -0
- package/dist/icons/NeoIconBouncingDots.svelte +82 -0
- package/dist/icons/NeoIconBouncingDots.svelte.d.ts +4 -0
- package/dist/icons/{IconCalendar.svelte → NeoIconCalendar.svelte} +11 -6
- package/dist/icons/NeoIconCalendar.svelte.d.ts +4 -0
- package/dist/icons/{IconCancel.svelte → NeoIconCancel.svelte} +2 -2
- package/dist/icons/NeoIconCancel.svelte.d.ts +4 -0
- package/dist/icons/{IconCheckbox.svelte → NeoIconCheckbox.svelte} +2 -2
- package/dist/icons/NeoIconCheckbox.svelte.d.ts +4 -0
- package/dist/icons/NeoIconCircle.svelte +18 -0
- package/dist/icons/NeoIconCircle.svelte.d.ts +4 -0
- package/dist/icons/{IconCircleLoading.svelte → NeoIconCircleLoading.svelte} +2 -2
- package/dist/icons/{IconCircleLoading.svelte.d.ts → NeoIconCircleLoading.svelte.d.ts} +55 -39
- package/dist/icons/{IconClear.svelte → NeoIconClear.svelte} +11 -6
- package/dist/icons/NeoIconClear.svelte.d.ts +4 -0
- package/dist/icons/{IconClose.svelte → NeoIconClose.svelte} +2 -2
- package/dist/icons/NeoIconClose.svelte.d.ts +4 -0
- package/dist/icons/NeoIconCog.svelte +36 -0
- package/dist/icons/NeoIconCog.svelte.d.ts +4 -0
- package/dist/icons/{IconConfirm.svelte → NeoIconConfirm.svelte} +11 -6
- package/dist/icons/NeoIconConfirm.svelte.d.ts +4 -0
- package/dist/icons/NeoIconCube.svelte +31 -0
- package/dist/icons/NeoIconCube.svelte.d.ts +4 -0
- package/dist/icons/{IconDoubleChevron.svelte → NeoIconDoubleChevron.svelte} +11 -5
- package/dist/icons/NeoIconDoubleChevron.svelte.d.ts +4 -0
- package/dist/icons/{IconDoubleChevronLeft.svelte → NeoIconDoubleChevronLeft.svelte} +11 -6
- package/dist/icons/NeoIconDoubleChevronLeft.svelte.d.ts +4 -0
- package/dist/icons/{IconDoubleChevronRight.svelte → NeoIconDoubleChevronRight.svelte} +11 -6
- package/dist/icons/NeoIconDoubleChevronRight.svelte.d.ts +4 -0
- package/dist/icons/{IconDownload.svelte → NeoIconDownload.svelte} +11 -6
- package/dist/icons/NeoIconDownload.svelte.d.ts +4 -0
- package/dist/icons/NeoIconEmpty.svelte +26 -0
- package/dist/icons/NeoIconEmpty.svelte.d.ts +4 -0
- package/dist/icons/NeoIconError.svelte +30 -0
- package/dist/icons/NeoIconError.svelte.d.ts +4 -0
- package/dist/icons/{IconFileUpload.svelte → NeoIconFileUpload.svelte} +11 -6
- package/dist/icons/NeoIconFileUpload.svelte.d.ts +4 -0
- package/dist/icons/NeoIconFire.svelte +33 -0
- package/dist/icons/NeoIconFire.svelte.d.ts +4 -0
- package/dist/icons/{IconGithub.svelte → NeoIconGithub.svelte} +11 -6
- package/dist/icons/NeoIconGithub.svelte.d.ts +4 -0
- package/dist/icons/NeoIconImage.svelte +39 -0
- package/dist/icons/NeoIconImage.svelte.d.ts +4 -0
- package/dist/icons/NeoIconInfo.svelte +30 -0
- package/dist/icons/NeoIconInfo.svelte.d.ts +4 -0
- package/dist/icons/{IconList.svelte → NeoIconList.svelte} +11 -6
- package/dist/icons/NeoIconList.svelte.d.ts +4 -0
- package/dist/icons/{IconListSmall.svelte → NeoIconListSmall.svelte} +2 -2
- package/dist/icons/NeoIconListSmall.svelte.d.ts +4 -0
- package/dist/icons/{IconLoadingMatrix.svelte → NeoIconLoadingMatrix.svelte} +2 -2
- package/dist/icons/NeoIconLoadingMatrix.svelte.d.ts +4 -0
- package/dist/icons/{IconMail.svelte → NeoIconMail.svelte} +11 -6
- package/dist/icons/NeoIconMail.svelte.d.ts +4 -0
- package/dist/icons/{IconMinus.svelte → NeoIconMinus.svelte} +11 -6
- package/dist/icons/NeoIconMinus.svelte.d.ts +4 -0
- package/dist/icons/{IconPaint.svelte → NeoIconPaint.svelte} +11 -6
- package/dist/icons/NeoIconPaint.svelte.d.ts +4 -0
- package/dist/icons/{IconPencil.svelte → NeoIconPencil.svelte} +11 -6
- package/dist/icons/NeoIconPencil.svelte.d.ts +4 -0
- package/dist/icons/{IconPlayPause.svelte → NeoIconPlayPause.svelte} +2 -2
- package/dist/icons/NeoIconPlayPause.svelte.d.ts +4 -0
- package/dist/icons/{IconQuestionMark.svelte → NeoIconQuestionMark.svelte} +11 -6
- package/dist/icons/NeoIconQuestionMark.svelte.d.ts +4 -0
- package/dist/icons/{IconRadio.svelte → NeoIconRadio.svelte} +2 -2
- package/dist/icons/NeoIconRadio.svelte.d.ts +4 -0
- package/dist/icons/NeoIconRefresh.svelte +38 -0
- package/dist/icons/NeoIconRefresh.svelte.d.ts +4 -0
- package/dist/icons/NeoIconRestore.svelte +20 -0
- package/dist/icons/NeoIconRestore.svelte.d.ts +4 -0
- package/dist/icons/NeoIconSave.svelte +35 -0
- package/dist/icons/NeoIconSave.svelte.d.ts +4 -0
- package/dist/icons/NeoIconSaveOff.svelte +42 -0
- package/dist/icons/NeoIconSaveOff.svelte.d.ts +4 -0
- package/dist/icons/{IconSearch.svelte → NeoIconSearch.svelte} +11 -6
- package/dist/icons/NeoIconSearch.svelte.d.ts +4 -0
- package/dist/icons/NeoIconSuccess.svelte +26 -0
- package/dist/icons/NeoIconSuccess.svelte.d.ts +4 -0
- package/dist/icons/{IconSun.svelte → NeoIconSun.svelte} +11 -6
- package/dist/icons/NeoIconSun.svelte.d.ts +4 -0
- package/dist/icons/{IconSunMoon.svelte → NeoIconSunMoon.svelte} +11 -64
- package/dist/icons/NeoIconSunMoon.svelte.d.ts +4 -0
- package/dist/icons/{IconTextHighlight.svelte → NeoIconTextHighlight.svelte} +11 -6
- package/dist/icons/NeoIconTextHighlight.svelte.d.ts +4 -0
- package/dist/icons/NeoIconTheme.svelte +14 -0
- package/dist/icons/NeoIconTheme.svelte.d.ts +3 -0
- package/dist/icons/NeoIconTrend.svelte +39 -0
- package/dist/icons/NeoIconTrend.svelte.d.ts +4 -0
- package/dist/icons/NeoIconUnplug.svelte +63 -0
- package/dist/icons/NeoIconUnplug.svelte.d.ts +4 -0
- package/dist/icons/{IconVideo.svelte → NeoIconVideo.svelte} +11 -6
- package/dist/icons/NeoIconVideo.svelte.d.ts +4 -0
- package/dist/icons/NeoIconWarning.svelte +30 -0
- package/dist/icons/NeoIconWarning.svelte.d.ts +4 -0
- package/dist/icons/NeoIconWatch.svelte +41 -0
- package/dist/icons/NeoIconWatch.svelte.d.ts +4 -0
- package/dist/icons/NeoIconWatchOff.svelte +50 -0
- package/dist/icons/NeoIconWatchOff.svelte.d.ts +4 -0
- package/dist/icons/NeoIconWave.svelte +31 -0
- package/dist/icons/NeoIconWave.svelte.d.ts +4 -0
- package/dist/icons/index.d.ts +54 -0
- package/dist/icons/index.js +54 -0
- package/dist/icons/{icon.model.d.ts → neo-icon.model.d.ts} +41 -13
- package/dist/icons/{icon.model.js → neo-icon.model.js} +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.js +2 -0
- package/dist/inputs/NeoCheckbox.svelte +6 -4
- package/dist/inputs/NeoCheckbox.svelte.d.ts +1 -1
- package/dist/inputs/NeoColorPicker.svelte +6 -3
- package/dist/inputs/NeoColorPicker.svelte.d.ts +1 -1
- package/dist/inputs/NeoColorPickerSelector.svelte +2 -2
- package/dist/inputs/NeoColorPickerSelector.svelte.d.ts +1 -1
- package/dist/inputs/NeoDateTime.svelte +6 -3
- package/dist/inputs/NeoDateTime.svelte.d.ts +1 -1
- package/dist/inputs/NeoFilePicker.svelte +11 -6
- package/dist/inputs/NeoFilePicker.svelte.d.ts +1 -1
- package/dist/inputs/NeoFilePickerCard.svelte +20 -14
- package/dist/inputs/NeoNativeSelect.svelte +6 -3
- package/dist/inputs/NeoNativeSelect.svelte.d.ts +1 -1
- package/dist/inputs/NeoNumberStep.svelte +13 -8
- package/dist/inputs/NeoNumberStep.svelte.d.ts +1 -1
- package/dist/inputs/NeoPassword.svelte +4 -4
- package/dist/inputs/NeoPassword.svelte.d.ts +1 -1
- package/dist/inputs/NeoPin.svelte +10 -10
- package/dist/inputs/NeoPin.svelte.d.ts +10 -1
- package/dist/inputs/NeoRadio.svelte +3 -3
- package/dist/inputs/NeoRadio.svelte.d.ts +1 -1
- package/dist/inputs/NeoRange.svelte +29 -27
- package/dist/inputs/NeoRange.svelte.d.ts +5 -2
- package/dist/inputs/NeoSelect.svelte +17 -8
- package/dist/inputs/NeoSelect.svelte.d.ts +1 -1
- package/dist/inputs/NeoSwitch.svelte +2 -2
- package/dist/inputs/NeoSwitch.svelte.d.ts +1 -1
- package/dist/inputs/common/NeoAffix.svelte +10 -10
- package/dist/inputs/common/NeoBaseInput.svelte +16 -2
- package/dist/inputs/common/NeoBaseInput.svelte.d.ts +1 -1
- package/dist/inputs/common/NeoInput.svelte +12 -4
- package/dist/inputs/common/NeoInput.svelte.d.ts +1 -1
- package/dist/inputs/common/NeoTextarea.svelte +18 -6
- package/dist/inputs/common/NeoTextarea.svelte.d.ts +2 -1
- package/dist/inputs/common/NeoValidation.svelte +6 -4
- package/dist/inputs/common/neo-input.model.d.ts +8 -1
- package/dist/inputs/common/neo-validation.model.d.ts +2 -1
- package/dist/inputs/neo-range.model.d.ts +2 -1
- package/dist/inputs/neo-select.model.d.ts +8 -4
- package/dist/list/NeoList.svelte +100 -62
- package/dist/list/NeoList.svelte.d.ts +5 -2
- package/dist/list/NeoListBaseItem.svelte +222 -92
- package/dist/list/NeoListBaseItem.svelte.d.ts +1 -1
- package/dist/list/NeoListBaseLoader.svelte +28 -4
- package/dist/list/NeoListBaseSection.svelte +18 -15
- package/dist/list/NeoListSearch.svelte +36 -20
- package/dist/list/NeoListSearch.svelte.d.ts +1 -1
- package/dist/list/NeoSimpleList.svelte +391 -0
- package/dist/list/NeoSimpleList.svelte.d.ts +8 -0
- package/dist/list/NeoVirtualList.svelte +388 -0
- package/dist/list/NeoVirtualList.svelte.d.ts +22 -0
- package/dist/list/index.d.ts +4 -0
- package/dist/list/index.js +2 -0
- package/dist/list/neo-list-base-item.model.d.ts +36 -7
- package/dist/list/neo-list-base-item.model.js +1 -0
- package/dist/list/neo-list-base-loader.model.d.ts +18 -1
- package/dist/list/neo-list-base-section.model.d.ts +8 -5
- package/dist/list/neo-list-search.model.d.ts +2 -2
- package/dist/list/neo-list.model.d.ts +120 -51
- package/dist/list/neo-list.model.js +18 -0
- package/dist/list/neo-simple-list.model.d.ts +124 -0
- package/dist/list/neo-simple-list.model.js +1 -0
- package/dist/list/neo-virtual-list.model.d.ts +69 -0
- package/dist/list/neo-virtual-list.model.js +6 -0
- package/dist/loading/NeoLoadingMatrix.svelte +2 -2
- package/dist/loading/neo-lazy.model.d.ts +2 -2
- package/dist/loading/neo-suspense.model.d.ts +1 -1
- package/dist/media/NeoImage.svelte +204 -0
- package/dist/media/NeoImage.svelte.d.ts +4 -0
- package/dist/media/NeoMedia.svelte +204 -0
- package/dist/media/NeoMedia.svelte.d.ts +4 -0
- package/dist/media/index.d.ts +2 -0
- package/dist/media/index.js +1 -0
- package/dist/media/neo-image.model.d.ts +67 -0
- package/dist/media/neo-image.model.js +1 -0
- package/dist/media/neo-media.model.d.ts +120 -0
- package/dist/media/neo-media.model.js +5 -0
- package/dist/nav/NeoTab.svelte +20 -15
- package/dist/nav/NeoTab.svelte.d.ts +17 -2
- package/dist/nav/NeoTabPanel.svelte +7 -5
- package/dist/nav/NeoTabPanel.svelte.d.ts +17 -2
- package/dist/nav/NeoTabs.svelte +21 -17
- package/dist/nav/NeoTabs.svelte.d.ts +19 -3
- package/dist/nav/NeoTabsCard.svelte +5 -3
- package/dist/nav/NeoTabsCard.svelte.d.ts +17 -2
- package/dist/nav/NeoTabsRow.svelte +225 -0
- package/dist/nav/NeoTabsRow.svelte.d.ts +19 -0
- package/dist/nav/index.d.ts +2 -0
- package/dist/nav/index.js +1 -0
- package/dist/nav/neo-tab-panel.model.d.ts +3 -3
- package/dist/nav/neo-tab.model.d.ts +15 -5
- package/dist/nav/neo-tabs-card.model.d.ts +3 -2
- package/dist/nav/neo-tabs-context.svelte.d.ts +35 -29
- package/dist/nav/neo-tabs-context.svelte.js +17 -3
- package/dist/nav/neo-tabs-row.model.d.ts +85 -0
- package/dist/nav/neo-tabs-row.model.js +1 -0
- package/dist/nav/neo-tabs.model.d.ts +12 -11
- package/dist/pill/NeoPill.svelte +73 -14
- package/dist/pill/neo-pill.model.d.ts +25 -1
- package/dist/progress/NeoProgress.svelte +203 -42
- package/dist/progress/NeoProgress.svelte.d.ts +8 -8
- package/dist/progress/NeoProgressBar.svelte +37 -6
- package/dist/progress/NeoProgressBar.svelte.d.ts +9 -1
- package/dist/progress/index.d.ts +1 -0
- package/dist/progress/index.js +1 -0
- package/dist/progress/neo-progress-bar.model.d.ts +11 -6
- package/dist/progress/neo-progress-service.svelte.d.ts +47 -0
- package/dist/progress/neo-progress-service.svelte.js +157 -0
- package/dist/progress/neo-progress.model.d.ts +98 -41
- package/dist/progress/neo-progress.model.js +6 -1
- package/dist/providers/NeoRememberSelector.svelte +43 -0
- package/dist/providers/NeoRememberSelector.svelte.d.ts +4 -0
- package/dist/providers/NeoResetSelector.svelte +40 -0
- package/dist/providers/NeoResetSelector.svelte.d.ts +4 -0
- package/dist/providers/NeoSourceSelector.svelte +63 -0
- package/dist/providers/NeoSourceSelector.svelte.d.ts +4 -0
- package/dist/providers/NeoThemeProvider.svelte +25 -10
- package/dist/providers/NeoThemeProvider.svelte.d.ts +1 -2
- package/dist/providers/NeoThemeSelector.svelte +26 -108
- package/dist/providers/NeoThemeSelector.svelte.d.ts +1 -1
- package/dist/providers/NeoThemeSelectors.svelte +57 -0
- package/dist/providers/NeoThemeSelectors.svelte.d.ts +4 -0
- package/dist/providers/NeoTransitionSelector.svelte +57 -0
- package/dist/providers/NeoTransitionSelector.svelte.d.ts +4 -0
- package/dist/providers/index.d.ts +10 -0
- package/dist/providers/index.js +5 -0
- package/dist/providers/neo-remember-selector.model.d.ts +9 -0
- package/dist/providers/neo-remember-selector.model.js +2 -0
- package/dist/providers/neo-reset-selector.model.d.ts +9 -0
- package/dist/providers/neo-reset-selector.model.js +1 -0
- package/dist/providers/neo-source-selector.model.d.ts +9 -0
- package/dist/providers/neo-source-selector.model.js +2 -0
- package/dist/providers/neo-theme-provider-context.svelte.d.ts +14 -3
- package/dist/providers/neo-theme-provider-context.svelte.js +94 -11
- package/dist/providers/neo-theme-provider.model.d.ts +31 -3
- package/dist/providers/neo-theme-provider.model.js +9 -0
- package/dist/providers/neo-theme-selector.model.d.ts +3 -48
- package/dist/providers/neo-theme-selector.model.js +1 -0
- package/dist/providers/neo-theme-selectors.model.d.ts +84 -0
- package/dist/providers/neo-theme-selectors.model.js +1 -0
- package/dist/providers/neo-transition-selector.model.d.ts +9 -0
- package/dist/providers/neo-transition-selector.model.js +2 -0
- package/dist/skeletons/NeoSkeletonContainer.svelte +3 -1
- package/dist/skeletons/NeoSkeletonMedia.svelte +26 -18
- package/dist/skeletons/NeoSkeletonText.svelte +5 -3
- package/dist/skeletons/neo-skeleton-container.model.d.ts +9 -0
- package/dist/skeletons/neo-skeleton-media.model.d.ts +20 -10
- package/dist/skeletons/neo-skeleton-media.model.js +7 -1
- package/dist/skeletons/neo-skeleton-text.model.d.ts +5 -0
- package/dist/stepper/NeoStepper.svelte +20 -20
- package/dist/stepper/NeoStepper.svelte.d.ts +9 -2
- package/dist/stepper/neo-stepper.model.d.ts +5 -5
- package/dist/styles/animation.scss +76 -0
- package/dist/styles/common/colors.scss +15 -9
- package/dist/styles/common/properties.css +18 -0
- package/dist/styles/common/spacing.scss +8 -4
- package/dist/styles/common/typography.scss +13 -3
- package/dist/styles/common/utils.scss +2 -2
- package/dist/styles/mixin.scss +125 -11
- package/dist/styles/theme.scss +20 -0
- package/dist/styles/transition.scss +101 -0
- package/dist/text/NeoEllipsis.svelte +1 -0
- package/dist/text/NeoHtml.svelte +26 -0
- package/dist/text/NeoHtml.svelte.d.ts +7 -0
- package/dist/text/NeoMark.svelte +18 -5
- package/dist/text/NeoTypewriter.svelte +5 -4
- package/dist/text/NeoTypewriter.svelte.d.ts +5 -1
- package/dist/text/index.d.ts +2 -0
- package/dist/text/index.js +1 -0
- package/dist/text/neo-html.model.d.ts +4 -0
- package/dist/text/neo-html.model.js +1 -0
- package/dist/text/neo-mark.model.d.ts +8 -0
- package/dist/text/typewriter.utils.d.ts +2 -2
- package/dist/text/typewriter.utils.js +8 -9
- package/dist/utils/action.utils.d.ts +1 -21
- package/dist/utils/border.utils.d.ts +13 -0
- package/dist/utils/border.utils.js +18 -0
- package/dist/utils/colors.utils.d.ts +1 -1
- package/dist/utils/error.utils.d.ts +22 -0
- package/dist/utils/error.utils.js +36 -0
- package/dist/utils/style.utils.d.ts +1 -1
- package/package.json +55 -39
- package/dist/icons/IconAccount.svelte.d.ts +0 -4
- package/dist/icons/IconAdd.svelte.d.ts +0 -26
- package/dist/icons/IconAddress.svelte.d.ts +0 -4
- package/dist/icons/IconAlert.svelte.d.ts +0 -26
- package/dist/icons/IconAlignBottom.svelte.d.ts +0 -26
- package/dist/icons/IconAlignMiddle.svelte.d.ts +0 -26
- package/dist/icons/IconAlignTop.svelte.d.ts +0 -26
- package/dist/icons/IconArrow.svelte.d.ts +0 -4
- package/dist/icons/IconBouncingDots.svelte +0 -63
- package/dist/icons/IconBouncingDots.svelte.d.ts +0 -4
- package/dist/icons/IconCalendar.svelte.d.ts +0 -26
- package/dist/icons/IconCancel.svelte.d.ts +0 -4
- package/dist/icons/IconCheckbox.svelte.d.ts +0 -4
- package/dist/icons/IconClear.svelte.d.ts +0 -26
- package/dist/icons/IconClose.svelte.d.ts +0 -4
- package/dist/icons/IconConfirm.svelte.d.ts +0 -26
- package/dist/icons/IconDoubleChevron.svelte.d.ts +0 -26
- package/dist/icons/IconDoubleChevronLeft.svelte.d.ts +0 -26
- package/dist/icons/IconDoubleChevronRight.svelte.d.ts +0 -26
- package/dist/icons/IconDownload.svelte.d.ts +0 -26
- package/dist/icons/IconEmpty.svelte +0 -18
- package/dist/icons/IconEmpty.svelte.d.ts +0 -26
- package/dist/icons/IconFileUpload.svelte.d.ts +0 -26
- package/dist/icons/IconGithub.svelte.d.ts +0 -26
- package/dist/icons/IconImage.svelte +0 -26
- package/dist/icons/IconImage.svelte.d.ts +0 -26
- package/dist/icons/IconList.svelte.d.ts +0 -26
- package/dist/icons/IconListSmall.svelte.d.ts +0 -4
- package/dist/icons/IconLoadingMatrix.svelte.d.ts +0 -4
- package/dist/icons/IconMail.svelte.d.ts +0 -26
- package/dist/icons/IconMinus.svelte.d.ts +0 -26
- package/dist/icons/IconPaint.svelte.d.ts +0 -26
- package/dist/icons/IconPencil.svelte.d.ts +0 -26
- package/dist/icons/IconPlayPause.svelte.d.ts +0 -4
- package/dist/icons/IconQuestionMark.svelte.d.ts +0 -26
- package/dist/icons/IconRadio.svelte.d.ts +0 -4
- package/dist/icons/IconSave.svelte +0 -25
- package/dist/icons/IconSave.svelte.d.ts +0 -26
- package/dist/icons/IconSaveOff.svelte +0 -32
- package/dist/icons/IconSaveOff.svelte.d.ts +0 -26
- package/dist/icons/IconSearch.svelte.d.ts +0 -26
- package/dist/icons/IconSun.svelte.d.ts +0 -26
- package/dist/icons/IconSunMoon.svelte.d.ts +0 -4
- package/dist/icons/IconTextHighlight.svelte.d.ts +0 -26
- package/dist/icons/IconVideo.svelte.d.ts +0 -26
- package/dist/icons/IconWatch.svelte +0 -29
- package/dist/icons/IconWatch.svelte.d.ts +0 -26
- package/dist/icons/IconWatchOff.svelte +0 -34
- package/dist/icons/IconWatchOff.svelte.d.ts +0 -26
|
@@ -2,125 +2,43 @@
|
|
|
2
2
|
import type { NeoThemeSelectorProps } from './neo-theme-selector.model.js';
|
|
3
3
|
|
|
4
4
|
import NeoButton from '../buttons/NeoButton.svelte';
|
|
5
|
-
import
|
|
6
|
-
import IconImage from '../icons/IconImage.svelte';
|
|
7
|
-
import IconSave from '../icons/IconSave.svelte';
|
|
8
|
-
import IconSaveOff from '../icons/IconSaveOff.svelte';
|
|
9
|
-
import IconSun from '../icons/IconSun.svelte';
|
|
10
|
-
import IconSunMoon from '../icons/IconSunMoon.svelte';
|
|
5
|
+
import NeoIconSunMoon from '../icons/NeoIconSunMoon.svelte';
|
|
11
6
|
import { useNeoThemeContext } from './neo-theme-provider-context.svelte.js';
|
|
12
|
-
import {
|
|
13
|
-
|
|
14
|
-
const {
|
|
15
|
-
// Snippet
|
|
16
|
-
children,
|
|
7
|
+
import { NeoTheme } from './neo-theme-provider.model.js';
|
|
17
8
|
|
|
9
|
+
let {
|
|
18
10
|
// state
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
11
|
+
label = 'Theme',
|
|
12
|
+
|
|
13
|
+
// Button props
|
|
14
|
+
ref = $bindable(),
|
|
15
|
+
hovered = $bindable(false),
|
|
16
|
+
focused = $bindable(false),
|
|
25
17
|
|
|
26
18
|
// Other props
|
|
27
|
-
rememberProps,
|
|
28
|
-
sourceProps,
|
|
29
|
-
themeProps,
|
|
30
|
-
resetProps,
|
|
31
19
|
...rest
|
|
32
20
|
}: NeoThemeSelectorProps = $props();
|
|
33
21
|
|
|
34
22
|
const context = useNeoThemeContext();
|
|
35
23
|
|
|
36
|
-
const reset = $derived(context.reset);
|
|
37
24
|
const dark = $derived(context.theme === NeoTheme.Dark);
|
|
38
|
-
const source = $derived(context.source);
|
|
39
|
-
const remember = $derived(context.remember);
|
|
40
|
-
|
|
41
|
-
const sources = Object.values(NeoSource);
|
|
42
|
-
const sourceMap = { ...sources };
|
|
43
|
-
const sourceIndexMap = Object.fromEntries(Object.entries(sourceMap).map(([k, v]) => [v, Number(k)]));
|
|
44
25
|
|
|
45
|
-
|
|
46
|
-
const onCycleSource = () => {
|
|
47
|
-
angle += 90;
|
|
48
|
-
context.update({ source: sourceMap[(sourceIndexMap[source] + 1) % sources.length] });
|
|
49
|
-
};
|
|
50
|
-
|
|
51
|
-
const onTheme = () => context.update({ theme: dark ? NeoTheme.Light : NeoTheme.Dark });
|
|
52
|
-
const onReset = () => context.update({ reset: !reset });
|
|
53
|
-
const onRemember = () => context.update({ remember: !remember });
|
|
26
|
+
const onTheme = () => context.update({ theme: dark ? NeoTheme.Light : NeoTheme.Dark }, ref);
|
|
54
27
|
</script>
|
|
55
28
|
|
|
56
|
-
<
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
{/if}
|
|
73
|
-
{#if showTheme}
|
|
74
|
-
<NeoButton
|
|
75
|
-
aria-label="Toggle {dark ? 'light' : 'dark'} theme"
|
|
76
|
-
title="Toggle {dark ? 'light' : 'dark'} theme"
|
|
77
|
-
toggle
|
|
78
|
-
checked={dark}
|
|
79
|
-
onclick={onTheme}
|
|
80
|
-
label={themeLabel}
|
|
81
|
-
{...themeProps}
|
|
82
|
-
>
|
|
83
|
-
{#snippet icon()}
|
|
84
|
-
<IconSunMoon state={dark ? 'moon' : 'sun'} />
|
|
85
|
-
{/snippet}
|
|
86
|
-
</NeoButton>
|
|
87
|
-
{/if}
|
|
88
|
-
{#if showReset}
|
|
89
|
-
<NeoButton
|
|
90
|
-
aria-label="Toggle {reset ? 'off' : 'on'} style reset"
|
|
91
|
-
title="Toggle {reset ? 'off' : 'on'} style reset"
|
|
92
|
-
toggle
|
|
93
|
-
checked={reset}
|
|
94
|
-
onclick={onReset}
|
|
95
|
-
{...resetProps}
|
|
96
|
-
>
|
|
97
|
-
{#snippet icon()}
|
|
98
|
-
<IconImage />
|
|
99
|
-
{/snippet}
|
|
100
|
-
</NeoButton>
|
|
101
|
-
{/if}
|
|
102
|
-
{#if showRemember}
|
|
103
|
-
<NeoButton aria-label="Remember theme settings" title="Remember theme settings" toggle checked={remember} onclick={onRemember} {...rememberProps}>
|
|
104
|
-
{#snippet icon()}
|
|
105
|
-
{#if remember}
|
|
106
|
-
<IconSave />
|
|
107
|
-
{:else}
|
|
108
|
-
<IconSaveOff />
|
|
109
|
-
{/if}
|
|
110
|
-
{/snippet}
|
|
111
|
-
</NeoButton>
|
|
112
|
-
{/if}
|
|
113
|
-
{@render children?.(context.state)}
|
|
114
|
-
</NeoButtonGroup>
|
|
115
|
-
|
|
116
|
-
<style>.neo-source-icon {
|
|
117
|
-
overflow: hidden;
|
|
118
|
-
border-radius: var(--neo-theme-selector-border-radius, var(--neo-border-radius-lg));
|
|
119
|
-
rotate: var(--neo-source-rotate, 0);
|
|
120
|
-
transition: rotate 0.5s ease;
|
|
121
|
-
}
|
|
122
|
-
.neo-source-icon :global(> svg) {
|
|
123
|
-
width: 1.25rem;
|
|
124
|
-
height: 1.25rem;
|
|
125
|
-
translate: -30% -30%;
|
|
126
|
-
}</style>
|
|
29
|
+
<NeoButton
|
|
30
|
+
bind:ref
|
|
31
|
+
bind:hovered
|
|
32
|
+
bind:focused
|
|
33
|
+
aria-label="Toggle {dark ? 'light' : 'dark'} theme"
|
|
34
|
+
title="Toggle {dark ? 'light' : 'dark'} theme"
|
|
35
|
+
toggle
|
|
36
|
+
checked={dark}
|
|
37
|
+
onclick={onTheme}
|
|
38
|
+
{label}
|
|
39
|
+
{...rest}
|
|
40
|
+
>
|
|
41
|
+
{#snippet icon()}
|
|
42
|
+
<NeoIconSunMoon state={dark ? 'moon' : 'sun'} />
|
|
43
|
+
{/snippet}
|
|
44
|
+
</NeoButton>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { NeoThemeSelectorProps } from './neo-theme-selector.model.js';
|
|
2
|
-
declare const NeoThemeSelector: import("svelte").Component<NeoThemeSelectorProps, {}, "">;
|
|
2
|
+
declare const NeoThemeSelector: import("svelte").Component<NeoThemeSelectorProps, {}, "ref" | "hovered" | "focused">;
|
|
3
3
|
type NeoThemeSelector = ReturnType<typeof NeoThemeSelector>;
|
|
4
4
|
export default NeoThemeSelector;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { NeoThemeSelectorsProps } from './neo-theme-selectors.model.js';
|
|
3
|
+
|
|
4
|
+
import NeoButtonGroup from '../buttons/NeoButtonGroup.svelte';
|
|
5
|
+
import { useNeoThemeContext } from './neo-theme-provider-context.svelte.js';
|
|
6
|
+
import NeoRememberSelector from './NeoRememberSelector.svelte';
|
|
7
|
+
import NeoResetSelector from './NeoResetSelector.svelte';
|
|
8
|
+
import NeoSourceSelector from './NeoSourceSelector.svelte';
|
|
9
|
+
import NeoThemeSelector from './NeoThemeSelector.svelte';
|
|
10
|
+
import NeoTransitionSelector from './NeoTransitionSelector.svelte';
|
|
11
|
+
|
|
12
|
+
const {
|
|
13
|
+
// Snippet
|
|
14
|
+
children,
|
|
15
|
+
|
|
16
|
+
// state
|
|
17
|
+
sourceLabel,
|
|
18
|
+
source: showSource,
|
|
19
|
+
themeLabel,
|
|
20
|
+
theme: showTheme = true,
|
|
21
|
+
resetLabel,
|
|
22
|
+
reset: showReset,
|
|
23
|
+
rememberLabel,
|
|
24
|
+
remember: showRemember,
|
|
25
|
+
themeTransitionLabel,
|
|
26
|
+
themeTransition: showTransition,
|
|
27
|
+
|
|
28
|
+
// Other props
|
|
29
|
+
themeTransitionProps,
|
|
30
|
+
rememberProps,
|
|
31
|
+
sourceProps,
|
|
32
|
+
themeProps,
|
|
33
|
+
resetProps,
|
|
34
|
+
...rest
|
|
35
|
+
}: NeoThemeSelectorsProps = $props();
|
|
36
|
+
|
|
37
|
+
const context = useNeoThemeContext();
|
|
38
|
+
</script>
|
|
39
|
+
|
|
40
|
+
<NeoButtonGroup elevation="2" {...rest}>
|
|
41
|
+
{#if showSource}
|
|
42
|
+
<NeoSourceSelector label={sourceLabel} {...sourceProps} />
|
|
43
|
+
{/if}
|
|
44
|
+
{#if showTheme}
|
|
45
|
+
<NeoThemeSelector label={themeLabel} {...themeProps} />
|
|
46
|
+
{/if}
|
|
47
|
+
{#if showTransition}
|
|
48
|
+
<NeoTransitionSelector label={themeTransitionLabel} {...themeTransitionProps} />
|
|
49
|
+
{/if}
|
|
50
|
+
{#if showReset}
|
|
51
|
+
<NeoResetSelector label={resetLabel} {...resetProps} />
|
|
52
|
+
{/if}
|
|
53
|
+
{#if showRemember}
|
|
54
|
+
<NeoRememberSelector label={rememberLabel} {...rememberProps} />
|
|
55
|
+
{/if}
|
|
56
|
+
{@render children?.(context.state)}
|
|
57
|
+
</NeoButtonGroup>
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { NeoSourceSelectorProps } from './neo-source-selector.model.js';
|
|
3
|
+
|
|
4
|
+
import NeoButton from '../buttons/NeoButton.svelte';
|
|
5
|
+
import NeoIconCircle from '../icons/NeoIconCircle.svelte';
|
|
6
|
+
import NeoIconCube from '../icons/NeoIconCube.svelte';
|
|
7
|
+
import NeoIconEmpty from '../icons/NeoIconEmpty.svelte';
|
|
8
|
+
import NeoIconWave from '../icons/NeoIconWave.svelte';
|
|
9
|
+
import { useNeoThemeContext } from './neo-theme-provider-context.svelte.js';
|
|
10
|
+
import { NeoTransition } from './neo-theme-provider.model.js';
|
|
11
|
+
|
|
12
|
+
const {
|
|
13
|
+
// state
|
|
14
|
+
label = 'Transition',
|
|
15
|
+
|
|
16
|
+
// Button props
|
|
17
|
+
ref = $bindable(),
|
|
18
|
+
hovered = $bindable(false),
|
|
19
|
+
focused = $bindable(false),
|
|
20
|
+
|
|
21
|
+
// Other props
|
|
22
|
+
...rest
|
|
23
|
+
}: NeoSourceSelectorProps = $props();
|
|
24
|
+
|
|
25
|
+
const context = useNeoThemeContext();
|
|
26
|
+
|
|
27
|
+
const transition = $derived(context.transition);
|
|
28
|
+
|
|
29
|
+
const transitions = Object.values(NeoTransition);
|
|
30
|
+
const sourceMap = { ...transitions };
|
|
31
|
+
const indexMap = Object.fromEntries(Object.entries(sourceMap).map(([k, v]) => [v, Number(k)]));
|
|
32
|
+
|
|
33
|
+
const onclick = () => {
|
|
34
|
+
context.update({ transition: sourceMap[(indexMap[transition] + 1) % transitions.length] });
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
</script>
|
|
38
|
+
|
|
39
|
+
<NeoButton
|
|
40
|
+
aria-label="Cycle theme transition"
|
|
41
|
+
title="Cycle theme transition - {transition}"
|
|
42
|
+
{onclick}
|
|
43
|
+
{label}
|
|
44
|
+
{...rest}
|
|
45
|
+
>
|
|
46
|
+
{#snippet icon()}
|
|
47
|
+
{#if transition === NeoTransition.Spin}
|
|
48
|
+
<NeoIconCube />
|
|
49
|
+
{:else if transition === NeoTransition.Wave}
|
|
50
|
+
<NeoIconWave />
|
|
51
|
+
{:else if transition === NeoTransition.Circle}
|
|
52
|
+
<NeoIconCircle />
|
|
53
|
+
{:else}
|
|
54
|
+
<NeoIconEmpty />
|
|
55
|
+
{/if}
|
|
56
|
+
{/snippet}
|
|
57
|
+
</NeoButton>
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { NeoSourceSelectorProps } from './neo-source-selector.model.js';
|
|
2
|
+
declare const NeoTransitionSelector: import("svelte").Component<NeoSourceSelectorProps, {}, "ref" | "hovered" | "focused">;
|
|
3
|
+
type NeoTransitionSelector = ReturnType<typeof NeoTransitionSelector>;
|
|
4
|
+
export default NeoTransitionSelector;
|
|
@@ -1,7 +1,17 @@
|
|
|
1
|
+
export { default as NeoRememberSelector } from './NeoRememberSelector.svelte';
|
|
2
|
+
export { default as NeoResetSelector } from './NeoResetSelector.svelte';
|
|
3
|
+
export { default as NeoSourceSelector } from './NeoSourceSelector.svelte';
|
|
1
4
|
export { default as NeoThemePicker } from './NeoThemePicker.svelte';
|
|
2
5
|
export { default as NeoThemeProvider } from './NeoThemeProvider.svelte';
|
|
3
6
|
export { default as NeoThemeSelector } from './NeoThemeSelector.svelte';
|
|
7
|
+
export { default as NeoThemeSelectors } from './NeoThemeSelectors.svelte';
|
|
8
|
+
export { useNeoThemeContext } from './neo-theme-provider-context.svelte.js';
|
|
4
9
|
export { NeoSource, NeoTheme, NeoThemeRoot, NeoThemeStorageKey } from './neo-theme-provider.model.js';
|
|
10
|
+
export type { NeoThemeProviderContext, NeoThemeProviderContextState } from './neo-theme-provider-context.svelte.js';
|
|
11
|
+
export type * from './neo-remember-selector.model.js';
|
|
12
|
+
export type * from './neo-reset-selector.model.js';
|
|
13
|
+
export type * from './neo-source-selector.model.js';
|
|
5
14
|
export type * from './neo-theme-picker.model.js';
|
|
6
15
|
export type * from './neo-theme-provider.model.js';
|
|
7
16
|
export type * from './neo-theme-selector.model.js';
|
|
17
|
+
export type * from './neo-theme-selectors.model.js';
|
package/dist/providers/index.js
CHANGED
|
@@ -1,4 +1,9 @@
|
|
|
1
|
+
export { default as NeoRememberSelector } from './NeoRememberSelector.svelte';
|
|
2
|
+
export { default as NeoResetSelector } from './NeoResetSelector.svelte';
|
|
3
|
+
export { default as NeoSourceSelector } from './NeoSourceSelector.svelte';
|
|
1
4
|
export { default as NeoThemePicker } from './NeoThemePicker.svelte';
|
|
2
5
|
export { default as NeoThemeProvider } from './NeoThemeProvider.svelte';
|
|
3
6
|
export { default as NeoThemeSelector } from './NeoThemeSelector.svelte';
|
|
7
|
+
export { default as NeoThemeSelectors } from './NeoThemeSelectors.svelte';
|
|
8
|
+
export { useNeoThemeContext } from './neo-theme-provider-context.svelte.js';
|
|
4
9
|
export { NeoSource, NeoTheme, NeoThemeRoot, NeoThemeStorageKey } from './neo-theme-provider.model.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
import type { INeoThemeProviderContext } from './neo-theme-provider.model.js';
|
|
2
2
|
type NeoThemeProviderRoot = INeoThemeProviderContext['root'] | (() => INeoThemeProviderContext['root']);
|
|
3
|
+
export declare function computeCircleStart(element?: HTMLElement, { viewportWidth, viewportHeight }?: {
|
|
4
|
+
viewportWidth?: number | undefined;
|
|
5
|
+
viewportHeight?: number | undefined;
|
|
6
|
+
}): {
|
|
7
|
+
x?: number;
|
|
8
|
+
y?: number;
|
|
9
|
+
};
|
|
3
10
|
export type NeoThemeProviderContextState = Partial<Omit<INeoThemeProviderContext, 'root'>> & {
|
|
4
11
|
root?: NeoThemeProviderRoot;
|
|
5
12
|
};
|
|
@@ -9,19 +16,23 @@ export declare class NeoThemeProviderContext implements INeoThemeProviderContext
|
|
|
9
16
|
get theme(): import("./neo-theme-provider.model.js").NeoThemes;
|
|
10
17
|
get source(): import("./neo-theme-provider.model.js").NeoSources;
|
|
11
18
|
get remember(): boolean;
|
|
19
|
+
get transition(): import("./neo-theme-provider.model.js").NeoTransitions;
|
|
12
20
|
get root(): HTMLElement | ShadowRoot | undefined;
|
|
21
|
+
get ready(): boolean | undefined;
|
|
13
22
|
get state(): {
|
|
14
23
|
reset: boolean | undefined;
|
|
15
24
|
theme: import("./neo-theme-provider.model.js").NeoThemes;
|
|
16
25
|
source: import("./neo-theme-provider.model.js").NeoSources;
|
|
17
26
|
remember: boolean;
|
|
27
|
+
transition: import("./neo-theme-provider.model.js").NeoTransitions;
|
|
18
28
|
root: HTMLElement | ShadowRoot | undefined;
|
|
19
29
|
};
|
|
20
|
-
constructor({ reset, theme, source, remember, root }: NeoThemeProviderContextState);
|
|
21
|
-
update(partial: Partial<NeoThemeProviderContextState
|
|
30
|
+
constructor({ reset, theme, source, remember, transition, root }: NeoThemeProviderContextState);
|
|
31
|
+
update(partial: Partial<NeoThemeProviderContextState>, trigger?: HTMLElement): void;
|
|
22
32
|
private setTheme;
|
|
23
33
|
private setSource;
|
|
24
|
-
|
|
34
|
+
import(target?: HTMLElement | ShadowRoot | undefined): void;
|
|
35
|
+
sync(trigger?: HTMLElement): void;
|
|
25
36
|
destroy(): void;
|
|
26
37
|
}
|
|
27
38
|
export declare function setNeoThemeContext(context: NeoThemeProviderContextState): NeoThemeProviderContext;
|
|
@@ -1,13 +1,58 @@
|
|
|
1
1
|
import { wait } from '@dvcol/common-utils/common/promise';
|
|
2
2
|
import { getContext, setContext, untrack } from 'svelte';
|
|
3
|
-
import { getRemember, getReset, getSource, getTheme, NeoThemeRoot, NeoThemeStorageKey } from './neo-theme-provider.model.js';
|
|
3
|
+
import { getRemember, getReset, getSource, getTheme, getTransition, NeoThemeRoot, NeoThemeStorageKey } from './neo-theme-provider.model.js';
|
|
4
4
|
import { NeoErrorThemeContextNotFound, NeoErrorThemeInvalidTarget, NeoErrorThemeTargetNotFound } from '../utils/error.utils.js';
|
|
5
|
+
import styles from './neo-theme-provider.scss?url';
|
|
6
|
+
function isRootElement(root) {
|
|
7
|
+
return !!root && root instanceof HTMLElement;
|
|
8
|
+
}
|
|
9
|
+
export function computeCircleStart(element, { viewportWidth = window.innerWidth, viewportHeight = window.innerHeight } = {}) {
|
|
10
|
+
if (!element)
|
|
11
|
+
return {};
|
|
12
|
+
// Get button's position relative to the viewport
|
|
13
|
+
const rect = element.getBoundingClientRect();
|
|
14
|
+
// Calculate center of the button
|
|
15
|
+
const buttonCenterX = rect.left + (rect.width / 2);
|
|
16
|
+
const buttonCenterY = rect.top + (rect.height / 2);
|
|
17
|
+
// Convert to percentages
|
|
18
|
+
const xPercentage = (buttonCenterX / viewportWidth) * 100;
|
|
19
|
+
const yPercentage = (buttonCenterY / viewportHeight) * 100;
|
|
20
|
+
return {
|
|
21
|
+
x: Math.round(xPercentage),
|
|
22
|
+
y: Math.round(yPercentage),
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
async function transitionViewTheme(root, theme, trigger) {
|
|
26
|
+
if (trigger && isRootElement(root)) {
|
|
27
|
+
const { x, y } = computeCircleStart(trigger);
|
|
28
|
+
if (x)
|
|
29
|
+
root.style.setProperty('--neo-transition-trigger-x', `${x}%`);
|
|
30
|
+
if (y)
|
|
31
|
+
root.style.setProperty('--neo-transition-trigger-y', `${y}%`);
|
|
32
|
+
}
|
|
33
|
+
const transition = document.startViewTransition(() => {
|
|
34
|
+
if (!root)
|
|
35
|
+
throw new NeoErrorThemeTargetNotFound();
|
|
36
|
+
if (!('setAttribute' in root))
|
|
37
|
+
throw new NeoErrorThemeInvalidTarget();
|
|
38
|
+
root.setAttribute(NeoThemeStorageKey.InFlight, 'true');
|
|
39
|
+
root.setAttribute(NeoThemeStorageKey.Theme, theme);
|
|
40
|
+
});
|
|
41
|
+
await transition.finished;
|
|
42
|
+
if (!isRootElement(root))
|
|
43
|
+
return;
|
|
44
|
+
root.removeAttribute(NeoThemeStorageKey.InFlight);
|
|
45
|
+
root.style.removeProperty('--neo-transition-trigger-x');
|
|
46
|
+
root.style.removeProperty('--neo-transition-trigger-y');
|
|
47
|
+
}
|
|
5
48
|
export class NeoThemeProviderContext {
|
|
6
49
|
#reset = $state(getReset());
|
|
7
50
|
#theme = $state(getTheme());
|
|
8
51
|
#source = $state(getSource());
|
|
9
52
|
#remember = $state(getRemember());
|
|
53
|
+
#transition = $state(getTransition());
|
|
10
54
|
#root = $state(document?.documentElement);
|
|
55
|
+
#ready = $state(false);
|
|
11
56
|
get reset() {
|
|
12
57
|
return this.#reset;
|
|
13
58
|
}
|
|
@@ -20,27 +65,34 @@ export class NeoThemeProviderContext {
|
|
|
20
65
|
get remember() {
|
|
21
66
|
return this.#remember;
|
|
22
67
|
}
|
|
68
|
+
get transition() {
|
|
69
|
+
return this.#transition;
|
|
70
|
+
}
|
|
23
71
|
get root() {
|
|
24
72
|
return typeof this.#root === 'function' ? this.#root() : this.#root;
|
|
25
73
|
}
|
|
74
|
+
get ready() {
|
|
75
|
+
return this.#ready;
|
|
76
|
+
}
|
|
26
77
|
get state() {
|
|
27
78
|
return {
|
|
28
79
|
reset: this.reset,
|
|
29
80
|
theme: this.theme,
|
|
30
81
|
source: this.source,
|
|
31
82
|
remember: this.remember,
|
|
83
|
+
transition: this.transition,
|
|
32
84
|
root: this.root,
|
|
33
85
|
};
|
|
34
86
|
}
|
|
35
|
-
constructor({ reset, theme, source, remember, root }) {
|
|
87
|
+
constructor({ reset, theme, source, remember, transition, root }) {
|
|
36
88
|
this.#reset = reset ?? this.reset;
|
|
37
89
|
this.#theme = theme ?? this.theme;
|
|
38
90
|
this.#source = source ?? this.source;
|
|
39
91
|
this.#remember = remember ?? this.remember;
|
|
92
|
+
this.#transition = transition ?? this.transition;
|
|
40
93
|
this.#root = root ?? this.root;
|
|
41
|
-
this.sync();
|
|
42
94
|
}
|
|
43
|
-
update(partial) {
|
|
95
|
+
update(partial, trigger) {
|
|
44
96
|
untrack(() => {
|
|
45
97
|
if (partial.reset !== undefined)
|
|
46
98
|
this.#reset = partial.reset;
|
|
@@ -50,22 +102,28 @@ export class NeoThemeProviderContext {
|
|
|
50
102
|
this.#source = partial.source;
|
|
51
103
|
if (partial.remember !== undefined)
|
|
52
104
|
this.#remember = partial.remember;
|
|
105
|
+
if (partial.transition !== undefined)
|
|
106
|
+
this.#transition = partial.transition;
|
|
53
107
|
if (partial.root !== undefined)
|
|
54
108
|
this.#root = partial.root;
|
|
55
|
-
this.sync();
|
|
109
|
+
this.sync(trigger);
|
|
56
110
|
});
|
|
57
111
|
}
|
|
58
|
-
async setTheme(theme) {
|
|
112
|
+
async setTheme(theme, trigger) {
|
|
59
113
|
if (!this.root)
|
|
60
114
|
throw new NeoErrorThemeTargetNotFound();
|
|
61
115
|
if (!('setAttribute' in this.root))
|
|
62
116
|
throw new NeoErrorThemeInvalidTarget();
|
|
63
|
-
if (this.theme === this.root.getAttribute(NeoThemeStorageKey.Theme))
|
|
64
|
-
return;
|
|
117
|
+
if (this.theme === this.root.getAttribute(NeoThemeStorageKey.Theme)) {
|
|
118
|
+
return this.root.setAttribute(NeoThemeStorageKey.Transition, this.transition);
|
|
119
|
+
}
|
|
120
|
+
if ('startViewTransition' in document && this.root.getAttribute(NeoThemeStorageKey.Transition)?.startsWith('neo')) {
|
|
121
|
+
return transitionViewTheme(this.root, theme, trigger);
|
|
122
|
+
}
|
|
65
123
|
this.root.setAttribute(NeoThemeStorageKey.Transition, 'false');
|
|
66
124
|
this.root.setAttribute(NeoThemeStorageKey.Theme, theme);
|
|
67
125
|
await wait();
|
|
68
|
-
this.root.
|
|
126
|
+
this.root.setAttribute(NeoThemeStorageKey.Transition, this.transition);
|
|
69
127
|
}
|
|
70
128
|
setSource(source) {
|
|
71
129
|
if (!this.root)
|
|
@@ -76,13 +134,34 @@ export class NeoThemeProviderContext {
|
|
|
76
134
|
return;
|
|
77
135
|
this.root.setAttribute(NeoThemeStorageKey.Source, source);
|
|
78
136
|
}
|
|
79
|
-
|
|
137
|
+
import(target = this.root) {
|
|
138
|
+
if (!target)
|
|
139
|
+
throw new NeoErrorThemeTargetNotFound();
|
|
140
|
+
if (!('setAttribute' in target))
|
|
141
|
+
throw new NeoErrorThemeInvalidTarget();
|
|
142
|
+
if (target.parentElement?.querySelector('#neo-theme-provider'))
|
|
143
|
+
return;
|
|
144
|
+
const link = document.createElement('link');
|
|
145
|
+
link.setAttribute('type', 'text/css');
|
|
146
|
+
link.setAttribute('id', 'neo-theme-provider');
|
|
147
|
+
link.setAttribute('rel', 'stylesheet');
|
|
148
|
+
link.setAttribute('href', new URL(styles, import.meta.url).href);
|
|
149
|
+
link.addEventListener('load', () => {
|
|
150
|
+
this.#ready = true;
|
|
151
|
+
});
|
|
152
|
+
if (target === document?.documentElement)
|
|
153
|
+
document.head.appendChild(link);
|
|
154
|
+
else
|
|
155
|
+
target.after(link);
|
|
156
|
+
}
|
|
157
|
+
sync(trigger) {
|
|
80
158
|
if (!this.root)
|
|
81
159
|
throw new NeoErrorThemeTargetNotFound();
|
|
82
160
|
if (!('setAttribute' in this.root))
|
|
83
161
|
throw new NeoErrorThemeInvalidTarget();
|
|
162
|
+
this.import(this.root);
|
|
84
163
|
this.root.setAttribute(NeoThemeRoot, '');
|
|
85
|
-
void this.setTheme(this.theme);
|
|
164
|
+
void this.setTheme(this.theme, trigger);
|
|
86
165
|
this.setSource(this.source);
|
|
87
166
|
if (this.reset)
|
|
88
167
|
this.root.setAttribute(NeoThemeStorageKey.Reset, '');
|
|
@@ -95,11 +174,13 @@ export class NeoThemeProviderContext {
|
|
|
95
174
|
localStorage.setItem(NeoThemeStorageKey.Reset, Boolean(this.reset).toString());
|
|
96
175
|
localStorage.setItem(NeoThemeStorageKey.Theme, this.theme);
|
|
97
176
|
localStorage.setItem(NeoThemeStorageKey.Source, this.source);
|
|
177
|
+
localStorage.setItem(NeoThemeStorageKey.Transition, this.transition);
|
|
98
178
|
}
|
|
99
179
|
else {
|
|
100
180
|
localStorage.removeItem(NeoThemeStorageKey.Reset);
|
|
101
181
|
localStorage.removeItem(NeoThemeStorageKey.Theme);
|
|
102
182
|
localStorage.removeItem(NeoThemeStorageKey.Source);
|
|
183
|
+
localStorage.removeItem(NeoThemeStorageKey.Transition);
|
|
103
184
|
}
|
|
104
185
|
}
|
|
105
186
|
destroy() {
|
|
@@ -111,6 +192,8 @@ export class NeoThemeProviderContext {
|
|
|
111
192
|
this.root.removeAttribute(NeoThemeStorageKey.Reset);
|
|
112
193
|
this.root.removeAttribute(NeoThemeStorageKey.Theme);
|
|
113
194
|
this.root.removeAttribute(NeoThemeStorageKey.Source);
|
|
195
|
+
this.root.removeAttribute(NeoThemeStorageKey.Transition);
|
|
196
|
+
this.#ready = false;
|
|
114
197
|
}
|
|
115
198
|
}
|
|
116
199
|
const NeoContextKey = Symbol('NeoThemeProviderContext');
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Snippet } from 'svelte';
|
|
2
|
+
import type { HTMLNeoBaseElement } from '../utils/html-element.utils.js';
|
|
2
3
|
/**
|
|
3
4
|
* The active theme (`dark` or `light`)
|
|
4
5
|
*/
|
|
@@ -16,8 +17,19 @@ export declare const NeoSource: {
|
|
|
16
17
|
readonly BottomRight: "bottom-right";
|
|
17
18
|
readonly BottomLeft: "bottom-left";
|
|
18
19
|
};
|
|
20
|
+
export declare const NeoTransition: {
|
|
21
|
+
readonly None: "none";
|
|
22
|
+
readonly Spin: "neo-spin";
|
|
23
|
+
readonly Wave: "neo-wave";
|
|
24
|
+
readonly Circle: "neo-circle";
|
|
25
|
+
};
|
|
26
|
+
export type NeoTransitions = (typeof NeoTransition)[keyof typeof NeoTransition];
|
|
19
27
|
export type NeoSources = (typeof NeoSource)[keyof typeof NeoSource];
|
|
20
28
|
export interface INeoThemeProviderContext {
|
|
29
|
+
/**
|
|
30
|
+
* If styles have finished loading.
|
|
31
|
+
*/
|
|
32
|
+
readonly ready?: boolean;
|
|
21
33
|
/**
|
|
22
34
|
* If a style reset is applied.
|
|
23
35
|
*/
|
|
@@ -34,16 +46,30 @@ export interface INeoThemeProviderContext {
|
|
|
34
46
|
* If the reset, theme and source are stored in local-storage
|
|
35
47
|
*/
|
|
36
48
|
readonly remember: boolean;
|
|
49
|
+
/**
|
|
50
|
+
* The theme transition to apply when changing theme.
|
|
51
|
+
*/
|
|
52
|
+
readonly transition: NeoTransitions;
|
|
37
53
|
/**
|
|
38
54
|
* The target to which scope the theme variables
|
|
39
55
|
*/
|
|
40
56
|
readonly root?: HTMLElement | ShadowRoot;
|
|
41
57
|
}
|
|
42
|
-
export interface NeoThemeProviderProps {
|
|
58
|
+
export interface NeoThemeProviderProps<Tag extends keyof HTMLElementTagNameMap = 'div'> extends Omit<HTMLNeoBaseElement<HTMLElementTagNameMap[Tag]>, 'children'> {
|
|
43
59
|
/**
|
|
44
60
|
* Child element to wrap in the theme context.
|
|
45
61
|
*/
|
|
46
62
|
children?: Snippet<[INeoThemeProviderContext]>;
|
|
63
|
+
/**
|
|
64
|
+
* The HTML reference to the inner element when target is `self`.
|
|
65
|
+
* @see target
|
|
66
|
+
*/
|
|
67
|
+
ref?: HTMLElement;
|
|
68
|
+
/**
|
|
69
|
+
* The HTML tag to use for the container.
|
|
70
|
+
* @default 'div'
|
|
71
|
+
*/
|
|
72
|
+
tag?: Tag;
|
|
47
73
|
/**
|
|
48
74
|
* If `true`, injects a css reset for common styling.
|
|
49
75
|
*/
|
|
@@ -71,10 +97,10 @@ export interface NeoThemeProviderProps {
|
|
|
71
97
|
*
|
|
72
98
|
* @default document.documentElement
|
|
73
99
|
*/
|
|
74
|
-
target?: HTMLElement | ShadowRoot | (() => HTMLElement | ShadowRoot);
|
|
100
|
+
target?: 'self' | HTMLElement | ShadowRoot | (() => HTMLElement | ShadowRoot);
|
|
75
101
|
}
|
|
76
102
|
export declare const NeoThemeRoot = "neo-theme-root";
|
|
77
|
-
export declare const NeoThemeStorageKey: Record<string, `neo-${keyof INeoThemeProviderContext | '
|
|
103
|
+
export declare const NeoThemeStorageKey: Record<string, `neo-${keyof INeoThemeProviderContext | 'in-flight'}`>;
|
|
78
104
|
export type NeoThemeStorageKeys = (typeof NeoThemeStorageKey)[keyof typeof NeoThemeStorageKey];
|
|
79
105
|
export declare const getSavedTheme: () => NeoThemes | null;
|
|
80
106
|
export declare const getPreferTheme: () => NeoThemes;
|
|
@@ -85,3 +111,5 @@ export declare const getSavedReset: () => string | null;
|
|
|
85
111
|
export declare const getReset: () => boolean;
|
|
86
112
|
export declare const getSavedRemember: () => string | null;
|
|
87
113
|
export declare const getRemember: () => boolean;
|
|
114
|
+
export declare const getSavedTransition: () => NeoTransitions | null;
|
|
115
|
+
export declare const getTransition: () => NeoTransitions;
|