tera-system-ui 0.1.63 → 0.1.66
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/dist/COMPONENT_API.md +2 -0
- package/dist/components/accordion/Accordion.d.ts +24 -0
- package/dist/components/accordion/Accordion.js +4 -0
- package/dist/components/accordion/components/Accordion.svelte +2 -8
- package/dist/components/accordion/components/AccordionContent.svelte +5 -12
- package/dist/components/accordion/components/AccordionItem.svelte +3 -9
- package/dist/components/accordion/components/AccordionTrigger.svelte +5 -15
- package/dist/components/ai/ChatBubble.svelte +35 -0
- package/dist/components/ai/ChatBubble.svelte.d.ts +12 -0
- package/dist/components/ai/PromptInput.svelte +58 -0
- package/dist/components/ai/PromptInput.svelte.d.ts +13 -0
- package/dist/components/ai/StreamText.svelte +41 -0
- package/dist/components/ai/StreamText.svelte.d.ts +11 -0
- package/dist/components/ai/SuggestionChips.svelte +34 -0
- package/dist/components/ai/SuggestionChips.svelte.d.ts +10 -0
- package/dist/components/ai/ThinkingLoader.svelte +34 -0
- package/dist/components/ai/ThinkingLoader.svelte.d.ts +11 -0
- package/dist/components/ai/index.d.ts +5 -0
- package/dist/components/ai/index.js +5 -0
- package/dist/components/alert/Alert.svelte +47 -0
- package/dist/components/alert/Alert.svelte.d.ts +15 -0
- package/dist/components/alert/index.d.ts +1 -0
- package/dist/components/alert/index.js +1 -0
- package/dist/components/avatar/Avatar.svelte +9 -25
- package/dist/components/badge/Badge.d.ts +52 -0
- package/dist/components/badge/Badge.js +22 -0
- package/dist/components/badge/Badge.svelte +22 -0
- package/dist/components/badge/Badge.svelte.d.ts +4 -0
- package/dist/components/badge/index.d.ts +2 -0
- package/dist/components/badge/index.js +1 -0
- package/dist/components/brand-logo/BrandLogo.svelte +12 -10
- package/dist/components/button/Button.d.ts +2 -2
- package/dist/components/button/Button.js +12 -12
- package/dist/components/button/Button.svelte +7 -34
- package/dist/components/card/Card.d.ts +68 -0
- package/dist/components/card/Card.js +28 -0
- package/dist/components/card/Card.svelte +33 -0
- package/dist/components/card/Card.svelte.d.ts +4 -0
- package/dist/components/card/index.d.ts +2 -0
- package/dist/components/card/index.js +1 -0
- package/dist/components/checkbox/Checkbox.d.ts +25 -4
- package/dist/components/checkbox/Checkbox.js +4 -0
- package/dist/components/checkbox/Checkbox.svelte +13 -16
- package/dist/components/checkbox/Checkbox.svelte.d.ts +2 -2
- package/dist/components/combobox/Combobox.d.ts +45 -9
- package/dist/components/combobox/Combobox.js +5 -7
- package/dist/components/combobox/Combobox.svelte +226 -8
- package/dist/components/combobox/Combobox.svelte.d.ts +2 -2
- package/dist/components/combobox/index.d.ts +1 -1
- package/dist/components/command/components/command-empty.svelte +3 -8
- package/dist/components/command/components/command-group.svelte +3 -13
- package/dist/components/command/components/command-input.svelte +5 -13
- package/dist/components/command/components/command-item.svelte +3 -9
- package/dist/components/command/components/command-link-item.svelte +3 -8
- package/dist/components/command/components/command-list.svelte +3 -8
- package/dist/components/command/components/command-separator.svelte +3 -8
- package/dist/components/command/components/command-shortcut.svelte +2 -10
- package/dist/components/command/components/command.svelte +29 -42
- package/dist/components/date-range-picker/DateRangePicker.svelte +490 -0
- package/dist/components/date-range-picker/DateRangePicker.svelte.d.ts +4 -0
- package/dist/components/date-range-picker/DateRangePicker.types.d.ts +38 -0
- package/dist/components/date-range-picker/DateRangePicker.types.js +1 -0
- package/dist/components/date-range-picker/index.d.ts +2 -0
- package/dist/components/date-range-picker/index.js +1 -0
- package/dist/components/dialog/Dialog.d.ts +43 -121
- package/dist/components/dialog/Dialog.js +1 -39
- package/dist/components/dialog/Dialog.svelte +103 -113
- package/dist/components/dialog/Dialog.svelte.d.ts +1 -2
- package/dist/components/dialog/dialog.scss +21 -24
- package/dist/components/drawer/Drawer.svelte +63 -0
- package/dist/components/drawer/Drawer.svelte.d.ts +16 -0
- package/dist/components/drawer/index.d.ts +1 -0
- package/dist/components/drawer/index.js +1 -0
- package/dist/components/dropdown-menu/DropdownMenu.d.ts +51 -24
- package/dist/components/dropdown-menu/DropdownMenu.js +1 -15
- package/dist/components/dropdown-menu/components/DropdownMenu.svelte +36 -34
- package/dist/components/dropdown-menu/components/DropdownMenu.svelte.d.ts +1 -1
- package/dist/components/dropdown-menu/components/DropdownMenuGroup.svelte +8 -12
- package/dist/components/dropdown-menu/components/DropdownMenuGroup.svelte.d.ts +2 -4
- package/dist/components/dropdown-menu/components/DropdownMenuHeader.svelte +11 -12
- package/dist/components/dropdown-menu/components/DropdownMenuHeader.svelte.d.ts +2 -4
- package/dist/components/dropdown-menu/components/DropdownMenuItem.svelte +27 -30
- package/dist/components/dropdown-menu/components/DropdownMenuItem.svelte.d.ts +1 -1
- package/dist/components/dropdown-menu/components/DropdownMenuSeparator.svelte +9 -11
- package/dist/components/dropdown-menu/components/DropdownMenuSeparator.svelte.d.ts +2 -4
- package/dist/components/fonts/TeraFontMono.svelte +4 -4
- package/dist/components/fonts/TeraFontMono.svelte.d.ts +1 -0
- package/dist/components/fonts/TeraFontSansSerif.svelte +4 -4
- package/dist/components/fonts/TeraFontSansSerif.svelte.d.ts +1 -1
- package/dist/components/header/Header.svelte +6 -9
- package/dist/components/header/header.scss +1 -1
- package/dist/components/icons/IconArrowBigRightFilled.svelte +3 -7
- package/dist/components/icons/IconBook.svelte +3 -6
- package/dist/components/icons/IconBookmarkPlus.svelte +3 -6
- package/dist/components/icons/IconCalculator.svelte +3 -6
- package/dist/components/icons/IconCheck.svelte +3 -6
- package/dist/components/icons/IconChevronDown.svelte +3 -6
- package/dist/components/icons/IconCoin.svelte +3 -6
- package/dist/components/icons/IconCoinConvert.svelte +2 -5
- package/dist/components/icons/IconCopy.svelte +3 -6
- package/dist/components/icons/IconCopyCheckFilled.svelte +3 -6
- package/dist/components/icons/IconHamburger.svelte +3 -6
- package/dist/components/icons/IconLanguage.svelte +3 -6
- package/dist/components/icons/IconLoader2.svelte +3 -6
- package/dist/components/icons/IconLogout.svelte +3 -6
- package/dist/components/icons/IconMoon.svelte +3 -6
- package/dist/components/icons/IconPointFilled.svelte +3 -6
- package/dist/components/icons/IconSearch.svelte +3 -6
- package/dist/components/icons/IconSettings.svelte +3 -6
- package/dist/components/icons/IconSun.svelte +3 -6
- package/dist/components/icons/IconSwitchHorizontal.svelte +3 -6
- package/dist/components/icons/IconSwitchVertical.svelte +3 -6
- package/dist/components/icons/IconTransform.svelte +3 -6
- package/dist/components/icons/IconX.svelte +3 -6
- package/dist/components/input/Input.d.ts +2 -2
- package/dist/components/input/Input.js +10 -10
- package/dist/components/input/Input.svelte +10 -26
- package/dist/components/label/Label.d.ts +2 -2
- package/dist/components/label/Label.js +2 -2
- package/dist/components/label/Label.svelte +4 -12
- package/dist/components/language-picker-button/LanguagePickerButton.svelte +23 -42
- package/dist/components/light-dark-toggle/LightDarkToggle.svelte +21 -26
- package/dist/components/marketing/FeatureCard.svelte +37 -0
- package/dist/components/marketing/FeatureCard.svelte.d.ts +13 -0
- package/dist/components/marketing/PricingCard.svelte +48 -0
- package/dist/components/marketing/PricingCard.svelte.d.ts +15 -0
- package/dist/components/marketing/StatBlock.svelte +14 -0
- package/dist/components/marketing/StatBlock.svelte.d.ts +10 -0
- package/dist/components/marketing/TestimonialCard.svelte +24 -0
- package/dist/components/marketing/TestimonialCard.svelte.d.ts +12 -0
- package/dist/components/marketing/index.d.ts +4 -0
- package/dist/components/marketing/index.js +4 -0
- package/dist/components/popover/Popover.d.ts +32 -13
- package/dist/components/popover/Popover.js +1 -7
- package/dist/components/popover/Popover.svelte +40 -158
- package/dist/components/popover/Popover.svelte.d.ts +2 -2
- package/dist/components/popover-responsive/PopoverResponsive.d.ts +18 -7
- package/dist/components/popover-responsive/PopoverResponsive.js +1 -7
- package/dist/components/popover-responsive/PopoverResponsive.svelte +25 -87
- package/dist/components/popover-responsive/PopoverResponsive.svelte.d.ts +2 -11
- package/dist/components/select/Select.d.ts +60 -23
- package/dist/components/select/Select.js +14 -35
- package/dist/components/select/Select.svelte +157 -28
- package/dist/components/select/Select.svelte.d.ts +2 -3
- package/dist/components/select/index.d.ts +1 -1
- package/dist/components/side-navigation/SideNavigation.svelte +73 -96
- package/dist/components/side-navigation/SideNavigationItem.svelte +2 -2
- package/dist/components/side-navigation/SideNavigationLayout.svelte +3 -5
- package/dist/components/side-navigation/sidenav.scss +17 -13
- package/dist/components/skeleton/Skeleton.svelte +48 -0
- package/dist/components/skeleton/Skeleton.svelte.d.ts +12 -0
- package/dist/components/skeleton/index.d.ts +1 -0
- package/dist/components/skeleton/index.js +1 -0
- package/dist/components/slider/Slider.d.ts +25 -15
- package/dist/components/slider/Slider.js +1 -7
- package/dist/components/slider/Slider.svelte +38 -164
- package/dist/components/slider/Slider.svelte.d.ts +1 -1
- package/dist/components/spinner/Spinner.svelte +39 -0
- package/dist/components/spinner/Spinner.svelte.d.ts +10 -0
- package/dist/components/spinner/index.d.ts +1 -0
- package/dist/components/spinner/index.js +1 -0
- package/dist/components/star-rating/StarRating.svelte +33 -49
- package/dist/components/switch/Switch.d.ts +19 -4
- package/dist/components/switch/Switch.js +4 -0
- package/dist/components/switch/Switch.svelte +13 -17
- package/dist/components/switch/Switch.svelte.d.ts +2 -2
- package/dist/components/table/Table.svelte +68 -0
- package/dist/components/table/Table.svelte.d.ts +40 -0
- package/dist/components/table/index.d.ts +1 -0
- package/dist/components/table/index.js +1 -0
- package/dist/components/tabs/Tabs.svelte.d.ts +45 -16
- package/dist/components/tabs/Tabs.svelte.js +8 -18
- package/dist/components/tabs/components/Tabs.svelte +27 -33
- package/dist/components/tabs/components/Tabs.svelte.d.ts +1 -1
- package/dist/components/tabs/components/TabsContent.svelte +13 -36
- package/dist/components/tabs/components/TabsContent.svelte.d.ts +2 -5
- package/dist/components/tabs/components/TabsItem.svelte +43 -32
- package/dist/components/tabs/components/TabsItem.svelte.d.ts +2 -5
- package/dist/components/tabs/components/TabsList.svelte +90 -58
- package/dist/components/tabs/components/TabsList.svelte.d.ts +2 -4
- package/dist/components/tera-ui-context/TeraUiContext.svelte +13 -26
- package/dist/components/text-area/TextArea.d.ts +2 -2
- package/dist/components/text-area/TextArea.js +9 -9
- package/dist/components/text-area/TextArea.svelte +41 -65
- package/dist/components/toast/ToastContainer.svelte +50 -0
- package/dist/components/toast/ToastContainer.svelte.d.ts +18 -0
- package/dist/components/toast/index.d.ts +3 -0
- package/dist/components/toast/index.js +2 -0
- package/dist/components/toast/toast.svelte.d.ts +22 -0
- package/dist/components/toast/toast.svelte.js +18 -0
- package/dist/components/tooltip/Tooltip.d.ts +23 -0
- package/dist/components/tooltip/Tooltip.js +1 -0
- package/dist/components/tooltip/Tooltip.svelte +30 -0
- package/dist/components/tooltip/Tooltip.svelte.d.ts +4 -0
- package/dist/components/tooltip/index.d.ts +2 -0
- package/dist/components/tooltip/index.js +1 -0
- package/dist/components/user-avatar-with-menu/UserAvatarWithMenu.svelte +48 -69
- package/dist/index.d.ts +19 -2
- package/dist/index.js +12 -0
- package/dist/llms/accordion.md +90 -0
- package/dist/llms/ai.md +110 -0
- package/dist/llms/alert.md +29 -0
- package/dist/llms/avatar.md +34 -0
- package/dist/llms/badge.md +31 -0
- package/dist/llms/brand-logo.md +30 -0
- package/dist/llms/button.md +37 -0
- package/dist/llms/card.md +32 -0
- package/dist/llms/checkbox.md +35 -0
- package/dist/llms/colors.md +161 -0
- package/dist/llms/combobox.md +40 -0
- package/dist/llms/command.md +7 -0
- package/dist/llms/date-range-picker.md +36 -0
- package/dist/llms/dialog.md +45 -0
- package/dist/llms/drawer.md +30 -0
- package/dist/llms/dropdown-menu.md +112 -0
- package/dist/llms/fonts.md +7 -0
- package/dist/llms/header.md +26 -0
- package/dist/llms/icons.md +43 -0
- package/dist/llms/index.md +65 -0
- package/dist/llms/input.md +37 -0
- package/dist/llms/label.md +30 -0
- package/dist/llms/language-picker-button.md +30 -0
- package/dist/llms/light-dark-toggle.md +26 -0
- package/dist/llms/marketing.md +95 -0
- package/dist/llms/popover-responsive.md +32 -0
- package/dist/llms/popover.md +40 -0
- package/dist/llms/select.md +44 -0
- package/dist/llms/side-navigation.md +30 -0
- package/dist/llms/skeleton.md +28 -0
- package/dist/llms/slider.md +36 -0
- package/dist/llms/spinner.md +25 -0
- package/dist/llms/star-rating.md +31 -0
- package/dist/llms/switch.md +33 -0
- package/dist/llms/table.md +30 -0
- package/dist/llms/tabs.md +92 -0
- package/dist/llms/tera-ui-context.md +30 -0
- package/dist/llms/text-area.md +39 -0
- package/dist/llms/toast.md +7 -0
- package/dist/llms/tooltip.md +32 -0
- package/dist/llms/user-avatar-with-menu.md +28 -0
- package/dist/paraglide/README.md +71 -2
- package/dist/paraglide/messages/_index.d.ts +7 -21
- package/dist/paraglide/messages/_index.js +7 -485
- package/dist/paraglide/messages/text_account_settings.d.ts +16 -0
- package/dist/paraglide/messages/text_account_settings.js +234 -0
- package/dist/paraglide/messages/text_calces_documentation.d.ts +16 -0
- package/dist/paraglide/messages/text_calces_documentation.js +234 -0
- package/dist/paraglide/messages/text_calces_scientific_calculator.d.ts +16 -0
- package/dist/paraglide/messages/text_calces_scientific_calculator.js +234 -0
- package/dist/paraglide/messages/text_currency_converter.d.ts +16 -0
- package/dist/paraglide/messages/text_currency_converter.js +234 -0
- package/dist/paraglide/messages/text_logout.d.ts +16 -0
- package/dist/paraglide/messages/text_logout.js +234 -0
- package/dist/paraglide/messages/text_select_language.d.ts +16 -0
- package/dist/paraglide/messages/text_select_language.js +234 -0
- package/dist/paraglide/messages/text_unit_converter.d.ts +16 -0
- package/dist/paraglide/messages/text_unit_converter.js +234 -0
- package/dist/paraglide/registry.d.ts +13 -0
- package/dist/paraglide/registry.js +15 -0
- package/dist/paraglide/runtime.d.ts +242 -125
- package/dist/paraglide/runtime.js +467 -143
- package/dist/paraglide/server.d.ts +13 -20
- package/dist/paraglide/server.js +92 -40
- package/dist/stories/ComponentOverview.stories.svelte +533 -0
- package/dist/stories/ComponentOverview.stories.svelte.d.ts +6 -0
- package/dist/tera-i18n/dev-tools/translator/gpt-translator-i18n-message.js +130 -9
- package/dist/tera-i18n/dev-tools/translator/package-lock.json +14 -224
- package/dist/tera-i18n/dev-tools/translator/package.json +1 -1
- package/dist/tera-i18n/dev-tools/translator/prompt/i18n-message-translate-prompt-calculator.md +34 -0
- package/dist/tera-i18n/dev-tools/translator/prompt/i18n-message-translate-prompt-cv-maker.md +149 -0
- package/dist/tera-i18n/dev-tools/translator/prompt/i18n-message-translate-prompt-system.txt +1 -1
- package/dist/tera-i18n/projects/common/all-language-data.js +70 -13
- package/dist/tera-i18n/projects/cv-maker/messages/ar-AE.json +94 -0
- package/dist/tera-i18n/projects/cv-maker/messages/ar-EG.json +94 -0
- package/dist/tera-i18n/projects/cv-maker/messages/ar-IQ.json +94 -0
- package/dist/tera-i18n/projects/cv-maker/messages/ar-SA.json +94 -0
- package/dist/tera-i18n/projects/cv-maker/messages/ar-SD.json +94 -0
- package/dist/tera-i18n/projects/cv-maker/messages/ar-YE.json +94 -0
- package/dist/tera-i18n/projects/cv-maker/messages/ar.json +58 -15
- package/dist/tera-i18n/projects/cv-maker/messages/bg.json +57 -14
- package/dist/tera-i18n/projects/cv-maker/messages/bn.json +65 -22
- package/dist/tera-i18n/projects/cv-maker/messages/ca.json +54 -11
- package/dist/tera-i18n/projects/cv-maker/messages/cs.json +59 -16
- package/dist/tera-i18n/projects/cv-maker/messages/da.json +51 -8
- package/dist/tera-i18n/projects/cv-maker/messages/de.json +58 -15
- package/dist/tera-i18n/projects/cv-maker/messages/el.json +71 -28
- package/dist/tera-i18n/projects/cv-maker/messages/en-AE.json +94 -0
- package/dist/tera-i18n/projects/cv-maker/messages/en-AU.json +94 -0
- package/dist/tera-i18n/projects/cv-maker/messages/en-CA.json +51 -8
- package/dist/tera-i18n/projects/cv-maker/messages/en-GB.json +50 -7
- package/dist/tera-i18n/projects/cv-maker/messages/en-ID.json +94 -0
- package/dist/tera-i18n/projects/cv-maker/messages/en-IN.json +54 -11
- package/dist/tera-i18n/projects/cv-maker/messages/en-NZ.json +94 -0
- package/dist/tera-i18n/projects/cv-maker/messages/en-PH.json +94 -0
- package/dist/tera-i18n/projects/cv-maker/messages/en-PK.json +58 -15
- package/dist/tera-i18n/projects/cv-maker/messages/en-SA.json +94 -0
- package/dist/tera-i18n/projects/cv-maker/messages/en-US.json +51 -8
- package/dist/tera-i18n/projects/cv-maker/messages/en-ZA.json +52 -9
- package/dist/tera-i18n/projects/cv-maker/messages/en.json +45 -16
- package/dist/tera-i18n/projects/cv-maker/messages/es-419.json +94 -0
- package/dist/tera-i18n/projects/cv-maker/messages/es-AR.json +94 -0
- package/dist/tera-i18n/projects/cv-maker/messages/es-ES.json +94 -0
- package/dist/tera-i18n/projects/cv-maker/messages/es-MX.json +94 -0
- package/dist/tera-i18n/projects/cv-maker/messages/es.json +53 -10
- package/dist/tera-i18n/projects/cv-maker/messages/fi.json +52 -9
- package/dist/tera-i18n/projects/cv-maker/messages/fr-MA.json +94 -0
- package/dist/tera-i18n/projects/cv-maker/messages/fr.json +54 -11
- package/dist/tera-i18n/projects/cv-maker/messages/he.json +55 -12
- package/dist/tera-i18n/projects/cv-maker/messages/hi.json +59 -16
- package/dist/tera-i18n/projects/cv-maker/messages/hr.json +94 -0
- package/dist/tera-i18n/projects/cv-maker/messages/hu.json +63 -20
- package/dist/tera-i18n/projects/cv-maker/messages/id.json +60 -17
- package/dist/tera-i18n/projects/cv-maker/messages/it.json +53 -10
- package/dist/tera-i18n/projects/cv-maker/messages/ja.json +62 -19
- package/dist/tera-i18n/projects/cv-maker/messages/ko.json +61 -18
- package/dist/tera-i18n/projects/cv-maker/messages/lt.json +61 -18
- package/dist/tera-i18n/projects/cv-maker/messages/lv.json +61 -18
- package/dist/tera-i18n/projects/cv-maker/messages/ms-MY.json +60 -17
- package/dist/tera-i18n/projects/cv-maker/messages/ms.json +61 -18
- package/dist/tera-i18n/projects/cv-maker/messages/nl.json +53 -10
- package/dist/tera-i18n/projects/cv-maker/messages/no.json +54 -11
- package/dist/tera-i18n/projects/cv-maker/messages/pl.json +59 -16
- package/dist/tera-i18n/projects/cv-maker/messages/pt-BR.json +58 -15
- package/dist/tera-i18n/projects/cv-maker/messages/pt-PT.json +59 -16
- package/dist/tera-i18n/projects/cv-maker/messages/pt.json +66 -23
- package/dist/tera-i18n/projects/cv-maker/messages/ro.json +52 -9
- package/dist/tera-i18n/projects/cv-maker/messages/ru.json +57 -14
- package/dist/tera-i18n/projects/cv-maker/messages/sk.json +62 -19
- package/dist/tera-i18n/projects/cv-maker/messages/sl.json +57 -14
- package/dist/tera-i18n/projects/cv-maker/messages/sq.json +59 -16
- package/dist/tera-i18n/projects/cv-maker/messages/sr.json +91 -48
- package/dist/tera-i18n/projects/cv-maker/messages/sv.json +56 -13
- package/dist/tera-i18n/projects/cv-maker/messages/sw.json +62 -19
- package/dist/tera-i18n/projects/cv-maker/messages/ta.json +72 -29
- package/dist/tera-i18n/projects/cv-maker/messages/te.json +75 -32
- package/dist/tera-i18n/projects/cv-maker/messages/th.json +62 -19
- package/dist/tera-i18n/projects/cv-maker/messages/tl.json +77 -34
- package/dist/tera-i18n/projects/cv-maker/messages/tr.json +63 -20
- package/dist/tera-i18n/projects/cv-maker/messages/uk.json +63 -20
- package/dist/tera-i18n/projects/cv-maker/messages/vi.json +64 -21
- package/dist/tera-i18n/projects/cv-maker/messages/zh-CN.json +63 -20
- package/dist/tera-i18n/projects/cv-maker/messages/zh-TW.json +58 -15
- package/dist/tera-i18n/projects/cv-maker/messages/zh.json +94 -0
- package/dist/tera-i18n/projects/cv-maker/project.inlang/settings.json +82 -68
- package/dist/tera-i18n/projects/cv-maker/supported-language.js +36 -9
- package/dist/tera-i18n/projects/mathda/messages/en.json +4 -0
- package/dist/tera-i18n/projects/mathda/messages/vi.json +4 -0
- package/dist/tera-i18n/projects/mathda/project.inlang/settings.json +15 -0
- package/dist/tera-i18n/projects/mathda/supported-language.d.ts +1 -0
- package/dist/tera-i18n/projects/mathda/supported-language.js +4 -0
- package/dist/tera-i18n/projects/tera-calculator/messages/bg.json +149 -72
- package/dist/tera-i18n/projects/tera-calculator/messages/bn.json +149 -72
- package/dist/tera-i18n/projects/tera-calculator/messages/ca.json +139 -62
- package/dist/tera-i18n/projects/tera-calculator/messages/cs.json +132 -55
- package/dist/tera-i18n/projects/tera-calculator/messages/da.json +132 -55
- package/dist/tera-i18n/projects/tera-calculator/messages/de.json +181 -104
- package/dist/tera-i18n/projects/tera-calculator/messages/el.json +145 -68
- package/dist/tera-i18n/projects/tera-calculator/messages/en-IN.json +183 -0
- package/dist/tera-i18n/projects/tera-calculator/messages/en-PH.json +183 -0
- package/dist/tera-i18n/projects/tera-calculator/messages/en-US.json +183 -0
- package/dist/tera-i18n/projects/tera-calculator/messages/en.json +187 -104
- package/dist/tera-i18n/projects/tera-calculator/messages/es.json +181 -104
- package/dist/tera-i18n/projects/tera-calculator/messages/fi.json +137 -60
- package/dist/tera-i18n/projects/tera-calculator/messages/fr.json +180 -103
- package/dist/tera-i18n/projects/tera-calculator/messages/hi.json +136 -59
- package/dist/tera-i18n/projects/tera-calculator/messages/hu.json +141 -64
- package/dist/tera-i18n/projects/tera-calculator/messages/id.json +132 -55
- package/dist/tera-i18n/projects/tera-calculator/messages/it.json +180 -103
- package/dist/tera-i18n/projects/tera-calculator/messages/ja.json +136 -59
- package/dist/tera-i18n/projects/tera-calculator/messages/ko.json +133 -56
- package/dist/tera-i18n/projects/tera-calculator/messages/lt.json +140 -63
- package/dist/tera-i18n/projects/tera-calculator/messages/lv.json +141 -64
- package/dist/tera-i18n/projects/tera-calculator/messages/ms.json +139 -62
- package/dist/tera-i18n/projects/tera-calculator/messages/nl.json +145 -68
- package/dist/tera-i18n/projects/tera-calculator/messages/no.json +131 -54
- package/dist/tera-i18n/projects/tera-calculator/messages/pl.json +134 -57
- package/dist/tera-i18n/projects/tera-calculator/messages/pt.json +180 -103
- package/dist/tera-i18n/projects/tera-calculator/messages/ro.json +136 -59
- package/dist/tera-i18n/projects/tera-calculator/messages/ru.json +180 -103
- package/dist/tera-i18n/projects/tera-calculator/messages/sk.json +135 -58
- package/dist/tera-i18n/projects/tera-calculator/messages/sl.json +139 -62
- package/dist/tera-i18n/projects/tera-calculator/messages/sq.json +148 -71
- package/dist/tera-i18n/projects/tera-calculator/messages/sr.json +141 -64
- package/dist/tera-i18n/projects/tera-calculator/messages/sv.json +134 -57
- package/dist/tera-i18n/projects/tera-calculator/messages/sw.json +152 -75
- package/dist/tera-i18n/projects/tera-calculator/messages/ta.json +159 -82
- package/dist/tera-i18n/projects/tera-calculator/messages/te.json +165 -88
- package/dist/tera-i18n/projects/tera-calculator/messages/th.json +136 -59
- package/dist/tera-i18n/projects/tera-calculator/messages/tl.json +146 -69
- package/dist/tera-i18n/projects/tera-calculator/messages/tr.json +135 -58
- package/dist/tera-i18n/projects/tera-calculator/messages/uk.json +142 -65
- package/dist/tera-i18n/projects/tera-calculator/messages/vi.json +181 -104
- package/dist/tera-i18n/projects/tera-calculator/messages/zh-CN.json +129 -52
- package/dist/tera-i18n/projects/tera-calculator/messages/zh-TW.json +135 -58
- package/dist/tera-i18n/projects/tera-calculator/project.inlang/settings.json +51 -53
- package/dist/tera-i18n/projects/tera-calculator/supported-language.js +6 -3
- package/dist/themes/tera-ui-base.css +242 -77
- package/dist/themes/theme-ai.css +100 -0
- package/dist/themes/theme-marketing.css +91 -0
- package/dist/themes/theme-professional.css +41 -0
- package/package.json +36 -29
- package/dist/paraglide/messages/ar.d.ts +0 -9
- package/dist/paraglide/messages/ar.js +0 -31
- package/dist/paraglide/messages/bg.d.ts +0 -9
- package/dist/paraglide/messages/bg.js +0 -31
- package/dist/paraglide/messages/bn.d.ts +0 -9
- package/dist/paraglide/messages/bn.js +0 -31
- package/dist/paraglide/messages/ca.d.ts +0 -9
- package/dist/paraglide/messages/ca.js +0 -31
- package/dist/paraglide/messages/cs.d.ts +0 -9
- package/dist/paraglide/messages/cs.js +0 -31
- package/dist/paraglide/messages/da.d.ts +0 -9
- package/dist/paraglide/messages/da.js +0 -31
- package/dist/paraglide/messages/de.d.ts +0 -9
- package/dist/paraglide/messages/de.js +0 -31
- package/dist/paraglide/messages/el.d.ts +0 -9
- package/dist/paraglide/messages/el.js +0 -31
- package/dist/paraglide/messages/en.d.ts +0 -9
- package/dist/paraglide/messages/en.js +0 -31
- package/dist/paraglide/messages/es.d.ts +0 -9
- package/dist/paraglide/messages/es.js +0 -31
- package/dist/paraglide/messages/fi.d.ts +0 -9
- package/dist/paraglide/messages/fi.js +0 -31
- package/dist/paraglide/messages/fr.d.ts +0 -9
- package/dist/paraglide/messages/fr.js +0 -31
- package/dist/paraglide/messages/he.d.ts +0 -9
- package/dist/paraglide/messages/he.js +0 -31
- package/dist/paraglide/messages/hi.d.ts +0 -9
- package/dist/paraglide/messages/hi.js +0 -31
- package/dist/paraglide/messages/hu.d.ts +0 -9
- package/dist/paraglide/messages/hu.js +0 -31
- package/dist/paraglide/messages/id.d.ts +0 -9
- package/dist/paraglide/messages/id.js +0 -31
- package/dist/paraglide/messages/it.d.ts +0 -9
- package/dist/paraglide/messages/it.js +0 -31
- package/dist/paraglide/messages/ja.d.ts +0 -9
- package/dist/paraglide/messages/ja.js +0 -31
- package/dist/paraglide/messages/ko.d.ts +0 -9
- package/dist/paraglide/messages/ko.js +0 -31
- package/dist/paraglide/messages/lt.d.ts +0 -9
- package/dist/paraglide/messages/lt.js +0 -31
- package/dist/paraglide/messages/lv.d.ts +0 -9
- package/dist/paraglide/messages/lv.js +0 -31
- package/dist/paraglide/messages/ms.d.ts +0 -9
- package/dist/paraglide/messages/ms.js +0 -31
- package/dist/paraglide/messages/nl.d.ts +0 -9
- package/dist/paraglide/messages/nl.js +0 -31
- package/dist/paraglide/messages/no.d.ts +0 -9
- package/dist/paraglide/messages/no.js +0 -31
- package/dist/paraglide/messages/pl.d.ts +0 -9
- package/dist/paraglide/messages/pl.js +0 -31
- package/dist/paraglide/messages/pt.d.ts +0 -9
- package/dist/paraglide/messages/pt.js +0 -31
- package/dist/paraglide/messages/ro.d.ts +0 -9
- package/dist/paraglide/messages/ro.js +0 -31
- package/dist/paraglide/messages/ru.d.ts +0 -9
- package/dist/paraglide/messages/ru.js +0 -31
- package/dist/paraglide/messages/sk.d.ts +0 -9
- package/dist/paraglide/messages/sk.js +0 -31
- package/dist/paraglide/messages/sl.d.ts +0 -9
- package/dist/paraglide/messages/sl.js +0 -31
- package/dist/paraglide/messages/sq.d.ts +0 -9
- package/dist/paraglide/messages/sq.js +0 -31
- package/dist/paraglide/messages/sr.d.ts +0 -9
- package/dist/paraglide/messages/sr.js +0 -31
- package/dist/paraglide/messages/sv.d.ts +0 -9
- package/dist/paraglide/messages/sv.js +0 -31
- package/dist/paraglide/messages/sw.d.ts +0 -9
- package/dist/paraglide/messages/sw.js +0 -31
- package/dist/paraglide/messages/ta.d.ts +0 -9
- package/dist/paraglide/messages/ta.js +0 -31
- package/dist/paraglide/messages/te.d.ts +0 -9
- package/dist/paraglide/messages/te.js +0 -31
- package/dist/paraglide/messages/th.d.ts +0 -9
- package/dist/paraglide/messages/th.js +0 -31
- package/dist/paraglide/messages/tl.d.ts +0 -9
- package/dist/paraglide/messages/tl.js +0 -31
- package/dist/paraglide/messages/tr.d.ts +0 -9
- package/dist/paraglide/messages/tr.js +0 -31
- package/dist/paraglide/messages/uk.d.ts +0 -9
- package/dist/paraglide/messages/uk.js +0 -31
- package/dist/paraglide/messages/vi.d.ts +0 -9
- package/dist/paraglide/messages/vi.js +0 -31
- package/dist/paraglide/messages/zh-CN.d.ts +0 -9
- package/dist/paraglide/messages/zh-CN.js +0 -31
- package/dist/paraglide/messages/zh-TW.d.ts +0 -9
- package/dist/paraglide/messages/zh-TW.js +0 -31
- package/dist/tera-i18n/dev-tools/translator/prompt/i18n-message-translate-prompt-cv-maker.txt +0 -21
- package/dist/tera-i18n/projects/cv-maker/project.inlang/project_id +0 -1
- package/dist/tera-i18n/projects/tera-calculator/messages/ar.json +0 -106
- package/dist/tera-i18n/projects/tera-calculator/messages/he.json +0 -106
- package/dist/tera-i18n/projects/tera-calculator/project.inlang/project_id +0 -1
- package/dist/tera-i18n/projects/tera-system-ui/project.inlang/.meta.json +0 -3
- package/dist/tera-i18n/projects/tera-system-ui/project.inlang/README.md +0 -103
- package/dist/tera-i18n/projects/tera-system-ui/project.inlang/project_id +0 -1
- package/dist/themes/tw-preset.cjs +0 -160
- package/dist/themes/tw-preset.d.cts +0 -157
|
@@ -1,18 +1,37 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* @component Popover - Floating panel anchored to a trigger element.
|
|
3
|
+
* Built on BitsUI Popover primitive with portal rendering.
|
|
4
|
+
*/
|
|
2
5
|
import type { Snippet } from "svelte";
|
|
3
|
-
|
|
4
|
-
export declare const styles: import("tailwind-variants").TVReturnType<{}, undefined, "", {}, undefined, import("tailwind-variants").TVReturnType<{}, undefined, "", unknown, unknown, undefined>>;
|
|
5
|
-
type PopoverVariants = VariantProps<typeof styles>;
|
|
6
|
-
export interface PopoverProps extends HTMLAttributes<HTMLDivElement>, PopoverVariants {
|
|
6
|
+
export interface PopoverProps {
|
|
7
7
|
children?: Snippet;
|
|
8
|
+
/** Snippet used as the clickable trigger that opens the popover. */
|
|
9
|
+
trigger?: Snippet;
|
|
10
|
+
/** Additional CSS classes for the popover content panel. */
|
|
8
11
|
class?: string;
|
|
9
|
-
|
|
10
|
-
offset?: number;
|
|
11
|
-
padding?: number;
|
|
12
|
+
/** Whether the popover is open. Bindable. */
|
|
12
13
|
open?: boolean;
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
/** Which side of the trigger the popover appears on. */
|
|
15
|
+
side?: 'top' | 'bottom' | 'left' | 'right';
|
|
16
|
+
/** Distance in pixels between the trigger and popover panel. */
|
|
17
|
+
sideOffset?: number;
|
|
18
|
+
/** Alignment of the popover relative to the trigger. */
|
|
19
|
+
align?: 'start' | 'center' | 'end';
|
|
20
|
+
/** Additional offset in pixels along the alignment axis. */
|
|
21
|
+
alignOffset?: number;
|
|
22
|
+
/** Whether clicking outside the popover closes it. */
|
|
23
|
+
closeOnClickOutside?: boolean;
|
|
24
|
+
/** Whether pressing Escape closes the popover. Defaults to true. */
|
|
25
|
+
closeOnEscape?: boolean;
|
|
26
|
+
/** Whether focus is trapped inside the popover content while open. */
|
|
27
|
+
trapFocus?: boolean;
|
|
28
|
+
/** Prevent the page from scrolling while the popover is open. */
|
|
29
|
+
preventScroll?: boolean;
|
|
30
|
+
/** Called when the user interacts outside the popover boundaries. */
|
|
31
|
+
onInteractOutside?: () => void;
|
|
32
|
+
/** ARIA role for the popover content element. */
|
|
33
|
+
role?: string;
|
|
34
|
+
/** Bindable reference to the popover content element. */
|
|
35
|
+
ref?: HTMLElement | null;
|
|
36
|
+
[key: string]: unknown;
|
|
17
37
|
}
|
|
18
|
-
export {};
|
|
@@ -1,158 +1,40 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
middleware: [
|
|
42
|
-
offset(offsetAmount),
|
|
43
|
-
size({
|
|
44
|
-
apply({rects, elements}) {
|
|
45
|
-
Object.assign(elements.floating.style, {
|
|
46
|
-
minWidth: `${rects.reference.width}px`,
|
|
47
|
-
maxWidth: `${window.innerWidth - 16}px`,
|
|
48
|
-
});
|
|
49
|
-
},
|
|
50
|
-
}),
|
|
51
|
-
enableFlip ? flip() : undefined,
|
|
52
|
-
shift({padding: paddingAmount}),
|
|
53
|
-
arrow({element: arrowElement}),
|
|
54
|
-
],
|
|
55
|
-
}).then(({x, y, placement, middlewareData}) => {
|
|
56
|
-
Object.assign(popover.style, {
|
|
57
|
-
left: `${x}px`,
|
|
58
|
-
top: `${y}px`,
|
|
59
|
-
});
|
|
60
|
-
//
|
|
61
|
-
// // Accessing the data
|
|
62
|
-
// const {x: arrowX, y: arrowY} = middlewareData.arrow;
|
|
63
|
-
//
|
|
64
|
-
// const staticSide = {
|
|
65
|
-
// top: 'bottom',
|
|
66
|
-
// right: 'left',
|
|
67
|
-
// bottom: 'top',
|
|
68
|
-
// left: 'right',
|
|
69
|
-
// }[placement.split('-')[0]];
|
|
70
|
-
//
|
|
71
|
-
// Object.assign(arrowElement.style, {
|
|
72
|
-
// left: arrowX != null ? `${arrowX}px` : '',
|
|
73
|
-
// top: arrowY != null ? `${arrowY}px` : '',
|
|
74
|
-
// right: '',
|
|
75
|
-
// bottom: '',
|
|
76
|
-
// [staticSide]: '-4px',
|
|
77
|
-
// });
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
onMount(() => {
|
|
82
|
-
if (autoTrigger)
|
|
83
|
-
triggerRef?.addEventListener("click", togglePopover);
|
|
84
|
-
|
|
85
|
-
})
|
|
86
|
-
|
|
87
|
-
onDestroy(() => {
|
|
88
|
-
if (autoTrigger)
|
|
89
|
-
triggerRef?.removeEventListener("click", togglePopover);
|
|
90
|
-
|
|
91
|
-
})
|
|
92
|
-
|
|
93
|
-
$effect(() => {
|
|
94
|
-
let cleanup: any
|
|
95
|
-
|
|
96
|
-
if (open) {
|
|
97
|
-
hasOpenedYet = true
|
|
98
|
-
updatePosition()
|
|
99
|
-
|
|
100
|
-
// Start auto updates.
|
|
101
|
-
cleanup = autoUpdate(
|
|
102
|
-
triggerRef,
|
|
103
|
-
popover,
|
|
104
|
-
updatePosition,
|
|
105
|
-
);
|
|
106
|
-
} else {
|
|
107
|
-
cleanup?.()
|
|
108
|
-
if (focusTriggerAfterClose && hasOpenedYet) {
|
|
109
|
-
try {
|
|
110
|
-
triggerRef.focus()
|
|
111
|
-
} catch (e) {
|
|
112
|
-
console.warn('Trigger element focus after close Popover error', e)
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
return () => {
|
|
118
|
-
cleanup?.()
|
|
119
|
-
}
|
|
120
|
-
})
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
function spin(node, {duration}) {
|
|
124
|
-
return {
|
|
125
|
-
duration,
|
|
126
|
-
css: (t) => {
|
|
127
|
-
const eased = circInOut(t);
|
|
128
|
-
return `
|
|
129
|
-
transform-origin: 0% 0%;
|
|
130
|
-
transform: translateY(${eased * 10 - 10}px) scaleY(${eased * 0.05 + 0.95});
|
|
131
|
-
opacity: ${eased};
|
|
132
|
-
`
|
|
133
|
-
|
|
134
|
-
}
|
|
135
|
-
};
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
</script>
|
|
140
|
-
|
|
141
|
-
<!-- Popover Content -->
|
|
142
|
-
{#if open}
|
|
143
|
-
<div bind:this={popover}
|
|
144
|
-
data-open={open}
|
|
145
|
-
class={cn("overflow-hidden absolute z-10 bg-neutral-token-1 shadow-2xl rounded-container border border-neutral-token-5", className)}
|
|
146
|
-
use:clickOutside={{exceptElement: triggerRef}}
|
|
147
|
-
onclick_outside={handleClickOutside}
|
|
148
|
-
|
|
149
|
-
in:spin={{ duration: 200 }}
|
|
150
|
-
out:spin={{ duration: 200 }}
|
|
151
|
-
{...props}
|
|
152
|
-
>
|
|
153
|
-
<!-- <div bind:this={arrowElement} class="size-2 absolute rotate-45 bg-inherit"></div>-->
|
|
154
|
-
{@render children?.()}
|
|
155
|
-
</div>
|
|
156
|
-
{/if}
|
|
157
|
-
|
|
158
|
-
|
|
1
|
+
<script lang="ts">import { Popover as PopoverPrimitive } from 'bits-ui';
|
|
2
|
+
import { cn } from '../../utils/utils.js';
|
|
3
|
+
let { children, trigger, class: className, open = $bindable(false), side = 'bottom', sideOffset = 4, align = 'start', alignOffset, closeOnClickOutside = true, closeOnEscape = true, trapFocus, preventScroll, onInteractOutside, ref = $bindable(null), ...props } = $props();
|
|
4
|
+
</script>
|
|
5
|
+
|
|
6
|
+
<PopoverPrimitive.Root bind:open>
|
|
7
|
+
{#if trigger}
|
|
8
|
+
<PopoverPrimitive.Trigger>
|
|
9
|
+
{#snippet child({ props: triggerProps })}
|
|
10
|
+
<span {...triggerProps} class="inline-flex">
|
|
11
|
+
{@render trigger()}
|
|
12
|
+
</span>
|
|
13
|
+
{/snippet}
|
|
14
|
+
</PopoverPrimitive.Trigger>
|
|
15
|
+
{/if}
|
|
16
|
+
|
|
17
|
+
<PopoverPrimitive.Portal>
|
|
18
|
+
<PopoverPrimitive.Content
|
|
19
|
+
bind:ref
|
|
20
|
+
{side}
|
|
21
|
+
{sideOffset}
|
|
22
|
+
{align}
|
|
23
|
+
{alignOffset}
|
|
24
|
+
{trapFocus}
|
|
25
|
+
{preventScroll}
|
|
26
|
+
interactOutsideBehavior={closeOnClickOutside ? 'close' : 'ignore'}
|
|
27
|
+
escapeKeydownBehavior={closeOnEscape ? 'close' : 'ignore'}
|
|
28
|
+
onInteractOutside={() => onInteractOutside?.()}
|
|
29
|
+
class={cn(
|
|
30
|
+
'z-50 overflow-hidden bg-surface rounded-container border border-border-default shadow-lg',
|
|
31
|
+
'animate-in fade-in zoom-in-95 duration-150',
|
|
32
|
+
'data-[state=closed]:animate-out data-[state=closed]:fade-out data-[state=closed]:zoom-out-95',
|
|
33
|
+
className
|
|
34
|
+
)}
|
|
35
|
+
{...props}
|
|
36
|
+
>
|
|
37
|
+
{@render children?.()}
|
|
38
|
+
</PopoverPrimitive.Content>
|
|
39
|
+
</PopoverPrimitive.Portal>
|
|
40
|
+
</PopoverPrimitive.Root>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
declare const Popover: import("svelte").Component<PopoverProps, {}, "open">;
|
|
1
|
+
import type { PopoverProps } from './Popover.js';
|
|
2
|
+
declare const Popover: import("svelte").Component<PopoverProps, {}, "ref" | "open">;
|
|
3
3
|
type Popover = ReturnType<typeof Popover>;
|
|
4
4
|
export default Popover;
|
|
@@ -1,11 +1,22 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* @component PopoverResponsive - Shows a Popover on desktop and a Dialog on mobile.
|
|
3
|
+
* Automatically switches at the 640 px breakpoint.
|
|
4
|
+
*/
|
|
2
5
|
import type { Snippet } from "svelte";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
type PopoverResponsiveVariants = VariantProps<typeof styles>;
|
|
6
|
-
export interface PopoverResponsiveProps extends HTMLAttributes<HTMLDivElement>, PopoverResponsiveVariants {
|
|
6
|
+
export interface PopoverResponsiveProps {
|
|
7
|
+
/** Content rendered inside the popover/dialog panel. */
|
|
7
8
|
children?: Snippet;
|
|
9
|
+
/** Snippet used as the clickable trigger. */
|
|
10
|
+
trigger?: Snippet;
|
|
11
|
+
/** Additional CSS classes for the content panel. */
|
|
8
12
|
class?: string;
|
|
9
|
-
|
|
13
|
+
/** Whether the panel is open. Bindable. */
|
|
14
|
+
open?: boolean;
|
|
15
|
+
/** Which side of the trigger the desktop popover appears on. */
|
|
16
|
+
side?: 'top' | 'bottom' | 'left' | 'right';
|
|
17
|
+
/** Distance in pixels between the trigger and popover (desktop only). */
|
|
18
|
+
sideOffset?: number;
|
|
19
|
+
/** Alignment of the popover relative to the trigger (desktop only). */
|
|
20
|
+
align?: 'start' | 'center' | 'end';
|
|
21
|
+
[key: string]: unknown;
|
|
10
22
|
}
|
|
11
|
-
export {};
|
|
@@ -1,87 +1,25 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
} = $props();
|
|
27
|
-
|
|
28
|
-
let openPopover = $state(false)
|
|
29
|
-
let openDialog = $state(false)
|
|
30
|
-
|
|
31
|
-
$effect(() => {
|
|
32
|
-
open = openPopover || openDialog
|
|
33
|
-
})
|
|
34
|
-
|
|
35
|
-
$effect(() => {
|
|
36
|
-
toggleOpen(open)
|
|
37
|
-
})
|
|
38
|
-
|
|
39
|
-
function toggleOpen(open?: boolean) {
|
|
40
|
-
if (getScreenWidth() >= SCREEN_BREAK_POINTS.sm) {
|
|
41
|
-
if (open === undefined) {
|
|
42
|
-
openPopover = !(openDialog || openPopover)
|
|
43
|
-
} else {
|
|
44
|
-
openPopover = open
|
|
45
|
-
}
|
|
46
|
-
openDialog = false
|
|
47
|
-
} else {
|
|
48
|
-
if (open === undefined) {
|
|
49
|
-
openDialog = !(openDialog || openPopover)
|
|
50
|
-
} else {
|
|
51
|
-
openDialog = open
|
|
52
|
-
}
|
|
53
|
-
openPopover = false
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
onMount(() => {
|
|
58
|
-
triggerRef?.addEventListener('click', (e) => {
|
|
59
|
-
e.stopPropagation()
|
|
60
|
-
toggleOpen()
|
|
61
|
-
})
|
|
62
|
-
})
|
|
63
|
-
</script>
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
<Popover bind:open={openPopover}
|
|
67
|
-
triggerRef={triggerRef}
|
|
68
|
-
autoTrigger={false}
|
|
69
|
-
padding={popoverPadding}
|
|
70
|
-
focusTriggerAfterClose={focusTriggerAfterClose}
|
|
71
|
-
offset={offset}
|
|
72
|
-
flip={flip}
|
|
73
|
-
class={className}
|
|
74
|
-
{...props}
|
|
75
|
-
>
|
|
76
|
-
{@render children?.()}
|
|
77
|
-
</Popover>
|
|
78
|
-
|
|
79
|
-
<Dialog bind:open={openDialog}
|
|
80
|
-
position="top"
|
|
81
|
-
padding="none"
|
|
82
|
-
class={className}
|
|
83
|
-
triggerRef={triggerRef}
|
|
84
|
-
focusTriggerAfterClose={focusTriggerAfterClose}
|
|
85
|
-
>
|
|
86
|
-
{@render children?.()}
|
|
87
|
-
</Dialog>
|
|
1
|
+
<script lang="ts">import { innerWidth } from 'svelte/reactivity/window';
|
|
2
|
+
import { Dialog } from '../dialog/index.js';
|
|
3
|
+
import { Popover } from '../popover/index.js';
|
|
4
|
+
let { children, trigger, class: className, open = $bindable(false), side = 'bottom', sideOffset = 4, align = 'start', ...props } = $props();
|
|
5
|
+
const isDesktop = $derived((innerWidth.current ?? 640) >= 640);
|
|
6
|
+
</script>
|
|
7
|
+
|
|
8
|
+
{#if isDesktop}
|
|
9
|
+
<!-- Desktop: bind open directly so both internal and external close work -->
|
|
10
|
+
<Popover bind:open {side} {sideOffset} {align} {trigger} class={className} {...props}>
|
|
11
|
+
{@render children?.()}
|
|
12
|
+
</Popover>
|
|
13
|
+
{:else}
|
|
14
|
+
<!-- Mobile: bind open directly to Dialog, toggle via wrapper button -->
|
|
15
|
+
<button
|
|
16
|
+
type="button"
|
|
17
|
+
class="inline-flex appearance-none bg-transparent p-0 border-0 cursor-pointer"
|
|
18
|
+
onclick={() => open = !open}
|
|
19
|
+
>
|
|
20
|
+
{@render trigger?.()}
|
|
21
|
+
</button>
|
|
22
|
+
<Dialog bind:open position="top" padding="none" class={className}>
|
|
23
|
+
{@render children?.()}
|
|
24
|
+
</Dialog>
|
|
25
|
+
{/if}
|
|
@@ -1,13 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
dialogPadding?: string;
|
|
4
|
-
popoverPadding?: number;
|
|
5
|
-
offset?: number;
|
|
6
|
-
open?: boolean;
|
|
7
|
-
focusTriggerAfterClose?: boolean;
|
|
8
|
-
flip?: boolean;
|
|
9
|
-
triggerRef?: HTMLElement;
|
|
10
|
-
};
|
|
11
|
-
declare const PopoverResponsive: import("svelte").Component<$$ComponentProps, {}, "open">;
|
|
1
|
+
import type { PopoverResponsiveProps } from './PopoverResponsive.js';
|
|
2
|
+
declare const PopoverResponsive: import("svelte").Component<PopoverResponsiveProps, {}, "open">;
|
|
12
3
|
type PopoverResponsive = ReturnType<typeof PopoverResponsive>;
|
|
13
4
|
export default PopoverResponsive;
|
|
@@ -1,40 +1,54 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
/**
|
|
2
|
+
* @component Select - Dropdown select with flat or grouped options, keyboard navigation, and style variants.
|
|
3
|
+
* Built on BitsUI Select primitive.
|
|
4
|
+
*/
|
|
5
|
+
import type { VariantProps } from "tailwind-variants";
|
|
6
|
+
export interface SelectOption {
|
|
7
|
+
/** Unique value submitted or passed to onchange. */
|
|
8
|
+
value: string;
|
|
9
|
+
/** Human-readable label shown in the list and trigger. */
|
|
10
|
+
label: string;
|
|
11
|
+
/** Prevents selecting this option. */
|
|
12
|
+
disabled?: boolean;
|
|
13
|
+
}
|
|
14
|
+
export interface SelectGroup {
|
|
15
|
+
/** Heading label displayed above the group's options. */
|
|
16
|
+
label: string;
|
|
17
|
+
/** Options belonging to this group. */
|
|
18
|
+
options: SelectOption[];
|
|
19
|
+
}
|
|
20
|
+
export declare const triggerStyles: import("tailwind-variants").TVReturnType<{
|
|
5
21
|
variant: {
|
|
6
22
|
outlined: string;
|
|
7
23
|
filled: string;
|
|
8
24
|
borderless: string;
|
|
9
25
|
};
|
|
10
|
-
disabled: {
|
|
11
|
-
true: string;
|
|
12
|
-
false: string;
|
|
13
|
-
};
|
|
14
26
|
size: {
|
|
15
27
|
sm: string;
|
|
16
28
|
md: string;
|
|
17
29
|
lg: string;
|
|
18
30
|
};
|
|
31
|
+
disabled: {
|
|
32
|
+
true: string;
|
|
33
|
+
};
|
|
19
34
|
status: {
|
|
20
35
|
error: string;
|
|
21
36
|
warning: string;
|
|
22
37
|
};
|
|
23
|
-
}, undefined, "w-full inline-flex items-center justify-
|
|
38
|
+
}, undefined, "w-full inline-flex items-center justify-between gap-2 rounded-md outline-none font-normal text-left transition-[border-color,box-shadow,background-color] ease-ui duration-150", {
|
|
24
39
|
variant: {
|
|
25
40
|
outlined: string;
|
|
26
41
|
filled: string;
|
|
27
42
|
borderless: string;
|
|
28
43
|
};
|
|
29
|
-
disabled: {
|
|
30
|
-
true: string;
|
|
31
|
-
false: string;
|
|
32
|
-
};
|
|
33
44
|
size: {
|
|
34
45
|
sm: string;
|
|
35
46
|
md: string;
|
|
36
47
|
lg: string;
|
|
37
48
|
};
|
|
49
|
+
disabled: {
|
|
50
|
+
true: string;
|
|
51
|
+
};
|
|
38
52
|
status: {
|
|
39
53
|
error: string;
|
|
40
54
|
warning: string;
|
|
@@ -45,25 +59,48 @@ export declare const styles: import("tailwind-variants").TVReturnType<{
|
|
|
45
59
|
filled: string;
|
|
46
60
|
borderless: string;
|
|
47
61
|
};
|
|
48
|
-
disabled: {
|
|
49
|
-
true: string;
|
|
50
|
-
false: string;
|
|
51
|
-
};
|
|
52
62
|
size: {
|
|
53
63
|
sm: string;
|
|
54
64
|
md: string;
|
|
55
65
|
lg: string;
|
|
56
66
|
};
|
|
67
|
+
disabled: {
|
|
68
|
+
true: string;
|
|
69
|
+
};
|
|
57
70
|
status: {
|
|
58
71
|
error: string;
|
|
59
72
|
warning: string;
|
|
60
73
|
};
|
|
61
|
-
}, undefined, "w-full inline-flex items-center justify-
|
|
62
|
-
type
|
|
63
|
-
export interface SelectProps extends
|
|
64
|
-
|
|
74
|
+
}, undefined, "w-full inline-flex items-center justify-between gap-2 rounded-md outline-none font-normal text-left transition-[border-color,box-shadow,background-color] ease-ui duration-150", unknown, unknown, undefined>>;
|
|
75
|
+
type TriggerVariants = VariantProps<typeof triggerStyles>;
|
|
76
|
+
export interface SelectProps extends TriggerVariants {
|
|
77
|
+
/** Selection mode. Use 'multiple' to allow picking several options. */
|
|
78
|
+
type?: 'single' | 'multiple';
|
|
79
|
+
/** Flat list of options. Use `groups` instead for grouped options. */
|
|
80
|
+
options?: SelectOption[];
|
|
81
|
+
/** Grouped options — renders labeled sections. Takes precedence over `options`. */
|
|
82
|
+
groups?: SelectGroup[];
|
|
83
|
+
/**
|
|
84
|
+
* Currently selected value(s). Bindable.
|
|
85
|
+
* A string for type='single', a string[] for type='multiple'.
|
|
86
|
+
*/
|
|
87
|
+
value?: string | string[];
|
|
88
|
+
/** Text shown in the trigger when nothing is selected. */
|
|
89
|
+
placeholder?: string;
|
|
90
|
+
/** Prevents all interaction. */
|
|
91
|
+
disabled?: boolean;
|
|
92
|
+
/** Whether keyboard navigation wraps from the last item to the first. */
|
|
93
|
+
loop?: boolean;
|
|
94
|
+
/** Allow deselecting the current value by clicking it again (single mode only). */
|
|
95
|
+
allowDeselect?: boolean;
|
|
96
|
+
/** Whether the select is required for form submission. */
|
|
97
|
+
required?: boolean;
|
|
98
|
+
/** Name attribute used when submitting within a form. */
|
|
99
|
+
name?: string;
|
|
100
|
+
/** Additional CSS classes for the trigger button. */
|
|
65
101
|
class?: string;
|
|
66
|
-
value
|
|
67
|
-
|
|
102
|
+
/** Called when the selected value changes. */
|
|
103
|
+
onchange?: (value: string | string[]) => void;
|
|
104
|
+
[key: string]: unknown;
|
|
68
105
|
}
|
|
69
106
|
export {};
|
|
@@ -1,45 +1,24 @@
|
|
|
1
1
|
import { tv } from "tailwind-variants";
|
|
2
|
-
export const
|
|
3
|
-
base: 'w-full inline-flex items-center justify-
|
|
2
|
+
export const triggerStyles = tv({
|
|
3
|
+
base: 'w-full inline-flex items-center justify-between gap-2 rounded-md outline-none font-normal text-left transition-[border-color,box-shadow,background-color] ease-ui duration-150',
|
|
4
4
|
variants: {
|
|
5
5
|
variant: {
|
|
6
|
-
outlined: 'border border-
|
|
7
|
-
filled: 'bg-
|
|
8
|
-
borderless: 'bg-transparent border-0 hover:bg-
|
|
9
|
-
},
|
|
10
|
-
disabled: {
|
|
11
|
-
true: 'cursor-not-allowed bg-neutral-token-3 text-neutral-token-7 border-neutral-token-5',
|
|
12
|
-
false: 'cursor-pointer',
|
|
6
|
+
outlined: 'border border-border-default bg-surface-control hover:border-interactive data-[state=open]:border-interactive-hover data-[state=open]:shadow-focus',
|
|
7
|
+
filled: 'bg-surface-sunken border border-transparent hover:bg-surface-hover data-[state=open]:bg-surface data-[state=open]:border-interactive-hover data-[state=open]:shadow-focus',
|
|
8
|
+
borderless: 'bg-transparent border-0 hover:bg-surface-raised',
|
|
13
9
|
},
|
|
14
10
|
size: {
|
|
15
|
-
sm: 'h-6
|
|
16
|
-
md: 'h-
|
|
17
|
-
lg: 'h-10 px-3
|
|
18
|
-
},
|
|
19
|
-
status: {
|
|
20
|
-
error: 'border-error-500 hover:border-error-400 focus:border-error-500 focus:shadow-[0_0_0_2px_rgba(239,68,68,0.1)]',
|
|
21
|
-
warning: 'border-warning-500 hover:border-warning-400 focus:border-warning-500 focus:shadow-[0_0_0_2px_rgba(249,115,22,0.1)]',
|
|
11
|
+
sm: 'h-6 px-3 text-sm',
|
|
12
|
+
md: 'h-9 px-3 text-sm',
|
|
13
|
+
lg: 'h-10 px-3 text-base',
|
|
22
14
|
},
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
{
|
|
26
|
-
variant: 'outlined',
|
|
27
|
-
disabled: true,
|
|
28
|
-
class: 'hover:border-neutral-token-5'
|
|
15
|
+
disabled: {
|
|
16
|
+
true: 'cursor-not-allowed bg-surface-sunken text-text-disabled border-border-default pointer-events-none',
|
|
29
17
|
},
|
|
30
|
-
{
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
class: 'hover:bg-neutral-token-3'
|
|
18
|
+
status: {
|
|
19
|
+
error: 'border-error-default hover:border-error-hover data-[state=open]:border-error-default data-[state=open]:shadow-focus-error',
|
|
20
|
+
warning: 'border-warning-default hover:border-warning-hover data-[state=open]:border-warning-default data-[state=open]:shadow-focus-warning',
|
|
34
21
|
},
|
|
35
|
-
{
|
|
36
|
-
variant: 'borderless',
|
|
37
|
-
disabled: true,
|
|
38
|
-
class: 'hover:bg-transparent'
|
|
39
|
-
}
|
|
40
|
-
],
|
|
41
|
-
defaultVariants: {
|
|
42
|
-
variant: 'outlined',
|
|
43
|
-
size: 'md'
|
|
44
22
|
},
|
|
23
|
+
defaultVariants: { variant: 'outlined', size: 'md' },
|
|
45
24
|
});
|