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,164 +1,38 @@
|
|
|
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
|
-
// Add mouseout listener to window
|
|
40
|
-
window.addEventListener('mouseout', (e) => {
|
|
41
|
-
if ((e.relatedTarget as HTMLElement)?.tagName === 'IFRAME') { // Mouse left the window
|
|
42
|
-
stopDragging();
|
|
43
|
-
}
|
|
44
|
-
});
|
|
45
|
-
});
|
|
46
|
-
|
|
47
|
-
// For touch support
|
|
48
|
-
slider.addEventListener('touchstart', (e) => {
|
|
49
|
-
sliderHandle.setAttribute('data-state', 'dragging');
|
|
50
|
-
onDrag(e);
|
|
51
|
-
document.addEventListener('touchmove', onDrag, {passive: false});
|
|
52
|
-
document.addEventListener('touchend', stopDragging, {once: true});
|
|
53
|
-
}, {passive: false});
|
|
54
|
-
|
|
55
|
-
sliderHandle.addEventListener('pointerenter', (e) => {
|
|
56
|
-
toggleToolTip(true);
|
|
57
|
-
sliderHandle.addEventListener('pointerleave', (e) => {
|
|
58
|
-
toggleToolTip(false);
|
|
59
|
-
}, {once: true});
|
|
60
|
-
});
|
|
61
|
-
|
|
62
|
-
})
|
|
63
|
-
|
|
64
|
-
let tooltipInterval: ReturnType<typeof setTimeout> | undefined;
|
|
65
|
-
|
|
66
|
-
function toggleToolTip(open: boolean) {
|
|
67
|
-
if (tooltipInterval) clearInterval(tooltipInterval)
|
|
68
|
-
|
|
69
|
-
if (open) {
|
|
70
|
-
sliderTooltip?.classList.add('show');
|
|
71
|
-
} else {
|
|
72
|
-
tooltipInterval = setTimeout(() => {
|
|
73
|
-
sliderTooltip?.classList.remove('show');
|
|
74
|
-
}, 300)
|
|
75
|
-
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
const calculateValue = (position: number) => {
|
|
80
|
-
const sliderWidth = sliderRail?.offsetWidth || 0;
|
|
81
|
-
const totalSteps = (max - min) / step;
|
|
82
|
-
const stepSize = sliderWidth / totalSteps;
|
|
83
|
-
|
|
84
|
-
// Clamp position within the slider width
|
|
85
|
-
const clampedPosition = Math.max(0, Math.min(position, sliderWidth));
|
|
86
|
-
// Calculate steps with decimal precision
|
|
87
|
-
const stepCount = Math.round(clampedPosition / stepSize);
|
|
88
|
-
|
|
89
|
-
// Calculate the value with proper decimal precision
|
|
90
|
-
const value = min + (stepCount * step);
|
|
91
|
-
// Round to avoid floating-point precision errors
|
|
92
|
-
return Number(value.toFixed(10));
|
|
93
|
-
};
|
|
94
|
-
|
|
95
|
-
const onDrag = (event: PointerEvent | TouchEvent) => {
|
|
96
|
-
event.preventDefault();
|
|
97
|
-
event.stopPropagation();
|
|
98
|
-
toggleToolTip(true)
|
|
99
|
-
|
|
100
|
-
let position
|
|
101
|
-
|
|
102
|
-
if (event.type.startsWith('touch')) {
|
|
103
|
-
const touch = (event as TouchEvent).touches[0];
|
|
104
|
-
position = touch.clientX - (slider?.getBoundingClientRect().left || 0);
|
|
105
|
-
} else {
|
|
106
|
-
position = (event as PointerEvent).clientX - (slider?.getBoundingClientRect().left || 0);
|
|
107
|
-
}
|
|
108
|
-
let newValue = calculateValue(position);
|
|
109
|
-
|
|
110
|
-
if (newValue !== value) {
|
|
111
|
-
value = newValue;
|
|
112
|
-
onchange?.(value);
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
updateSliderByValue(newValue)
|
|
116
|
-
};
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
$effect(() => {
|
|
120
|
-
if (value == undefined) {
|
|
121
|
-
value = min
|
|
122
|
-
}
|
|
123
|
-
updateSliderByValue(value)
|
|
124
|
-
})
|
|
125
|
-
|
|
126
|
-
function updateSliderByValue(_v: number) {
|
|
127
|
-
const percentage = ((value - min) / (max - min)) * 100
|
|
128
|
-
|
|
129
|
-
// Update the position of the handle and track width
|
|
130
|
-
if (sliderHandle) sliderHandle.style.left = `${percentage}%`;
|
|
131
|
-
if (sliderTooltip) sliderTooltip.style.left = `${percentage}%`;
|
|
132
|
-
if (sliderTrack) sliderTrack.style.width = `${percentage}%`;
|
|
133
|
-
}
|
|
134
|
-
</script>
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
<div bind:this={slider} class="cursor-pointer w-full relative px-1 py-2.5">
|
|
138
|
-
<div data-slider-rail bind:this={sliderRail} class="w-full h-1.5 bg-neutral-token-4 rounded-full overflow-hidden hover:bg-neutral-token-5 transition-colors duration-200">
|
|
139
|
-
<div data-slider-track bind:this={sliderTrack} class="rounded-full w-full h-full bg-neutral-token-13"></div>
|
|
140
|
-
</div>
|
|
141
|
-
|
|
142
|
-
<div
|
|
143
|
-
bind:this={sliderHandle}
|
|
144
|
-
data-slider-handle
|
|
145
|
-
tabindex="0"
|
|
146
|
-
role="slider"
|
|
147
|
-
aria-valuemin={`${(min ?? 0)}`}
|
|
148
|
-
aria-valuemax={`${(max ?? 0)}`}
|
|
149
|
-
aria-valuenow={`${(value ?? 0)}`}
|
|
150
|
-
aria-orientation="horizontal"
|
|
151
|
-
class="slider-handle -translate-x-1/2 absolute top-1/2 -translate-y-1/2 rounded-full bg-neutral-token-1 border-2 outline-1 outline-neutral-token-1 border-neutral-token-13 size-4 shadow-sm"
|
|
152
|
-
>
|
|
153
|
-
|
|
154
|
-
</div>
|
|
155
|
-
|
|
156
|
-
<div bind:this={sliderTooltip} data-slider-tooltip class="">
|
|
157
|
-
<span class="z-10 relative text-xs">
|
|
158
|
-
{value}
|
|
159
|
-
</span>
|
|
160
|
-
</div>
|
|
161
|
-
</div>
|
|
162
|
-
|
|
163
|
-
<style>/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */
|
|
164
|
-
.slider-handle{transition:all .2s cubic-bezier(.645,.045,.355,1),left}:is(.slider-handle:global([data-state="dragging"]),.slider-handle:hover,.slider-handle:focus,.slider-handle:active,.slider-handle:focus-visible){border-width:2px;transform:scale(1.2);box-shadow:0 0 0 4px #3b82f61f}.slider-handle:focus-visible{outline:none}[data-slider-tooltip]{pointer-events:none;background-color:var(--color-neutral-token-12);width:fit-content;color:var(--color-neutral-token-1);z-index:10;border-radius:6px;padding:4px 8px;font-size:12px;line-height:1.5;position:absolute;left:50%}[data-slider-tooltip]:after{content:"";background-color:var(--color-neutral-token-12);border-radius:2px;width:8px;height:8px;position:absolute;bottom:-3px;left:50%;transform:translate(-50%)rotate(45deg)}[data-slider-tooltip]{opacity:0;transition:all .2s cubic-bezier(.645,.045,.355,1),left;transform:translateY(-2.5rem)translate(-50%)scale(.9)}[data-slider-tooltip]:global(.show){opacity:1;transform:translateY(-3rem)translate(-50%)scale(1)}</style>
|
|
1
|
+
<script lang="ts">import { Slider as SliderPrimitive } from 'bits-ui';
|
|
2
|
+
let { min = 0, max = 100, step = 1, value = $bindable(0), onchange, onValueCommit, disabled, orientation = 'horizontal', class: className = '', } = $props();
|
|
3
|
+
const isVertical = $derived(orientation === 'vertical');
|
|
4
|
+
</script>
|
|
5
|
+
|
|
6
|
+
<SliderPrimitive.Root
|
|
7
|
+
type="single"
|
|
8
|
+
bind:value
|
|
9
|
+
onValueChange={onchange}
|
|
10
|
+
{onValueCommit}
|
|
11
|
+
{min}
|
|
12
|
+
{max}
|
|
13
|
+
{step}
|
|
14
|
+
{disabled}
|
|
15
|
+
{orientation}
|
|
16
|
+
class="{isVertical
|
|
17
|
+
? 'relative flex flex-col h-full touch-none select-none items-center px-2.5'
|
|
18
|
+
: 'relative flex w-full touch-none select-none items-center py-2.5'
|
|
19
|
+
} {disabled ? 'opacity-50 pointer-events-none' : ''} {className}"
|
|
20
|
+
>
|
|
21
|
+
{#snippet children({ thumbItems })}
|
|
22
|
+
<!-- Track wrapper -->
|
|
23
|
+
<div class="{isVertical ? 'relative w-1.5 h-full grow rounded-full' : 'relative h-1.5 w-full grow rounded-full'} bg-neutral-token-4">
|
|
24
|
+
<SliderPrimitive.Range class="{isVertical ? 'absolute w-full bottom-0' : 'absolute h-full'} bg-interactive rounded-full" />
|
|
25
|
+
</div>
|
|
26
|
+
|
|
27
|
+
{#each thumbItems as { index } (index)}
|
|
28
|
+
<SliderPrimitive.Thumb
|
|
29
|
+
{index}
|
|
30
|
+
class="block size-4 rounded-full border-2 border-interactive bg-surface-control shadow-sm outline-none
|
|
31
|
+
transition-[box-shadow,transform] ease-ui duration-150
|
|
32
|
+
hover:shadow-focus hover:scale-110
|
|
33
|
+
focus-visible:shadow-focus focus-visible:scale-110
|
|
34
|
+
data-[disabled]:pointer-events-none data-[disabled]:opacity-50"
|
|
35
|
+
/>
|
|
36
|
+
{/each}
|
|
37
|
+
{/snippet}
|
|
38
|
+
</SliderPrimitive.Root>
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
<script lang="ts">"use strict";
|
|
2
|
+
let { size = 'md', color = 'primary', class: className = '', } = $props();
|
|
3
|
+
const sizeMap = { xs: 12, sm: 16, md: 20, lg: 28 };
|
|
4
|
+
const colorMap = {
|
|
5
|
+
primary: 'var(--color-interactive)',
|
|
6
|
+
white: '#ffffff',
|
|
7
|
+
current: 'currentColor',
|
|
8
|
+
};
|
|
9
|
+
const px = $derived(sizeMap[size]);
|
|
10
|
+
const stroke = $derived(colorMap[color]);
|
|
11
|
+
const r = 8;
|
|
12
|
+
const circumference = 2 * Math.PI * r;
|
|
13
|
+
</script>
|
|
14
|
+
|
|
15
|
+
<svg
|
|
16
|
+
class="animate-spin {className}"
|
|
17
|
+
width={px}
|
|
18
|
+
height={px}
|
|
19
|
+
viewBox="0 0 20 20"
|
|
20
|
+
fill="none"
|
|
21
|
+
aria-label="Loading"
|
|
22
|
+
role="status"
|
|
23
|
+
>
|
|
24
|
+
<circle
|
|
25
|
+
cx="10" cy="10" r={r}
|
|
26
|
+
stroke={stroke}
|
|
27
|
+
stroke-width="2"
|
|
28
|
+
stroke-opacity="0.25"
|
|
29
|
+
/>
|
|
30
|
+
<circle
|
|
31
|
+
cx="10" cy="10" r={r}
|
|
32
|
+
stroke={stroke}
|
|
33
|
+
stroke-width="2"
|
|
34
|
+
stroke-linecap="round"
|
|
35
|
+
stroke-dasharray={circumference}
|
|
36
|
+
stroke-dashoffset={circumference * 0.75}
|
|
37
|
+
transform="rotate(-90 10 10)"
|
|
38
|
+
/>
|
|
39
|
+
</svg>
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
type SpinnerSize = 'xs' | 'sm' | 'md' | 'lg';
|
|
2
|
+
type SpinnerColor = 'primary' | 'white' | 'current';
|
|
3
|
+
type $$ComponentProps = {
|
|
4
|
+
size?: SpinnerSize;
|
|
5
|
+
color?: SpinnerColor;
|
|
6
|
+
class?: string;
|
|
7
|
+
};
|
|
8
|
+
declare const Spinner: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
9
|
+
type Spinner = ReturnType<typeof Spinner>;
|
|
10
|
+
export default Spinner;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as Spinner } from './Spinner.svelte';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as Spinner } from './Spinner.svelte';
|
|
@@ -1,51 +1,35 @@
|
|
|
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
|
-
// Updates hover state when hovering over a star
|
|
37
|
-
function setHover(v, e) {
|
|
38
|
-
hoverRating = v;
|
|
39
|
-
// console.log('setHover', v, e.type)
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
// Resets hover state when leaving the star area
|
|
43
|
-
function resetHover(e) {
|
|
44
|
-
|
|
45
|
-
hoverRating = 0;
|
|
46
|
-
// console.log('resetHover', e.type)
|
|
47
|
-
}
|
|
48
|
-
|
|
1
|
+
<script lang="ts">import { styles } from "./StarRating";
|
|
2
|
+
let { children, value = $bindable(), onchange, size = 'md', ...props } = $props();
|
|
3
|
+
let hoverRating = $state(0);
|
|
4
|
+
// Descriptive texts for each star rating
|
|
5
|
+
const descriptions = [
|
|
6
|
+
'Very Bad',
|
|
7
|
+
'Bad',
|
|
8
|
+
'Okay',
|
|
9
|
+
'Good',
|
|
10
|
+
'Excellent'
|
|
11
|
+
];
|
|
12
|
+
// Sets the rating when a star is clicked
|
|
13
|
+
function setRating(v, e) {
|
|
14
|
+
if (value != v) {
|
|
15
|
+
value = v;
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
value = undefined;
|
|
19
|
+
}
|
|
20
|
+
onchange?.(v);
|
|
21
|
+
// console.log('setRating', e.type)
|
|
22
|
+
}
|
|
23
|
+
// Updates hover state when hovering over a star
|
|
24
|
+
function setHover(v, e) {
|
|
25
|
+
hoverRating = v;
|
|
26
|
+
// console.log('setHover', v, e.type)
|
|
27
|
+
}
|
|
28
|
+
// Resets hover state when leaving the star area
|
|
29
|
+
function resetHover(e) {
|
|
30
|
+
hoverRating = 0;
|
|
31
|
+
// console.log('resetHover', e.type)
|
|
32
|
+
}
|
|
49
33
|
</script>
|
|
50
34
|
|
|
51
35
|
<div
|
|
@@ -60,7 +44,7 @@
|
|
|
60
44
|
aria-setsize="5"
|
|
61
45
|
data-rating-icon
|
|
62
46
|
data-hovering={hoverRating === (index + 1)}
|
|
63
|
-
aria-label=
|
|
47
|
+
aria-label={`Rate ${index + 1} out of 5 stars`}
|
|
64
48
|
onpointerenter={(e) => setHover(index + 1, e)}
|
|
65
49
|
onpointerleave={resetHover}
|
|
66
50
|
ontouchendcapture={resetHover}
|
|
@@ -1,12 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @component Switch - Toggle switch for boolean on/off state.
|
|
3
|
+
* Built on BitsUI Switch primitive with form integration support.
|
|
4
|
+
*/
|
|
1
5
|
import { type VariantProps } from "tailwind-variants";
|
|
2
|
-
import type { Snippet } from "svelte";
|
|
3
|
-
import type { HTMLButtonAttributes } from "svelte/elements";
|
|
4
6
|
export declare const styles: import("tailwind-variants").TVReturnType<{}, undefined, "", {}, undefined, import("tailwind-variants").TVReturnType<{}, undefined, "", unknown, unknown, undefined>>;
|
|
5
7
|
type SwitchVariants = VariantProps<typeof styles>;
|
|
6
|
-
export interface SwitchProps extends
|
|
7
|
-
|
|
8
|
+
export interface SwitchProps extends SwitchVariants {
|
|
9
|
+
/** Additional CSS classes for the root element. */
|
|
8
10
|
class?: string;
|
|
11
|
+
/** Whether the switch is on. Bindable. */
|
|
9
12
|
checked?: boolean;
|
|
13
|
+
/** Prevents all interaction and dims the control. */
|
|
14
|
+
disabled?: boolean;
|
|
15
|
+
/** Whether the switch is required for form submission. */
|
|
16
|
+
required?: boolean;
|
|
17
|
+
/** Name attribute used when submitting within a form. */
|
|
18
|
+
name?: string;
|
|
19
|
+
/** Value sent with the form when the switch is checked. */
|
|
20
|
+
value?: string;
|
|
21
|
+
/** Called when the checked state changes. */
|
|
22
|
+
onCheckedChange?: (checked: boolean) => void;
|
|
23
|
+
/** Bindable reference to the root button element. */
|
|
10
24
|
ref?: HTMLButtonElement | null;
|
|
25
|
+
[key: string]: unknown;
|
|
11
26
|
}
|
|
12
27
|
export {};
|
|
@@ -1,26 +1,22 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
import {cn} from "../../utils";
|
|
5
|
-
|
|
6
|
-
let {
|
|
7
|
-
ref = $bindable(null),
|
|
8
|
-
class: className,
|
|
9
|
-
checked = $bindable(false),
|
|
10
|
-
...restProps
|
|
11
|
-
}: WithoutChildrenOrChild<SwitchPrimitive.RootProps> = $props();
|
|
12
|
-
|
|
1
|
+
<script lang="ts">import { Switch as SwitchPrimitive } from "bits-ui";
|
|
2
|
+
import { cn } from "../../utils/index.js";
|
|
3
|
+
let { ref = $bindable(null), class: className, checked = $bindable(false), disabled, required, name, value, onCheckedChange, ...restProps } = $props();
|
|
13
4
|
</script>
|
|
14
5
|
|
|
15
6
|
<SwitchPrimitive.Root
|
|
16
7
|
{...restProps}
|
|
17
8
|
bind:checked
|
|
18
9
|
bind:ref
|
|
10
|
+
{disabled}
|
|
11
|
+
{required}
|
|
12
|
+
{name}
|
|
13
|
+
{value}
|
|
14
|
+
{onCheckedChange}
|
|
19
15
|
class={cn(
|
|
20
|
-
"relative group peer h-[22px] w-11 shrink-0 cursor-pointer items-center rounded-full transition-
|
|
21
|
-
"focus-visible:outline-none focus-visible:shadow-
|
|
22
|
-
"data-[state=checked]:bg-
|
|
23
|
-
"data-[state=unchecked]:bg-
|
|
16
|
+
"relative group peer h-[22px] w-11 shrink-0 cursor-pointer items-center rounded-full transition-[background-color,box-shadow] ease-ui duration-200",
|
|
17
|
+
"focus-visible:outline-none focus-visible:shadow-focus",
|
|
18
|
+
"data-[state=checked]:bg-interactive",
|
|
19
|
+
"data-[state=unchecked]:bg-border-default",
|
|
24
20
|
"disabled:cursor-not-allowed disabled:opacity-50",
|
|
25
21
|
"overflow-hidden",
|
|
26
22
|
className
|
|
@@ -32,7 +28,7 @@
|
|
|
32
28
|
|
|
33
29
|
<SwitchPrimitive.Thumb
|
|
34
30
|
class={cn(
|
|
35
|
-
"pointer-events-none block size-[18px] rounded-full bg-neutral-1 transition-transform duration-
|
|
31
|
+
"pointer-events-none block size-[18px] rounded-full bg-neutral-1 transition-transform ease-spring duration-[250ms]",
|
|
36
32
|
"shadow-[0_2px_4px_rgba(0,0,0,0.2)]",
|
|
37
33
|
"data-[state=checked]:translate-x-[23px] data-[state=unchecked]:translate-x-[2px]"
|
|
38
34
|
)}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
declare const Switch: import("svelte").Component<
|
|
1
|
+
import type { SwitchProps } from './Switch.js';
|
|
2
|
+
declare const Switch: import("svelte").Component<SwitchProps, {}, "ref" | "checked">;
|
|
3
3
|
type Switch = ReturnType<typeof Switch>;
|
|
4
4
|
export default Switch;
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
<script lang="ts" generics="T extends Record<string, unknown>">import { Skeleton } from '../skeleton/index.js';
|
|
2
|
+
let { columns, data, loading, empty, striped, stickyHeader, onRowClick, class: className = '', } = $props();
|
|
3
|
+
</script>
|
|
4
|
+
|
|
5
|
+
<div class="w-full overflow-auto {className}">
|
|
6
|
+
<table class="w-full text-sm text-left border-collapse">
|
|
7
|
+
<thead class="bg-surface-sunken {stickyHeader ? 'sticky top-0 z-10' : ''}">
|
|
8
|
+
<tr>
|
|
9
|
+
{#each columns as col (col.key)}
|
|
10
|
+
<th
|
|
11
|
+
class="px-4 py-3 font-medium text-text-secondary whitespace-nowrap border-b border-border-default"
|
|
12
|
+
style={col.width ? `width:${col.width}` : ''}
|
|
13
|
+
class:text-center={col.align === 'center'}
|
|
14
|
+
class:text-right={col.align === 'right'}
|
|
15
|
+
>
|
|
16
|
+
{col.label}
|
|
17
|
+
</th>
|
|
18
|
+
{/each}
|
|
19
|
+
</tr>
|
|
20
|
+
</thead>
|
|
21
|
+
<tbody>
|
|
22
|
+
{#if loading}
|
|
23
|
+
{#each Array(4) as _, i (i)}
|
|
24
|
+
<tr>
|
|
25
|
+
{#each columns as col (col.key)}
|
|
26
|
+
<td class="px-4 py-3 border-b border-border-default">
|
|
27
|
+
<Skeleton variant="line" />
|
|
28
|
+
</td>
|
|
29
|
+
{/each}
|
|
30
|
+
</tr>
|
|
31
|
+
{/each}
|
|
32
|
+
{:else if data.length === 0}
|
|
33
|
+
<tr>
|
|
34
|
+
<td colspan={columns.length} class="px-4 py-10 text-center text-text-tertiary">
|
|
35
|
+
{#if empty}
|
|
36
|
+
{@render empty()}
|
|
37
|
+
{:else}
|
|
38
|
+
No data
|
|
39
|
+
{/if}
|
|
40
|
+
</td>
|
|
41
|
+
</tr>
|
|
42
|
+
{:else}
|
|
43
|
+
{#each data as row, i (i)}
|
|
44
|
+
<tr
|
|
45
|
+
class="border-b border-border-default transition-colors ease-ui duration-100
|
|
46
|
+
{striped && i % 2 === 1 ? 'bg-surface-sunken' : 'bg-transparent'}
|
|
47
|
+
{onRowClick ? 'cursor-pointer hover:bg-surface-hover' : 'hover:bg-surface-hover'}"
|
|
48
|
+
onclick={() => onRowClick?.(row)}
|
|
49
|
+
>
|
|
50
|
+
{#each columns as col (col.key)}
|
|
51
|
+
<td
|
|
52
|
+
class="px-4 py-3 text-text-primary"
|
|
53
|
+
class:text-center={col.align === 'center'}
|
|
54
|
+
class:text-right={col.align === 'right'}
|
|
55
|
+
>
|
|
56
|
+
{#if col.render}
|
|
57
|
+
{@render col.render(row)}
|
|
58
|
+
{:else}
|
|
59
|
+
{row[col.key] ?? ''}
|
|
60
|
+
{/if}
|
|
61
|
+
</td>
|
|
62
|
+
{/each}
|
|
63
|
+
</tr>
|
|
64
|
+
{/each}
|
|
65
|
+
{/if}
|
|
66
|
+
</tbody>
|
|
67
|
+
</table>
|
|
68
|
+
</div>
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { Snippet } from 'svelte';
|
|
2
|
+
declare function $$render<T extends Record<string, unknown>>(): {
|
|
3
|
+
props: {
|
|
4
|
+
columns: {
|
|
5
|
+
key: string;
|
|
6
|
+
label: string;
|
|
7
|
+
width?: string;
|
|
8
|
+
align?: "left" | "center" | "right";
|
|
9
|
+
render?: Snippet<[T]> | undefined;
|
|
10
|
+
}[];
|
|
11
|
+
data: T[];
|
|
12
|
+
loading?: boolean;
|
|
13
|
+
empty?: Snippet;
|
|
14
|
+
striped?: boolean;
|
|
15
|
+
stickyHeader?: boolean;
|
|
16
|
+
onRowClick?: (row: T) => void;
|
|
17
|
+
class?: string;
|
|
18
|
+
};
|
|
19
|
+
exports: {};
|
|
20
|
+
bindings: "";
|
|
21
|
+
slots: {};
|
|
22
|
+
events: {};
|
|
23
|
+
};
|
|
24
|
+
declare class __sveltets_Render<T extends Record<string, unknown>> {
|
|
25
|
+
props(): ReturnType<typeof $$render<T>>['props'];
|
|
26
|
+
events(): ReturnType<typeof $$render<T>>['events'];
|
|
27
|
+
slots(): ReturnType<typeof $$render<T>>['slots'];
|
|
28
|
+
bindings(): "";
|
|
29
|
+
exports(): {};
|
|
30
|
+
}
|
|
31
|
+
interface $$IsomorphicComponent {
|
|
32
|
+
new <T extends Record<string, unknown>>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<T>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<T>['props']>, ReturnType<__sveltets_Render<T>['events']>, ReturnType<__sveltets_Render<T>['slots']>> & {
|
|
33
|
+
$$bindings?: ReturnType<__sveltets_Render<T>['bindings']>;
|
|
34
|
+
} & ReturnType<__sveltets_Render<T>['exports']>;
|
|
35
|
+
<T extends Record<string, unknown>>(internal: unknown, props: ReturnType<__sveltets_Render<T>['props']> & {}): ReturnType<__sveltets_Render<T>['exports']>;
|
|
36
|
+
z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
|
|
37
|
+
}
|
|
38
|
+
declare const Table: $$IsomorphicComponent;
|
|
39
|
+
type Table<T extends Record<string, unknown>> = InstanceType<typeof Table<T>>;
|
|
40
|
+
export default Table;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as Table } from './Table.svelte';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as Table } from './Table.svelte';
|
|
@@ -1,34 +1,63 @@
|
|
|
1
1
|
import type { Snippet } from "svelte";
|
|
2
|
-
|
|
3
|
-
export type
|
|
2
|
+
export type TabsVariant = 'line' | 'ios';
|
|
3
|
+
export type TabsContext = {
|
|
4
|
+
readonly variant: TabsVariant;
|
|
5
|
+
readonly orientation: 'horizontal' | 'vertical';
|
|
6
|
+
};
|
|
7
|
+
export declare const setTabsContext: (ctx: TabsContext) => TabsContext;
|
|
8
|
+
export declare const getTabsContext: () => TabsContext;
|
|
9
|
+
export type TabsProps = {
|
|
4
10
|
children?: Snippet;
|
|
11
|
+
/** Currently active tab value. Bindable. */
|
|
5
12
|
value?: string;
|
|
13
|
+
/** Called when the active tab changes. */
|
|
6
14
|
onchange?: (newTab: string) => void;
|
|
15
|
+
/** Additional CSS classes for the root element. */
|
|
7
16
|
class?: string;
|
|
17
|
+
/** Visual style of the tab list. */
|
|
18
|
+
variant?: TabsVariant;
|
|
19
|
+
/**
|
|
20
|
+
* How tabs activate on keyboard focus.
|
|
21
|
+
* - 'automatic': tab content switches immediately when a tab receives focus.
|
|
22
|
+
* - 'manual': the user must press Enter or Space to activate a focused tab.
|
|
23
|
+
*/
|
|
24
|
+
activationMode?: 'automatic' | 'manual';
|
|
25
|
+
/**
|
|
26
|
+
* Orientation of the tab list.
|
|
27
|
+
* 'vertical' renders the list as a column alongside the content.
|
|
28
|
+
* Only supported with the 'line' variant.
|
|
29
|
+
*/
|
|
30
|
+
orientation?: 'horizontal' | 'vertical';
|
|
31
|
+
/** Whether keyboard navigation wraps from the last tab back to the first. */
|
|
32
|
+
loop?: boolean;
|
|
33
|
+
/** Bindable reference to the root element. */
|
|
8
34
|
ref?: HTMLDivElement | null;
|
|
35
|
+
[key: string]: unknown;
|
|
9
36
|
};
|
|
10
|
-
export type TabsListProps =
|
|
37
|
+
export type TabsListProps = {
|
|
11
38
|
children?: Snippet;
|
|
39
|
+
/** Additional CSS classes for the tab list container. */
|
|
12
40
|
class?: string;
|
|
13
|
-
ref?:
|
|
41
|
+
ref?: HTMLElement | null;
|
|
42
|
+
[key: string]: unknown;
|
|
14
43
|
};
|
|
15
|
-
export type TabsItemProps =
|
|
44
|
+
export type TabsItemProps = {
|
|
16
45
|
children?: Snippet;
|
|
46
|
+
/** The value this tab represents — must match a TabsContent value. */
|
|
17
47
|
value: string;
|
|
48
|
+
/** Prevents the user from activating this tab. */
|
|
49
|
+
disabled?: boolean;
|
|
50
|
+
/** Additional CSS classes for the tab trigger. */
|
|
18
51
|
class?: string;
|
|
19
|
-
ref?:
|
|
52
|
+
ref?: HTMLElement | null;
|
|
53
|
+
[key: string]: unknown;
|
|
20
54
|
};
|
|
21
|
-
export type TabsContentProps =
|
|
55
|
+
export type TabsContentProps = {
|
|
22
56
|
children?: Snippet;
|
|
57
|
+
/** The value this content panel corresponds to — must match a TabsItem value. */
|
|
23
58
|
value: string;
|
|
59
|
+
/** Additional CSS classes for the content panel. */
|
|
24
60
|
class?: string;
|
|
25
|
-
ref?:
|
|
61
|
+
ref?: HTMLElement | null;
|
|
62
|
+
[key: string]: unknown;
|
|
26
63
|
};
|
|
27
|
-
export type TabsContext = {
|
|
28
|
-
currentTab: string | undefined;
|
|
29
|
-
};
|
|
30
|
-
export declare function createContext(props: {
|
|
31
|
-
currentTab?: string;
|
|
32
|
-
onchange?: (newTab: string) => void;
|
|
33
|
-
}): void;
|
|
34
|
-
export declare function getCtx(): TabsContext;
|