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,28 +1,157 @@
|
|
|
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
|
-
|
|
1
|
+
<script lang="ts">import { Select as SelectPrimitive } from 'bits-ui';
|
|
2
|
+
import { triggerStyles } from './Select.js';
|
|
3
|
+
import { IconCheck, IconChevronDown } from '../icons/index.js';
|
|
4
|
+
import IconChevronsUp from '@tabler/icons-svelte/icons/chevrons-up';
|
|
5
|
+
import IconChevronsDown from '@tabler/icons-svelte/icons/chevrons-down';
|
|
6
|
+
let { type = 'single', options = [], groups, value = $bindable(), placeholder = 'Select…', variant, size, disabled, status, loop, allowDeselect, required, name, class: className, onchange, } = $props();
|
|
7
|
+
// All options flat — used for label lookup in multiple mode
|
|
8
|
+
const allOptions = $derived(groups ? groups.flatMap(g => g.options) : options);
|
|
9
|
+
// Single mode: selected label
|
|
10
|
+
const selectedLabel = $derived.by(() => {
|
|
11
|
+
const v = value;
|
|
12
|
+
if (typeof v !== 'string' || !v)
|
|
13
|
+
return '';
|
|
14
|
+
return allOptions.find(o => o.value === v)?.label ?? v;
|
|
15
|
+
});
|
|
16
|
+
// Multiple mode: selected chips
|
|
17
|
+
const selectedChips = $derived(Array.isArray(value)
|
|
18
|
+
? value.map(v => ({ value: v, label: allOptions.find(o => o.value === v)?.label ?? v }))
|
|
19
|
+
: []);
|
|
20
|
+
const triggerClass = $derived(triggerStyles({ variant, size, disabled, status, className }));
|
|
21
|
+
const minHeight = "21rem";
|
|
22
|
+
</script>
|
|
23
|
+
|
|
24
|
+
{#snippet itemList()}
|
|
25
|
+
<SelectPrimitive.Viewport class="p-2 flex-1 min-h-0 overflow-y-auto">
|
|
26
|
+
{#if groups && groups.length > 0}
|
|
27
|
+
{#each groups as group (group.label)}
|
|
28
|
+
<SelectPrimitive.Group>
|
|
29
|
+
<SelectPrimitive.GroupHeading
|
|
30
|
+
class="px-2 py-1.5 text-xs font-semibold text-text-tertiary uppercase tracking-wide"
|
|
31
|
+
>
|
|
32
|
+
{group.label}
|
|
33
|
+
</SelectPrimitive.GroupHeading>
|
|
34
|
+
{#each group.options as option (option.value)}
|
|
35
|
+
{@render renderItem(option)}
|
|
36
|
+
{/each}
|
|
37
|
+
</SelectPrimitive.Group>
|
|
38
|
+
{/each}
|
|
39
|
+
{:else}
|
|
40
|
+
{#each options as option (option.value)}
|
|
41
|
+
{@render renderItem(option)}
|
|
42
|
+
{/each}
|
|
43
|
+
{/if}
|
|
44
|
+
</SelectPrimitive.Viewport>
|
|
45
|
+
{/snippet}
|
|
46
|
+
|
|
47
|
+
{#if type === 'multiple'}
|
|
48
|
+
<SelectPrimitive.Root
|
|
49
|
+
type="multiple"
|
|
50
|
+
bind:value={value as string[] | undefined}
|
|
51
|
+
onValueChange={(v) => onchange?.(v)}
|
|
52
|
+
{disabled}
|
|
53
|
+
{loop}
|
|
54
|
+
{required}
|
|
55
|
+
{name}
|
|
56
|
+
>
|
|
57
|
+
<!--
|
|
58
|
+
Multiple-mode trigger: chip tags displayed in the button, individual × spans
|
|
59
|
+
are non-interactive (no onclick) to avoid button-in-button nesting.
|
|
60
|
+
Managing selection is done exclusively through the dropdown items.
|
|
61
|
+
-->
|
|
62
|
+
<SelectPrimitive.Trigger class={triggerStyles({ variant, size, disabled, status, className: `h-auto min-h-9 flex-wrap py-1.5 ${className ?? ''}` })}>
|
|
63
|
+
{#if selectedChips.length > 0}
|
|
64
|
+
{#each selectedChips as chip (chip.value)}
|
|
65
|
+
<!-- Plain span tag — no interactive elements inside <button> -->
|
|
66
|
+
<span class="inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-xs bg-interactive-subtle text-interactive-text border border-interactive-border">
|
|
67
|
+
{chip.label}
|
|
68
|
+
<!-- Use span with role for the remove hint; actual removal happens via re-clicking in dropdown -->
|
|
69
|
+
<!-- <span class="flex items-center opacity-60" aria-hidden="true"><IconX class="size-3" /></span>-->
|
|
70
|
+
</span>
|
|
71
|
+
{/each}
|
|
72
|
+
{:else}
|
|
73
|
+
<span class="text-text-tertiary flex-1">{placeholder}</span>
|
|
74
|
+
{/if}
|
|
75
|
+
<IconChevronDown class="size-4 shrink-0 text-text-tertiary ml-auto transition-transform ease-ui duration-150 data-[state=open]:rotate-180" />
|
|
76
|
+
</SelectPrimitive.Trigger>
|
|
77
|
+
|
|
78
|
+
<SelectPrimitive.Portal>
|
|
79
|
+
<SelectPrimitive.Content
|
|
80
|
+
sideOffset={4}
|
|
81
|
+
class="z-50 min-w-[var(--bits-select-anchor-width)] flex flex-col overflow-hidden
|
|
82
|
+
bg-surface rounded-container border border-border-default shadow-lg
|
|
83
|
+
animate-in fade-in zoom-in-95 duration-150
|
|
84
|
+
data-[state=closed]:animate-out data-[state=closed]:fade-out data-[state=closed]:zoom-out-95"
|
|
85
|
+
style="max-height: min({minHeight}, var(--bits-select-content-available-height))"
|
|
86
|
+
>
|
|
87
|
+
<SelectPrimitive.ScrollUpButton class="flex w-full items-center justify-center pt-1 text-text-tertiary cursor-default hover:text-text-primary transition-colors">
|
|
88
|
+
<IconChevronsUp class="size-3.5" />
|
|
89
|
+
</SelectPrimitive.ScrollUpButton>
|
|
90
|
+
{@render itemList()}
|
|
91
|
+
<SelectPrimitive.ScrollDownButton class="flex w-full items-center justify-center pb-1 text-text-tertiary cursor-default hover:text-text-primary transition-colors">
|
|
92
|
+
<IconChevronsDown class="size-3.5" />
|
|
93
|
+
</SelectPrimitive.ScrollDownButton>
|
|
94
|
+
</SelectPrimitive.Content>
|
|
95
|
+
</SelectPrimitive.Portal>
|
|
96
|
+
</SelectPrimitive.Root>
|
|
97
|
+
|
|
98
|
+
{:else}
|
|
99
|
+
<SelectPrimitive.Root
|
|
100
|
+
type="single"
|
|
101
|
+
bind:value={value as string | undefined}
|
|
102
|
+
onValueChange={(v) => onchange?.(v)}
|
|
103
|
+
{disabled}
|
|
104
|
+
{loop}
|
|
105
|
+
{allowDeselect}
|
|
106
|
+
{required}
|
|
107
|
+
{name}
|
|
108
|
+
>
|
|
109
|
+
<SelectPrimitive.Trigger class={triggerClass}>
|
|
110
|
+
<span class={!value ? 'text-text-tertiary' : 'text-text-primary'}>
|
|
111
|
+
{value ? selectedLabel : placeholder}
|
|
112
|
+
</span>
|
|
113
|
+
<IconChevronDown
|
|
114
|
+
class="size-4 shrink-0 text-text-tertiary transition-transform ease-ui duration-150 data-[state=open]:rotate-180"
|
|
115
|
+
/>
|
|
116
|
+
</SelectPrimitive.Trigger>
|
|
117
|
+
|
|
118
|
+
<SelectPrimitive.Portal>
|
|
119
|
+
<SelectPrimitive.Content
|
|
120
|
+
sideOffset={6}
|
|
121
|
+
class="z-50 min-w-[var(--bits-select-anchor-width)] flex flex-col overflow-hidden
|
|
122
|
+
bg-surface rounded-container border border-border-default shadow-lg
|
|
123
|
+
animate-in fade-in zoom-in-95 duration-150
|
|
124
|
+
data-[state=closed]:animate-out data-[state=closed]:fade-out data-[state=closed]:zoom-out-95"
|
|
125
|
+
style="max-height: min({minHeight}, var(--bits-select-content-available-height))"
|
|
126
|
+
>
|
|
127
|
+
<SelectPrimitive.ScrollUpButton class="flex w-full items-center justify-center pt-1 text-text-tertiary cursor-default hover:text-text-primary transition-colors">
|
|
128
|
+
<IconChevronsUp class="size-3.5" />
|
|
129
|
+
</SelectPrimitive.ScrollUpButton>
|
|
130
|
+
{@render itemList()}
|
|
131
|
+
<SelectPrimitive.ScrollDownButton class="flex w-full items-center justify-center pb-1 text-text-tertiary cursor-default hover:text-text-primary transition-colors">
|
|
132
|
+
<IconChevronsDown class="size-3.5" />
|
|
133
|
+
</SelectPrimitive.ScrollDownButton>
|
|
134
|
+
</SelectPrimitive.Content>
|
|
135
|
+
</SelectPrimitive.Portal>
|
|
136
|
+
</SelectPrimitive.Root>
|
|
137
|
+
{/if}
|
|
138
|
+
|
|
139
|
+
{#snippet renderItem(option: { value: string; label: string; disabled?: boolean })}
|
|
140
|
+
<SelectPrimitive.Item
|
|
141
|
+
value={option.value}
|
|
142
|
+
label={option.label}
|
|
143
|
+
disabled={option.disabled}
|
|
144
|
+
class="relative flex w-full cursor-pointer select-none items-center rounded px-2 py-2 text-sm text-text-primary outline-none
|
|
145
|
+
transition-colors ease-ui duration-100
|
|
146
|
+
data-[highlighted]:bg-surface-hover
|
|
147
|
+
data-[selected]:font-medium data-[selected]:text-interactive
|
|
148
|
+
data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50"
|
|
149
|
+
>
|
|
150
|
+
{#snippet children({selected})}
|
|
151
|
+
<span class="flex-1">{option.label}</span>
|
|
152
|
+
{#if selected}
|
|
153
|
+
<IconCheck class="size-4 text-interactive shrink-0"/>
|
|
154
|
+
{/if}
|
|
155
|
+
{/snippet}
|
|
156
|
+
</SelectPrimitive.Item>
|
|
157
|
+
{/snippet}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import './
|
|
2
|
-
|
|
3
|
-
declare const Select: import("svelte").Component<SelectProps, {}, "value" | "ref">;
|
|
1
|
+
import { type SelectProps } from './Select.js';
|
|
2
|
+
declare const Select: import("svelte").Component<SelectProps, {}, "value">;
|
|
4
3
|
type Select = ReturnType<typeof Select>;
|
|
5
4
|
export default Select;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export { default as Select } from './Select.svelte';
|
|
2
|
-
export type { SelectProps } from './Select';
|
|
2
|
+
export type { SelectProps, SelectOption } from './Select.js';
|
|
@@ -1,98 +1,75 @@
|
|
|
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
|
-
let
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
exactHref: '/convert',
|
|
74
|
-
icon: IconTransform,
|
|
75
|
-
title: m.text_unit_converter(),
|
|
76
|
-
},
|
|
77
|
-
{
|
|
78
|
-
href: `/convert${langPathForConverter}/currency`,
|
|
79
|
-
exactHref: '/convert/currency',
|
|
80
|
-
icon: IconCoinConvert,
|
|
81
|
-
title: m.text_currency_converter(),
|
|
82
|
-
},
|
|
83
|
-
{
|
|
84
|
-
href: '/docs/calculator-usages/calces',
|
|
85
|
-
icon: IconBook,
|
|
86
|
-
title: m.text_calces_documentation(),
|
|
87
|
-
},
|
|
88
|
-
]
|
|
89
|
-
|
|
90
|
-
let selectedIndex = (() => {
|
|
91
|
-
return NAV_ITEM.findIndex((item, index) => {
|
|
92
|
-
return (item.exactHref ?? item.href) === sideNavHref;
|
|
93
|
-
})
|
|
94
|
-
})();
|
|
95
|
-
|
|
1
|
+
<script lang="ts">import { SCREEN_BREAK_POINTS, mainLayout, setSideNavState, toggleSideNavigation, getSideNavState } from "./SideNavigation";
|
|
2
|
+
import { clickOutside } from "../../actions/clickOutside";
|
|
3
|
+
import { Button } from "../button";
|
|
4
|
+
import { IconCoinConvert, IconHamburger } from "../icons";
|
|
5
|
+
import { BrandLogo } from "../brand-logo";
|
|
6
|
+
import SideNavItem from "./SideNavigationItem.svelte";
|
|
7
|
+
import IconBook from "../icons/IconBook.svelte";
|
|
8
|
+
import IconTransform from "../icons/IconTransform.svelte";
|
|
9
|
+
import IconCalculator from "../icons/IconCalculator.svelte";
|
|
10
|
+
import { m } from '../../paraglide/messages.js';
|
|
11
|
+
import { getGlobalContext } from "../tera-ui-context/global-context";
|
|
12
|
+
import { SupportedLanguage as CalculatorSupportedLanguage } from "../../tera-i18n/projects/tera-calculator/supported-language";
|
|
13
|
+
import { SupportedLanguage as ConverterSupportedLanguage } from "../../tera-i18n/projects/tera-converter/supported-language";
|
|
14
|
+
let { children, sideNavHref, language, items, bottomChildren, ...props } = $props();
|
|
15
|
+
function handleClickOutside() {
|
|
16
|
+
let screenWidth = Math.max(document.documentElement.clientWidth || 0, window.innerWidth || 0);
|
|
17
|
+
if (screenWidth < SCREEN_BREAK_POINTS.md) {
|
|
18
|
+
setSideNavState(undefined);
|
|
19
|
+
}
|
|
20
|
+
else if (screenWidth >= SCREEN_BREAK_POINTS.md && screenWidth < SCREEN_BREAK_POINTS.xl) {
|
|
21
|
+
setSideNavState(undefined);
|
|
22
|
+
}
|
|
23
|
+
else if (screenWidth >= SCREEN_BREAK_POINTS.xl) {
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
function handleHover(isHover) {
|
|
27
|
+
let temporaryExpand = isHover ? true : undefined;
|
|
28
|
+
if (temporaryExpand) {
|
|
29
|
+
mainLayout()?.setAttribute('data-side-nav-temporary-expand', temporaryExpand.toString());
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
mainLayout()?.removeAttribute('data-side-nav-temporary-expand');
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
let globalContext = getGlobalContext();
|
|
36
|
+
const resolvedSideNavHref = $derived(sideNavHref || globalContext?.sideNavHref);
|
|
37
|
+
const resolvedLanguage = $derived(language || globalContext?.language || 'en');
|
|
38
|
+
const langPath = $derived((resolvedLanguage === 'en') ? '' : `/${resolvedLanguage}`);
|
|
39
|
+
const langForCalculator = $derived((resolvedLanguage && CalculatorSupportedLanguage.includes(resolvedLanguage)) ? resolvedLanguage : 'en');
|
|
40
|
+
const langPathForCalculator = $derived((langForCalculator === 'en') ? '' : `/${langForCalculator}`);
|
|
41
|
+
const langForConverter = $derived((resolvedLanguage && ConverterSupportedLanguage.includes(resolvedLanguage)) ? resolvedLanguage : 'en');
|
|
42
|
+
const langPathForConverter = $derived((langForConverter === 'en') ? '' : `/${langForConverter}`);
|
|
43
|
+
const NAV_ITEM = $derived(items ?? [
|
|
44
|
+
{
|
|
45
|
+
href: `/calculator${langPathForCalculator}`,
|
|
46
|
+
exactHref: '/calculator',
|
|
47
|
+
icon: IconCalculator,
|
|
48
|
+
title: m.text_calces_scientific_calculator(),
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
href: `/convert${langPathForConverter}`,
|
|
52
|
+
exactHref: '/convert',
|
|
53
|
+
icon: IconTransform,
|
|
54
|
+
title: m.text_unit_converter(),
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
href: `/convert${langPathForConverter}/currency`,
|
|
58
|
+
exactHref: '/convert/currency',
|
|
59
|
+
icon: IconCoinConvert,
|
|
60
|
+
title: m.text_currency_converter(),
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
href: '/docs/calculator-usages/calces',
|
|
64
|
+
icon: IconBook,
|
|
65
|
+
title: m.text_calces_documentation(),
|
|
66
|
+
},
|
|
67
|
+
]);
|
|
68
|
+
let selectedIndex = (() => {
|
|
69
|
+
return NAV_ITEM.findIndex((item) => {
|
|
70
|
+
return (item.exactHref ?? item.href) === resolvedSideNavHref;
|
|
71
|
+
});
|
|
72
|
+
})();
|
|
96
73
|
</script>
|
|
97
74
|
|
|
98
75
|
<nav class="side-nav_main-side-bar grid grid-rows-[auto_1fr_auto]"
|
|
@@ -118,7 +95,7 @@
|
|
|
118
95
|
handleHover(false)
|
|
119
96
|
}}
|
|
120
97
|
>
|
|
121
|
-
{#each NAV_ITEM as item, index}
|
|
98
|
+
{#each NAV_ITEM as item, index (item.href)}
|
|
122
99
|
<SideNavItem href={item.href} class={selectedIndex === index ? 'selected' : ''}>
|
|
123
100
|
{#snippet icon()}
|
|
124
101
|
<item.icon/>
|
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
let {children, language, items, bottomChildren} = $props()
|
|
1
|
+
<script lang="ts">import { SideNavigation } from "./";
|
|
2
|
+
import './sidenav.scss';
|
|
3
|
+
let { children, language, items, bottomChildren } = $props();
|
|
6
4
|
</script>
|
|
7
5
|
|
|
8
6
|
<main
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
}
|
|
86
86
|
}
|
|
87
87
|
|
|
88
|
-
@media (min-width:
|
|
88
|
+
@media (min-width: 48rem) {
|
|
89
89
|
:root {
|
|
90
90
|
--sidebar-main-margin-left: 3rem;
|
|
91
91
|
--sidebar-border-width: 1px;
|
|
@@ -93,7 +93,7 @@
|
|
|
93
93
|
}
|
|
94
94
|
}
|
|
95
95
|
|
|
96
|
-
@media (min-width:
|
|
96
|
+
@media (min-width: 80rem) {
|
|
97
97
|
:root {
|
|
98
98
|
--sidebar-main-margin-left: var(--sidebar-width);
|
|
99
99
|
--sidebar-width: 16.5rem;
|
|
@@ -121,6 +121,8 @@
|
|
|
121
121
|
|
|
122
122
|
.side-nav_item {
|
|
123
123
|
color: var(--color-neutral-token-13);
|
|
124
|
+
position: relative;
|
|
125
|
+
transition: background-color 150ms var(--ease-ui);
|
|
124
126
|
|
|
125
127
|
a {
|
|
126
128
|
display: flex;
|
|
@@ -139,23 +141,25 @@
|
|
|
139
141
|
}
|
|
140
142
|
}
|
|
141
143
|
|
|
142
|
-
|
|
143
|
-
color: var(--color-neutral-token-1);
|
|
144
|
-
}
|
|
145
|
-
|
|
144
|
+
/* Active item: 3px left accent bar */
|
|
146
145
|
&.selected {
|
|
147
|
-
a
|
|
146
|
+
a {
|
|
147
|
+
color: var(--color-text-primary);
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
&::before {
|
|
148
151
|
content: '';
|
|
149
152
|
position: absolute;
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
153
|
+
left: 0;
|
|
154
|
+
top: 0.25rem;
|
|
155
|
+
bottom: 0.25rem;
|
|
156
|
+
width: 3px;
|
|
157
|
+
background: var(--color-interactive);
|
|
158
|
+
border-radius: 0 2px 2px 0;
|
|
155
159
|
}
|
|
156
160
|
}
|
|
157
161
|
|
|
158
162
|
&:hover {
|
|
159
|
-
background-color: var(--color-
|
|
163
|
+
background-color: var(--color-surface-hover);
|
|
160
164
|
}
|
|
161
165
|
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
<script lang="ts">"use strict";
|
|
2
|
+
let { variant = 'line', width, height, lines = 1, animate = true, class: className = '', } = $props();
|
|
3
|
+
</script>
|
|
4
|
+
|
|
5
|
+
<div
|
|
6
|
+
aria-label="Loading..."
|
|
7
|
+
aria-busy="true"
|
|
8
|
+
class={className}
|
|
9
|
+
>
|
|
10
|
+
{#if variant === 'circle'}
|
|
11
|
+
<div
|
|
12
|
+
class="rounded-full {animate ? 'skeleton-shimmer' : 'bg-surface-hover'}"
|
|
13
|
+
style="width:{width ?? '48px'};height:{height ?? width ?? '48px'}"
|
|
14
|
+
></div>
|
|
15
|
+
{:else if variant === 'rect'}
|
|
16
|
+
<div
|
|
17
|
+
class="rounded {animate ? 'skeleton-shimmer' : 'bg-surface-hover'}"
|
|
18
|
+
style="width:{width ?? '100%'};height:{height ?? '120px'}"
|
|
19
|
+
></div>
|
|
20
|
+
{:else}
|
|
21
|
+
<div class="flex flex-col gap-2" style="width:{width ?? '100%'}">
|
|
22
|
+
{#each Array(lines) as _, i (i)}
|
|
23
|
+
<div
|
|
24
|
+
class="h-3 rounded-full {animate ? 'skeleton-shimmer' : 'bg-surface-hover'}"
|
|
25
|
+
style={i === lines - 1 && lines > 1 ? 'width:70%' : 'width:100%'}
|
|
26
|
+
></div>
|
|
27
|
+
{/each}
|
|
28
|
+
</div>
|
|
29
|
+
{/if}
|
|
30
|
+
</div>
|
|
31
|
+
|
|
32
|
+
<style>
|
|
33
|
+
.skeleton-shimmer {
|
|
34
|
+
background: linear-gradient(
|
|
35
|
+
90deg,
|
|
36
|
+
var(--color-surface-hover) 25%,
|
|
37
|
+
var(--color-surface-sunken) 50%,
|
|
38
|
+
var(--color-surface-hover) 75%
|
|
39
|
+
);
|
|
40
|
+
background-size: 200% 100%;
|
|
41
|
+
animation: shimmer 1.5s infinite;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
@keyframes shimmer {
|
|
45
|
+
0% { background-position: 200% 0; }
|
|
46
|
+
100% { background-position: -200% 0; }
|
|
47
|
+
}
|
|
48
|
+
</style>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
type SkeletonVariant = 'line' | 'circle' | 'rect';
|
|
2
|
+
type $$ComponentProps = {
|
|
3
|
+
variant?: SkeletonVariant;
|
|
4
|
+
width?: string;
|
|
5
|
+
height?: string;
|
|
6
|
+
lines?: number;
|
|
7
|
+
animate?: boolean;
|
|
8
|
+
class?: string;
|
|
9
|
+
};
|
|
10
|
+
declare const Skeleton: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
11
|
+
type Skeleton = ReturnType<typeof Skeleton>;
|
|
12
|
+
export default Skeleton;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as Skeleton } from './Skeleton.svelte';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as Skeleton } from './Skeleton.svelte';
|
|
@@ -1,18 +1,28 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import type { HTMLAttributes } from "svelte/elements";
|
|
4
|
-
export declare const styles: import("tailwind-variants").TVReturnType<{}, undefined, "", {}, undefined, import("tailwind-variants").TVReturnType<{}, undefined, "", unknown, unknown, undefined>>;
|
|
5
|
-
type SliderVariants = VariantProps<typeof styles>;
|
|
6
|
-
export interface SliderProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onchange'>, SliderVariants {
|
|
7
|
-
children?: Snippet;
|
|
1
|
+
export interface SliderProps {
|
|
2
|
+
/** Additional CSS classes for the root element. */
|
|
8
3
|
class?: string;
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
4
|
+
/** Minimum value of the slider range. */
|
|
5
|
+
min?: number;
|
|
6
|
+
/** Maximum value of the slider range. */
|
|
7
|
+
max?: number;
|
|
8
|
+
/** Step interval between selectable values. */
|
|
9
|
+
step?: number;
|
|
10
|
+
/** Current value. Bindable. */
|
|
11
|
+
value?: number;
|
|
12
|
+
/** Prevents all interaction and dims the control. */
|
|
13
|
+
disabled?: boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Layout orientation of the slider track and thumb.
|
|
16
|
+
* When 'vertical', the parent must have an explicit height.
|
|
17
|
+
*/
|
|
18
|
+
orientation?: 'horizontal' | 'vertical';
|
|
19
|
+
/** Fires continuously as the thumb moves during drag. */
|
|
14
20
|
onchange?: (value: number) => void;
|
|
15
|
-
|
|
21
|
+
/**
|
|
22
|
+
* Fires once when the user finishes dragging and releases the thumb.
|
|
23
|
+
* Prefer this over `onchange` when the handler triggers expensive work.
|
|
24
|
+
*/
|
|
25
|
+
onValueCommit?: (value: number) => void;
|
|
26
|
+
/** Bindable reference to the root span element. */
|
|
27
|
+
ref?: HTMLElement | null;
|
|
16
28
|
}
|
|
17
|
-
export type SliderContextProps = {};
|
|
18
|
-
export {};
|