@spectral_labs/ui 1.2.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/accordion/__tests__/AccordionTest.svelte +4 -4
- package/dist/components/accordion/components/accordion-content.svelte +3 -3
- package/dist/components/accordion/components/accordion-item.svelte +1 -1
- package/dist/components/accordion/components/accordion-root.svelte +5 -7
- package/dist/components/accordion/components/accordion-root.svelte.d.ts.map +1 -1
- package/dist/components/accordion/components/accordion-trigger.svelte +12 -12
- package/dist/components/alert-dialog/__tests__/AlertDialogTest.svelte +6 -3
- package/dist/components/alert-dialog/__tests__/alert-dialog.a11y.test.js +9 -2
- package/dist/components/alert-dialog/components/alert-dialog-action.svelte +2 -2
- package/dist/components/alert-dialog/components/alert-dialog-cancel.svelte +2 -2
- package/dist/components/alert-dialog/components/alert-dialog-content.svelte +15 -11
- package/dist/components/alert-dialog/components/alert-dialog-content.svelte.d.ts.map +1 -1
- package/dist/components/alert-dialog/components/alert-dialog-description.svelte +1 -1
- package/dist/components/alert-dialog/components/alert-dialog-overlay.svelte +8 -6
- package/dist/components/alert-dialog/components/alert-dialog-overlay.svelte.d.ts.map +1 -1
- package/dist/components/alert-dialog/components/alert-dialog-root.svelte +7 -2
- package/dist/components/alert-dialog/components/alert-dialog-root.svelte.d.ts.map +1 -1
- package/dist/components/alert-dialog/components/alert-dialog-title.svelte +6 -2
- package/dist/components/alert-dialog/components/alert-dialog-trigger.svelte +3 -3
- package/dist/components/app-bar/app-bar.svelte +12 -12
- package/dist/components/aspect-ratio/aspect-ratio.svelte +2 -2
- package/dist/components/avatar/avatar.svelte +6 -6
- package/dist/components/badge/badge.svelte +49 -13
- package/dist/components/badge/types.d.ts.map +1 -1
- package/dist/components/bottom-sheet/__tests__/BottomSheetTest.svelte +16 -6
- package/dist/components/bottom-sheet/components/bottom-sheet-root.svelte +20 -20
- package/dist/components/breadcrumb/breadcrumb-item.svelte +2 -2
- package/dist/components/breadcrumb/breadcrumb-link.svelte +6 -2
- package/dist/components/breadcrumb/breadcrumb-link.svelte.d.ts.map +1 -1
- package/dist/components/breadcrumb/breadcrumb-list.svelte +2 -2
- package/dist/components/breadcrumb/breadcrumb-page.svelte +3 -3
- package/dist/components/breadcrumb/breadcrumb-separator.svelte +12 -4
- package/dist/components/breadcrumb/breadcrumb.svelte +2 -2
- package/dist/components/button/button.svelte +1 -1
- package/dist/components/button/types.d.ts.map +1 -1
- package/dist/components/calendar/__tests__/CalendarTest.svelte +1 -1
- package/dist/components/calendar/calendar.svelte.d.ts.map +1 -1
- package/dist/components/calendar/calendar.svelte.js +89 -33
- package/dist/components/calendar/components/calendar-grid.svelte +16 -15
- package/dist/components/calendar/components/calendar-grid.svelte.d.ts.map +1 -1
- package/dist/components/calendar/components/calendar-header.svelte +1 -1
- package/dist/components/calendar/components/calendar-heading.svelte +2 -2
- package/dist/components/calendar/components/calendar-next-button.svelte +14 -6
- package/dist/components/calendar/components/calendar-prev-button.svelte +14 -6
- package/dist/components/calendar/components/calendar-root.svelte +50 -22
- package/dist/components/calendar/components/calendar-root.svelte.d.ts.map +1 -1
- package/dist/components/card/card.svelte +1 -1
- package/dist/components/checkbox/checkbox.svelte +23 -27
- package/dist/components/checkbox/checkbox.svelte.d.ts.map +1 -1
- package/dist/components/chips/chip-group.svelte +8 -13
- package/dist/components/chips/chip-group.svelte.d.ts.map +1 -1
- package/dist/components/chips/chips.svelte +32 -39
- package/dist/components/chips/chips.svelte.d.ts.map +1 -1
- package/dist/components/chips/types.d.ts +5 -5
- package/dist/components/chips/types.d.ts.map +1 -1
- package/dist/components/collapsible/__tests__/CollapsibleTest.svelte +1 -1
- package/dist/components/collapsible/components/collapsible-content.svelte +8 -6
- package/dist/components/collapsible/components/collapsible-content.svelte.d.ts.map +1 -1
- package/dist/components/collapsible/components/collapsible-root.svelte +2 -3
- package/dist/components/collapsible/components/collapsible-root.svelte.d.ts.map +1 -1
- package/dist/components/collapsible/components/collapsible-trigger.svelte +2 -2
- package/dist/components/combobox/__tests__/ComboboxTest.svelte +5 -5
- package/dist/components/combobox/components/combobox-content.svelte +4 -6
- package/dist/components/combobox/components/combobox-content.svelte.d.ts.map +1 -1
- package/dist/components/combobox/components/combobox-input.svelte +10 -15
- package/dist/components/combobox/components/combobox-input.svelte.d.ts.map +1 -1
- package/dist/components/combobox/components/combobox-item.svelte +5 -8
- package/dist/components/combobox/components/combobox-item.svelte.d.ts.map +1 -1
- package/dist/components/combobox/components/combobox-root.svelte +13 -18
- package/dist/components/combobox/components/combobox-root.svelte.d.ts.map +1 -1
- package/dist/components/combobox/index.d.ts +1 -1
- package/dist/components/combobox/index.d.ts.map +1 -1
- package/dist/components/command/__tests__/CommandTest.svelte +19 -10
- package/dist/components/command/__tests__/command.a11y.test.js +1 -1
- package/dist/components/command/command.svelte.d.ts.map +1 -1
- package/dist/components/command/command.svelte.js +20 -10
- package/dist/components/command/components/command-empty.svelte +2 -2
- package/dist/components/command/components/command-group.svelte +6 -4
- package/dist/components/command/components/command-group.svelte.d.ts.map +1 -1
- package/dist/components/command/components/command-input.svelte +27 -14
- package/dist/components/command/components/command-input.svelte.d.ts.map +1 -1
- package/dist/components/command/components/command-item.svelte +12 -7
- package/dist/components/command/components/command-item.svelte.d.ts.map +1 -1
- package/dist/components/command/components/command-list.svelte +2 -7
- package/dist/components/command/components/command-root.svelte +18 -10
- package/dist/components/command/components/command-root.svelte.d.ts.map +1 -1
- package/dist/components/command/components/command-separator.svelte +2 -2
- package/dist/components/context-menu/__tests__/ContextMenuNonInteractiveTest.svelte +2 -4
- package/dist/components/context-menu/__tests__/ContextMenuTest.svelte +1 -1
- package/dist/components/context-menu/__tests__/context-menu.test.svelte.js +4 -1
- package/dist/components/context-menu/components/context-menu-content.svelte +7 -10
- package/dist/components/context-menu/components/context-menu-content.svelte.d.ts.map +1 -1
- package/dist/components/context-menu/components/context-menu-root.svelte +7 -2
- package/dist/components/context-menu/components/context-menu-root.svelte.d.ts.map +1 -1
- package/dist/components/context-menu/components/context-menu-trigger.svelte +13 -13
- package/dist/components/context-menu/index.d.ts +1 -1
- package/dist/components/context-menu/index.d.ts.map +1 -1
- package/dist/components/context-menu/types.d.ts +1 -1
- package/dist/components/context-menu/types.d.ts.map +1 -1
- package/dist/components/date-field/__tests__/DateFieldTest.svelte +1 -1
- package/dist/components/date-field/__tests__/date-field.test.svelte.js +5 -5
- package/dist/components/date-field/components/date-field-root.svelte +55 -55
- package/dist/components/date-field/types.d.ts +14 -14
- package/dist/components/date-field/types.d.ts.map +1 -1
- package/dist/components/date-picker/__tests__/DatePickerTest.svelte +2 -8
- package/dist/components/date-picker/__tests__/date-picker.test.svelte.js +10 -9
- package/dist/components/date-picker/components/date-picker-root.svelte +38 -31
- package/dist/components/date-picker/components/date-picker-root.svelte.d.ts.map +1 -1
- package/dist/components/date-range-field/__tests__/DateRangeFieldTest.svelte +1 -1
- package/dist/components/date-range-field/__tests__/date-range-field.test.svelte.js +3 -3
- package/dist/components/date-range-field/components/date-range-field-root.svelte +5 -5
- package/dist/components/date-range-picker/__tests__/DateRangePickerTest.svelte +2 -7
- package/dist/components/date-range-picker/__tests__/date-range-picker.test.svelte.js +11 -11
- package/dist/components/date-range-picker/components/date-range-picker-root.svelte +40 -32
- package/dist/components/date-range-picker/components/date-range-picker-root.svelte.d.ts.map +1 -1
- package/dist/components/dialog/__tests__/DialogTest.svelte +11 -4
- package/dist/components/dialog/__tests__/dialog.test.svelte.js +11 -0
- package/dist/components/dialog/components/dialog-close.svelte +2 -2
- package/dist/components/dialog/components/dialog-content.svelte +73 -13
- package/dist/components/dialog/components/dialog-content.svelte.d.ts.map +1 -1
- package/dist/components/dialog/components/dialog-description.svelte +1 -1
- package/dist/components/dialog/components/dialog-overlay.svelte +8 -6
- package/dist/components/dialog/components/dialog-overlay.svelte.d.ts.map +1 -1
- package/dist/components/dialog/components/dialog-root.svelte +4 -2
- package/dist/components/dialog/components/dialog-root.svelte.d.ts.map +1 -1
- package/dist/components/dialog/components/dialog-title.svelte +6 -2
- package/dist/components/dialog/components/dialog-trigger.svelte +3 -3
- package/dist/components/dialog/index.d.ts +1 -1
- package/dist/components/dialog/index.d.ts.map +1 -1
- package/dist/components/dialog/types.d.ts +12 -0
- package/dist/components/dialog/types.d.ts.map +1 -1
- package/dist/components/drop-zone/drop-zone.svelte +12 -18
- package/dist/components/drop-zone/drop-zone.svelte.d.ts.map +1 -1
- package/dist/components/dropdown-menu/__tests__/DropdownMenuTest.svelte +1 -1
- package/dist/components/dropdown-menu/components/dropdown-menu-checkbox-item.svelte +19 -8
- package/dist/components/dropdown-menu/components/dropdown-menu-checkbox-item.svelte.d.ts.map +1 -1
- package/dist/components/dropdown-menu/components/dropdown-menu-content.svelte +8 -12
- package/dist/components/dropdown-menu/components/dropdown-menu-content.svelte.d.ts.map +1 -1
- package/dist/components/dropdown-menu/components/dropdown-menu-item.svelte +4 -6
- package/dist/components/dropdown-menu/components/dropdown-menu-item.svelte.d.ts.map +1 -1
- package/dist/components/dropdown-menu/components/dropdown-menu-label.svelte +1 -1
- package/dist/components/dropdown-menu/components/dropdown-menu-root.svelte +7 -2
- package/dist/components/dropdown-menu/components/dropdown-menu-root.svelte.d.ts.map +1 -1
- package/dist/components/dropdown-menu/components/dropdown-menu-separator.svelte +2 -2
- package/dist/components/dropdown-menu/components/dropdown-menu-sub-content.svelte +5 -8
- package/dist/components/dropdown-menu/components/dropdown-menu-sub-content.svelte.d.ts.map +1 -1
- package/dist/components/dropdown-menu/components/dropdown-menu-sub-trigger.svelte +19 -14
- package/dist/components/dropdown-menu/components/dropdown-menu-sub-trigger.svelte.d.ts.map +1 -1
- package/dist/components/dropdown-menu/components/dropdown-menu-sub.svelte +19 -7
- package/dist/components/dropdown-menu/components/dropdown-menu-sub.svelte.d.ts.map +1 -1
- package/dist/components/dropdown-menu/components/dropdown-menu-trigger.svelte +5 -7
- package/dist/components/dropdown-menu/components/dropdown-menu-trigger.svelte.d.ts.map +1 -1
- package/dist/components/empty-state/empty-state.svelte +6 -6
- package/dist/components/fab/fab.svelte +2 -2
- package/dist/components/field/__tests__/FieldTest.svelte +2 -2
- package/dist/components/field/field-description.svelte +1 -1
- package/dist/components/field/field-error.svelte +2 -2
- package/dist/components/field/field-group.svelte +1 -1
- package/dist/components/field/field-label.svelte +2 -2
- package/dist/components/field/field-separator.svelte +4 -4
- package/dist/components/field/field.svelte +1 -1
- package/dist/components/grid-list/__tests__/GridListTest.svelte +2 -2
- package/dist/components/grid-list/components/grid-list-item.svelte +11 -17
- package/dist/components/grid-list/components/grid-list-item.svelte.d.ts.map +1 -1
- package/dist/components/grid-list/components/grid-list-root.svelte +32 -35
- package/dist/components/grid-list/components/grid-list-root.svelte.d.ts.map +1 -1
- package/dist/components/grid-list/grid-list.svelte.d.ts.map +1 -1
- package/dist/components/grid-list/grid-list.svelte.js +25 -15
- package/dist/components/grid-list/index.d.ts +1 -1
- package/dist/components/grid-list/index.d.ts.map +1 -1
- package/dist/components/grid-list/types.d.ts +21 -21
- package/dist/components/grid-list/types.d.ts.map +1 -1
- package/dist/components/hover-card/__tests__/HoverCardTest.svelte +3 -3
- package/dist/components/hover-card/components/hover-card-content.svelte +26 -12
- package/dist/components/hover-card/components/hover-card-content.svelte.d.ts.map +1 -1
- package/dist/components/hover-card/components/hover-card-root.svelte +10 -4
- package/dist/components/hover-card/components/hover-card-root.svelte.d.ts.map +1 -1
- package/dist/components/hover-card/components/hover-card-trigger.svelte +3 -4
- package/dist/components/hover-card/components/hover-card-trigger.svelte.d.ts.map +1 -1
- package/dist/components/indicator/indicator.svelte +5 -5
- package/dist/components/input/__tests__/input.test.svelte.js +29 -0
- package/dist/components/input/input.svelte +22 -5
- package/dist/components/label/label.svelte +2 -3
- package/dist/components/label/label.svelte.d.ts.map +1 -1
- package/dist/components/language-select/__tests__/languages.test.js +8 -8
- package/dist/components/language-select/language-select.svelte +23 -35
- package/dist/components/language-select/language-select.svelte.d.ts.map +1 -1
- package/dist/components/link-preview/__tests__/LinkPreviewTest.svelte +2 -2
- package/dist/components/link-preview/__tests__/link-preview.a11y.test.js +5 -1
- package/dist/components/link-preview/__tests__/link-preview.test.svelte.js +4 -1
- package/dist/components/link-preview/components/link-preview-content.svelte +16 -7
- package/dist/components/link-preview/components/link-preview-content.svelte.d.ts.map +1 -1
- package/dist/components/link-preview/components/link-preview-root.svelte +7 -2
- package/dist/components/link-preview/components/link-preview-root.svelte.d.ts.map +1 -1
- package/dist/components/link-preview/components/link-preview-trigger.svelte +15 -13
- package/dist/components/link-preview/components/link-preview-trigger.svelte.d.ts.map +1 -1
- package/dist/components/link-preview/index.d.ts +1 -1
- package/dist/components/link-preview/index.d.ts.map +1 -1
- package/dist/components/list/components/list-item.svelte +4 -4
- package/dist/components/list/components/list-root.svelte +2 -2
- package/dist/components/menubar/__tests__/MenubarTest.svelte +5 -5
- package/dist/components/menubar/__tests__/menubar.a11y.test.js +5 -1
- package/dist/components/menubar/components/menubar-content.svelte +36 -27
- package/dist/components/menubar/components/menubar-content.svelte.d.ts.map +1 -1
- package/dist/components/menubar/components/menubar-menu.svelte +7 -3
- package/dist/components/menubar/components/menubar-menu.svelte.d.ts.map +1 -1
- package/dist/components/menubar/components/menubar-root.svelte +12 -22
- package/dist/components/menubar/components/menubar-root.svelte.d.ts.map +1 -1
- package/dist/components/menubar/components/menubar-trigger.svelte +6 -8
- package/dist/components/menubar/components/menubar-trigger.svelte.d.ts.map +1 -1
- package/dist/components/meter/meter.svelte +6 -9
- package/dist/components/meter/meter.svelte.d.ts.map +1 -1
- package/dist/components/nav-bar/components/nav-bar-item.svelte +9 -12
- package/dist/components/nav-bar/components/nav-bar-item.svelte.d.ts.map +1 -1
- package/dist/components/nav-bar/components/nav-bar-root.svelte +3 -3
- package/dist/components/nav-drawer/components/nav-drawer-item.svelte +8 -11
- package/dist/components/nav-drawer/components/nav-drawer-item.svelte.d.ts.map +1 -1
- package/dist/components/nav-drawer/components/nav-drawer-root.svelte +11 -11
- package/dist/components/nav-drawer/components/nav-drawer-root.svelte.d.ts.map +1 -1
- package/dist/components/nav-rail/components/nav-rail-item.svelte +10 -12
- package/dist/components/nav-rail/components/nav-rail-item.svelte.d.ts.map +1 -1
- package/dist/components/nav-rail/components/nav-rail-root.svelte +4 -4
- package/dist/components/pagination/pagination.svelte +28 -33
- package/dist/components/pagination/pagination.svelte.d.ts.map +1 -1
- package/dist/components/pin-input/pin-input.svelte +21 -20
- package/dist/components/pin-input/pin-input.svelte.d.ts.map +1 -1
- package/dist/components/popover/__tests__/PopoverTest.svelte +2 -2
- package/dist/components/popover/components/popover-close.svelte +2 -2
- package/dist/components/popover/components/popover-content.svelte +48 -25
- package/dist/components/popover/components/popover-content.svelte.d.ts.map +1 -1
- package/dist/components/popover/components/popover-root.svelte +1 -1
- package/dist/components/popover/components/popover-trigger.svelte +4 -5
- package/dist/components/popover/components/popover-trigger.svelte.d.ts.map +1 -1
- package/dist/components/progress/progress.svelte +3 -3
- package/dist/components/radio-group/components/radio-group-item.svelte +8 -9
- package/dist/components/radio-group/components/radio-group-item.svelte.d.ts.map +1 -1
- package/dist/components/radio-group/components/radio-group-root.svelte +6 -5
- package/dist/components/radio-group/components/radio-group-root.svelte.d.ts.map +1 -1
- package/dist/components/range-calendar/__tests__/RangeCalendarTest.svelte +1 -1
- package/dist/components/range-calendar/__tests__/range-calendar.test.svelte.js +4 -1
- package/dist/components/range-calendar/components/range-calendar-grid.svelte +16 -17
- package/dist/components/range-calendar/components/range-calendar-grid.svelte.d.ts.map +1 -1
- package/dist/components/range-calendar/components/range-calendar-header.svelte +29 -13
- package/dist/components/range-calendar/components/range-calendar-root.svelte +42 -17
- package/dist/components/range-calendar/components/range-calendar-root.svelte.d.ts.map +1 -1
- package/dist/components/range-calendar/range-calendar.svelte.d.ts.map +1 -1
- package/dist/components/range-calendar/range-calendar.svelte.js +54 -24
- package/dist/components/rating-group/rating-group.svelte +17 -23
- package/dist/components/rating-group/rating-group.svelte.d.ts.map +1 -1
- package/dist/components/scroll-area/scroll-area.svelte +22 -28
- package/dist/components/scroll-area/scroll-area.svelte.d.ts.map +1 -1
- package/dist/components/search-field/__tests__/SearchFieldTest.svelte +3 -3
- package/dist/components/search-field/__tests__/search-field.test.svelte.js +28 -0
- package/dist/components/search-field/search-field.svelte +44 -18
- package/dist/components/search-field/types.d.ts +7 -7
- package/dist/components/search-field/types.d.ts.map +1 -1
- package/dist/components/select/__tests__/SelectLabelPersistenceTest.svelte +6 -8
- package/dist/components/select/__tests__/SelectTest.svelte +1 -1
- package/dist/components/select/components/select-content.svelte +13 -16
- package/dist/components/select/components/select-content.svelte.d.ts.map +1 -1
- package/dist/components/select/components/select-item.svelte +14 -16
- package/dist/components/select/components/select-item.svelte.d.ts.map +1 -1
- package/dist/components/select/components/select-root.svelte +9 -12
- package/dist/components/select/components/select-root.svelte.d.ts.map +1 -1
- package/dist/components/select/components/select-trigger.svelte +20 -12
- package/dist/components/select/components/select-trigger.svelte.d.ts.map +1 -1
- package/dist/components/separator/separator.svelte +1 -1
- package/dist/components/sheet/__tests__/SheetTest.svelte +2 -2
- package/dist/components/sheet/components/sheet-close.svelte +2 -2
- package/dist/components/sheet/components/sheet-content.svelte +12 -11
- package/dist/components/sheet/components/sheet-content.svelte.d.ts.map +1 -1
- package/dist/components/sheet/components/sheet-description.svelte +1 -1
- package/dist/components/sheet/components/sheet-overlay.svelte +8 -6
- package/dist/components/sheet/components/sheet-overlay.svelte.d.ts.map +1 -1
- package/dist/components/sheet/components/sheet-root.svelte +4 -2
- package/dist/components/sheet/components/sheet-root.svelte.d.ts.map +1 -1
- package/dist/components/sheet/components/sheet-title.svelte +7 -6
- package/dist/components/sheet/components/sheet-trigger.svelte +3 -3
- package/dist/components/side-sheet/__tests__/side-sheet.test.svelte.js +3 -1
- package/dist/components/side-sheet/side-sheet.svelte +5 -5
- package/dist/components/sidebar/__tests__/SidebarFullTest.svelte +7 -7
- package/dist/components/sidebar/__tests__/SidebarTest.svelte +2 -2
- package/dist/components/sidebar/__tests__/sidebar.test.svelte.js +9 -5
- package/dist/components/sidebar/components/sidebar-content.svelte +1 -1
- package/dist/components/sidebar/components/sidebar-footer.svelte +1 -1
- package/dist/components/sidebar/components/sidebar-group-content.svelte +1 -1
- package/dist/components/sidebar/components/sidebar-group-label.svelte +1 -1
- package/dist/components/sidebar/components/sidebar-group.svelte +1 -1
- package/dist/components/sidebar/components/sidebar-header.svelte +1 -1
- package/dist/components/sidebar/components/sidebar-inset.svelte +1 -1
- package/dist/components/sidebar/components/sidebar-menu-action.svelte +11 -4
- package/dist/components/sidebar/components/sidebar-menu-action.svelte.d.ts.map +1 -1
- package/dist/components/sidebar/components/sidebar-menu-button.svelte +8 -4
- package/dist/components/sidebar/components/sidebar-menu-item.svelte +1 -1
- package/dist/components/sidebar/components/sidebar-menu-sub-button.svelte +5 -3
- package/dist/components/sidebar/components/sidebar-menu-sub-item.svelte +1 -1
- package/dist/components/sidebar/components/sidebar-menu-sub.svelte +1 -1
- package/dist/components/sidebar/components/sidebar-menu.svelte +1 -1
- package/dist/components/sidebar/components/sidebar-provider.svelte +5 -3
- package/dist/components/sidebar/components/sidebar-provider.svelte.d.ts.map +1 -1
- package/dist/components/sidebar/components/sidebar-root.svelte +6 -4
- package/dist/components/sidebar/components/sidebar-separator.svelte +1 -1
- package/dist/components/sidebar/components/sidebar-trigger.svelte +13 -5
- package/dist/components/sidebar/sidebar.svelte.d.ts.map +1 -1
- package/dist/components/sidebar/sidebar.svelte.js +9 -3
- package/dist/components/simple-dialog/__tests__/SimpleDialogTest.svelte +16 -5
- package/dist/components/simple-dialog/__tests__/simple-dialog.test.svelte.js +5 -0
- package/dist/components/simple-dialog/simple-dialog.svelte +9 -8
- package/dist/components/simple-dialog/simple-dialog.svelte.d.ts.map +1 -1
- package/dist/components/simple-dialog/types.d.ts +3 -0
- package/dist/components/simple-dialog/types.d.ts.map +1 -1
- package/dist/components/simple-tooltip/__tests__/SimpleTooltipTest.svelte +2 -2
- package/dist/components/simple-tooltip/__tests__/simple-tooltip.test.svelte.js +1 -0
- package/dist/components/simple-tooltip/simple-tooltip.svelte +1 -1
- package/dist/components/slider/slider.svelte +11 -15
- package/dist/components/slider/slider.svelte.d.ts.map +1 -1
- package/dist/components/slider/types.d.ts +10 -10
- package/dist/components/slider/types.d.ts.map +1 -1
- package/dist/components/sortable-list/__tests__/SortableListTest.svelte +9 -2
- package/dist/components/sortable-list/__tests__/sortable-list.test.svelte.js +13 -7
- package/dist/components/sortable-list/components/sortable-list-handle.svelte +20 -25
- package/dist/components/sortable-list/components/sortable-list-handle.svelte.d.ts.map +1 -1
- package/dist/components/sortable-list/components/sortable-list-indicator.svelte +11 -16
- package/dist/components/sortable-list/components/sortable-list-indicator.svelte.d.ts.map +1 -1
- package/dist/components/sortable-list/components/sortable-list-item.svelte +5 -9
- package/dist/components/sortable-list/components/sortable-list-item.svelte.d.ts.map +1 -1
- package/dist/components/sortable-list/components/sortable-list-root.svelte +3 -3
- package/dist/components/sortable-list/sortable-list.svelte.d.ts.map +1 -1
- package/dist/components/sortable-list/sortable-list.svelte.js +8 -10
- package/dist/components/sortable-list/types.d.ts +15 -15
- package/dist/components/sortable-list/types.d.ts.map +1 -1
- package/dist/components/splitter/splitter.svelte +21 -30
- package/dist/components/splitter/splitter.svelte.d.ts.map +1 -1
- package/dist/components/switch/switch.svelte +11 -11
- package/dist/components/switch/switch.svelte.d.ts.map +1 -1
- package/dist/components/table/components/table-body.svelte +1 -1
- package/dist/components/table/components/table-cell.svelte +23 -35
- package/dist/components/table/components/table-cell.svelte.d.ts.map +1 -1
- package/dist/components/table/components/table-header.svelte +1 -1
- package/dist/components/table/components/table-resize-handle.svelte +7 -10
- package/dist/components/table/components/table-resize-handle.svelte.d.ts.map +1 -1
- package/dist/components/table/components/table-root.svelte +26 -22
- package/dist/components/table/components/table-row.svelte +5 -4
- package/dist/components/table/components/table-row.svelte.d.ts.map +1 -1
- package/dist/components/table/table.svelte.d.ts.map +1 -1
- package/dist/components/table/table.svelte.js +6 -2
- package/dist/components/tabs/__tests__/TabsTest.svelte +7 -7
- package/dist/components/tabs/__tests__/tabs.test.svelte.js +4 -1
- package/dist/components/tabs/components/tabs-content.svelte +2 -2
- package/dist/components/tabs/components/tabs-list.svelte +10 -13
- package/dist/components/tabs/components/tabs-list.svelte.d.ts.map +1 -1
- package/dist/components/tabs/components/tabs-root.svelte +1 -1
- package/dist/components/tabs/components/tabs-trigger.svelte +4 -5
- package/dist/components/tabs/components/tabs-trigger.svelte.d.ts.map +1 -1
- package/dist/components/textarea/__tests__/textarea.test.svelte.js +29 -0
- package/dist/components/textarea/textarea.svelte +14 -1
- package/dist/components/time-field/__tests__/TimeFieldTest.svelte +1 -1
- package/dist/components/time-field/__tests__/time-field.test.svelte.js +6 -8
- package/dist/components/time-field/components/time-field-root.svelte +67 -73
- package/dist/components/time-field/components/time-field-root.svelte.d.ts.map +1 -1
- package/dist/components/time-field/index.d.ts +1 -1
- package/dist/components/time-field/index.d.ts.map +1 -1
- package/dist/components/time-field/time-field.svelte.d.ts.map +1 -1
- package/dist/components/time-field/types.d.ts +13 -13
- package/dist/components/time-field/types.d.ts.map +1 -1
- package/dist/components/time-range-field/__tests__/TimeRangeFieldTest.svelte +1 -1
- package/dist/components/time-range-field/__tests__/time-range-field.test.svelte.js +4 -4
- package/dist/components/time-range-field/components/time-range-field-root.svelte +5 -5
- package/dist/components/time-range-field/types.d.ts +1 -1
- package/dist/components/time-range-field/types.d.ts.map +1 -1
- package/dist/components/toast/toast.svelte +15 -15
- package/dist/components/toggle/toggle.svelte +3 -4
- package/dist/components/toggle/toggle.svelte.d.ts.map +1 -1
- package/dist/components/toggle-group/components/toggle-group-item.svelte +3 -4
- package/dist/components/toggle-group/components/toggle-group-item.svelte.d.ts.map +1 -1
- package/dist/components/toggle-group/components/toggle-group-root.svelte +7 -11
- package/dist/components/toggle-group/components/toggle-group-root.svelte.d.ts.map +1 -1
- package/dist/components/toggle-group/types.d.ts.map +1 -1
- package/dist/components/toolbar/__tests__/ToolbarCompositionTest.svelte +7 -7
- package/dist/components/toolbar/__tests__/ToolbarTabstopTest.svelte +5 -5
- package/dist/components/toolbar/toolbar-group.svelte +3 -8
- package/dist/components/toolbar/toolbar-group.svelte.d.ts.map +1 -1
- package/dist/components/toolbar/toolbar-separator.svelte +2 -3
- package/dist/components/toolbar/toolbar-separator.svelte.d.ts.map +1 -1
- package/dist/components/toolbar/toolbar.svelte +17 -23
- package/dist/components/toolbar/toolbar.svelte.d.ts.map +1 -1
- package/dist/components/tooltip/__tests__/TooltipTest.svelte +1 -1
- package/dist/components/tooltip/components/tooltip-content.svelte +20 -15
- package/dist/components/tooltip/components/tooltip-content.svelte.d.ts.map +1 -1
- package/dist/components/tooltip/components/tooltip-provider.svelte +8 -3
- package/dist/components/tooltip/components/tooltip-provider.svelte.d.ts.map +1 -1
- package/dist/components/tooltip/components/tooltip-root.svelte +1 -1
- package/dist/components/tooltip/components/tooltip-trigger.svelte +15 -13
- package/dist/components/tooltip/components/tooltip-trigger.svelte.d.ts.map +1 -1
- package/dist/components/tooltip/index.d.ts +1 -1
- package/dist/components/tooltip/index.d.ts.map +1 -1
- package/dist/components/tooltip/tooltip-provider.svelte.d.ts.map +1 -1
- package/dist/components/tree/__tests__/TreeLabelContentTest.svelte +7 -7
- package/dist/components/tree/__tests__/TreeTest.svelte +7 -7
- package/dist/components/tree/components/tree-item.svelte +22 -26
- package/dist/components/tree/components/tree-item.svelte.d.ts.map +1 -1
- package/dist/components/tree/components/tree-root.svelte +2 -2
- package/dist/components/tree/tree.svelte.d.ts.map +1 -1
- package/dist/components/tree/types.d.ts +9 -9
- package/dist/components/tree/types.d.ts.map +1 -1
- package/dist/components/virtualizer/__tests__/waterfall-layout.test.js +1 -1
- package/dist/components/virtualizer/components/virtualizer-root.svelte +8 -17
- package/dist/components/virtualizer/components/virtualizer-root.svelte.d.ts.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/internal/announcer/announcer.svelte.d.ts.map +1 -1
- package/dist/internal/date-time/calendar-helpers.d.ts.map +1 -1
- package/dist/internal/date-time/formatter.d.ts.map +1 -1
- package/dist/internal/date-time/types.d.ts.map +1 -1
- package/dist/internal/date-time/types.js +4 -1
- package/dist/internal/date-time/utils.d.ts +2 -2
- package/dist/internal/date-time/utils.d.ts.map +1 -1
- package/dist/internal/date-time/utils.js +2 -2
- package/dist/internal/dismissible-layer/dismissible-layer.svelte.d.ts.map +1 -1
- package/dist/internal/dismissible-layer/dismissible-layer.svelte.js +6 -6
- package/dist/internal/drag-drop/__tests__/auto-scroll.test.js +6 -2
- package/dist/internal/drag-drop/__tests__/drag-session.test.svelte.js +9 -4
- package/dist/internal/drag-drop/__tests__/drop-delegate.test.js +18 -10
- package/dist/internal/drag-drop/auto-scroll.svelte.d.ts.map +1 -1
- package/dist/internal/drag-drop/auto-scroll.svelte.js +12 -8
- package/dist/internal/drag-drop/drag-session.svelte.d.ts.map +1 -1
- package/dist/internal/drag-drop/drag-session.svelte.js +41 -17
- package/dist/internal/drag-drop/drag-source.svelte.d.ts.map +1 -1
- package/dist/internal/drag-drop/drop-delegate.svelte.d.ts.map +1 -1
- package/dist/internal/drag-drop/drop-delegate.svelte.js +3 -3
- package/dist/internal/drag-drop/drop-target.svelte.d.ts.map +1 -1
- package/dist/internal/drag-drop/keyboard-dnd.svelte.d.ts.map +1 -1
- package/dist/internal/escape-layer/escape-layer.svelte.d.ts.map +1 -1
- package/dist/internal/escape-layer/escape-layer.svelte.js +2 -2
- package/dist/internal/floating-layer/floating-layer.svelte.d.ts.map +1 -1
- package/dist/internal/floating-layer/types.d.ts.map +1 -1
- package/dist/internal/focus-scope/focus-scope.svelte.d.ts.map +1 -1
- package/dist/internal/grace-area/grace-area.svelte.d.ts.map +1 -1
- package/dist/internal/grace-area/grace-area.svelte.js +1 -1
- package/dist/internal/helpers/arrays.d.ts.map +1 -1
- package/dist/internal/helpers/dom.d.ts.map +1 -1
- package/dist/internal/helpers/dom.js +2 -2
- package/dist/internal/helpers/merge-props.d.ts.map +1 -1
- package/dist/internal/i18n/languages.d.ts.map +1 -1
- package/dist/internal/i18n/languages.js +2 -2
- package/dist/internal/portal/__tests__/PortalTest.svelte +3 -3
- package/dist/internal/portal/portal-consumer.svelte +1 -1
- package/dist/internal/portal/portal.svelte +7 -3
- package/dist/internal/portal/portal.svelte.d.ts.map +1 -1
- package/dist/internal/presence-layer/presence-layer.svelte.d.ts.map +1 -1
- package/dist/internal/roving-focus/roving-focus.svelte.d.ts.map +1 -1
- package/dist/internal/roving-focus/roving-focus.svelte.js +2 -2
- package/dist/internal/scroll-lock/scroll-lock.svelte.d.ts.map +1 -1
- package/dist/internal/text-selection-layer/text-selection-layer.svelte.d.ts.map +1 -1
- package/dist/internal/typeahead/typeahead.svelte.d.ts.map +1 -1
- package/dist/internal/typeahead/typeahead.svelte.js +1 -1
- package/package.json +1 -1
- package/src/fonts.css +2 -2
- package/src/themes/__tests__/carbon-dark-contrast.test.ts +4 -3
- package/src/themes/carbon.css +104 -107
- package/src/themes/day.css +104 -106
- package/src/themes/docs.css +104 -106
- package/src/themes/iris-ocr.css +104 -108
- package/src/themes/midnight.css +104 -107
- package/src/themes/spectral-components.css +3 -1
- package/src/themes/spectral.css +116 -111
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hover-card-trigger.svelte.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/hover-card/components/hover-card-trigger.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"hover-card-trigger.svelte.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/hover-card/components/hover-card-trigger.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAwBxD,QAAA,MAAM,gBAAgB,2DAAwC,CAAC;AAC/D,KAAK,gBAAgB,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC5D,eAAe,gBAAgB,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<script lang=
|
|
1
|
+
<script lang="ts">
|
|
2
2
|
import type { IndicatorProps } from './types.js'
|
|
3
3
|
|
|
4
4
|
const { status = 'neutral', label, class: className, children }: IndicatorProps = $props()
|
|
@@ -6,14 +6,14 @@
|
|
|
6
6
|
|
|
7
7
|
<span
|
|
8
8
|
class="sp-indicator {status} {className ?? ''}"
|
|
9
|
-
role=
|
|
10
|
-
aria-live=
|
|
9
|
+
role="status"
|
|
10
|
+
aria-live="polite"
|
|
11
11
|
aria-label={label}
|
|
12
12
|
data-status={status}
|
|
13
13
|
>
|
|
14
|
-
<span class=
|
|
14
|
+
<span class="sp-indicator-dot"></span>
|
|
15
15
|
{#if children}
|
|
16
|
-
<span class=
|
|
16
|
+
<span class="sp-indicator-label">{@render children()}</span>
|
|
17
17
|
{/if}
|
|
18
18
|
</span>
|
|
19
19
|
|
|
@@ -1,6 +1,10 @@
|
|
|
1
|
+
import { readFileSync } from 'node:fs';
|
|
2
|
+
import { dirname, resolve } from 'node:path';
|
|
3
|
+
import { fileURLToPath } from 'node:url';
|
|
1
4
|
import { mount, unmount } from 'svelte';
|
|
2
5
|
import { afterEach, describe, expect, it } from 'vitest';
|
|
3
6
|
import Input from '../input.svelte';
|
|
7
|
+
const componentSource = readFileSync(resolve(dirname(fileURLToPath(import.meta.url)), '../input.svelte'), 'utf8');
|
|
4
8
|
describe('input', () => {
|
|
5
9
|
let target;
|
|
6
10
|
let instance;
|
|
@@ -35,4 +39,29 @@ describe('input', () => {
|
|
|
35
39
|
setup({ placeholder: 'Enter email' });
|
|
36
40
|
expect(target.querySelector('input')?.getAttribute('placeholder')).toBe('Enter email');
|
|
37
41
|
});
|
|
42
|
+
// ── iOS Safari focus-zoom contract ────────────────────────────────
|
|
43
|
+
// Real WebKit focus-zoom cannot be reproduced in jsdom. These tests
|
|
44
|
+
// lock the CSS contract that prevents the regression on `size="sm"` :
|
|
45
|
+
// the `sm` typography stays token-driven for desktop, and a clamp to
|
|
46
|
+
// >= 1rem is applied on coarse pointers (touch / iOS). Other sizes
|
|
47
|
+
// inherit the base 1rem and are already iOS-safe.
|
|
48
|
+
describe('iOS Safari focus-zoom contract (size="sm")', () => {
|
|
49
|
+
it('keeps fine-pointer typography on the body-medium token', () => {
|
|
50
|
+
expect(componentSource).toMatch(/\.sp-input\.sm\s*\{[^}]*font-size:\s*var\(--sp-sys-typescale-body-medium-size[^}]*\}/);
|
|
51
|
+
});
|
|
52
|
+
it('clamps the sm input to at least 1rem on coarse pointers', () => {
|
|
53
|
+
expect(componentSource).toMatch(/@media\s*\(pointer:\s*coarse\)\s*\{[\s\S]*?\.sp-input\.sm\s*\{[^}]*font-size:\s*max\(1rem,[^)]*\)[\s\S]*?\}/);
|
|
54
|
+
});
|
|
55
|
+
it('only the sm variant is targeted by the coarse-pointer clamp', () => {
|
|
56
|
+
// The clamp must target `.sp-input.sm` and only `.sp-input.sm`. Other
|
|
57
|
+
// sizes inherit the base 1rem and must not get an override.
|
|
58
|
+
const coarseRules = [
|
|
59
|
+
...componentSource.matchAll(/@media\s*\(pointer:\s*coarse\)\s*\{[^}]*\{/g),
|
|
60
|
+
];
|
|
61
|
+
expect(coarseRules.length).toBe(1);
|
|
62
|
+
expect(coarseRules[0][0]).toContain('.sp-input.sm');
|
|
63
|
+
expect(coarseRules[0][0]).not.toContain('.sp-input.md');
|
|
64
|
+
expect(coarseRules[0][0]).not.toContain('.sp-input.lg');
|
|
65
|
+
});
|
|
66
|
+
});
|
|
38
67
|
});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<script lang=
|
|
1
|
+
<script lang="ts">
|
|
2
2
|
import type { InputProps } from './types.js'
|
|
3
3
|
|
|
4
4
|
let {
|
|
@@ -26,7 +26,8 @@
|
|
|
26
26
|
.sp-input {
|
|
27
27
|
display: block;
|
|
28
28
|
width: 100%;
|
|
29
|
-
border: var(--sp-comp-input-outline-width, 1px) solid
|
|
29
|
+
border: var(--sp-comp-input-outline-width, 1px) solid
|
|
30
|
+
var(--sp-comp-input-outline-color, var(--sp-sys-color-outline));
|
|
30
31
|
background-color: var(--sp-comp-input-container-color, transparent);
|
|
31
32
|
color: var(--sp-comp-input-text-color, var(--sp-sys-color-on-surface));
|
|
32
33
|
caret-color: var(--sp-comp-input-caret-color, currentColor);
|
|
@@ -48,6 +49,19 @@
|
|
|
48
49
|
font-size: var(--sp-sys-typescale-body-medium-size, 0.875rem);
|
|
49
50
|
}
|
|
50
51
|
|
|
52
|
+
/* iOS Safari focus zoom : WebKit auto-zooms the viewport when a focused
|
|
53
|
+
form control's computed font-size is < 16px. The `sm` size renders
|
|
54
|
+
at `body-medium` (14px by default), which crosses that threshold.
|
|
55
|
+
Clamp to at least 1rem on coarse pointers (touch / iOS) so dense
|
|
56
|
+
forms on mobile stay usable; `max()` preserves any theme that may
|
|
57
|
+
override `--sp-sys-typescale-body-medium-size` upward. Other sizes
|
|
58
|
+
inherit the base 1rem and are already iOS-safe. */
|
|
59
|
+
@media (pointer: coarse) {
|
|
60
|
+
.sp-input.sm {
|
|
61
|
+
font-size: max(1rem, var(--sp-sys-typescale-body-medium-size, 0.875rem));
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
51
65
|
.sp-input.md {
|
|
52
66
|
height: calc(48px + var(--sp-sys-density-offset, 0px));
|
|
53
67
|
}
|
|
@@ -65,19 +79,22 @@
|
|
|
65
79
|
/* Compensate for the extra border pixels so the element doesn't shift.
|
|
66
80
|
Works out to `1rem - 1px` by default; 0 when outline tokens are equal (e.g. both 0). */
|
|
67
81
|
padding-inline: calc(
|
|
68
|
-
1rem -
|
|
82
|
+
1rem -
|
|
83
|
+
(var(--sp-comp-input-focus-outline-width, 2px) - var(--sp-comp-input-outline-width, 1px))
|
|
69
84
|
);
|
|
70
85
|
}
|
|
71
86
|
|
|
72
87
|
.sp-input.sm:focus {
|
|
73
88
|
padding-inline: calc(
|
|
74
|
-
0.75rem -
|
|
89
|
+
0.75rem -
|
|
90
|
+
(var(--sp-comp-input-focus-outline-width, 2px) - var(--sp-comp-input-outline-width, 1px))
|
|
75
91
|
);
|
|
76
92
|
}
|
|
77
93
|
|
|
78
94
|
.sp-input.lg:focus {
|
|
79
95
|
padding-inline: calc(
|
|
80
|
-
1.25rem -
|
|
96
|
+
1.25rem -
|
|
97
|
+
(var(--sp-comp-input-focus-outline-width, 2px) - var(--sp-comp-input-outline-width, 1px))
|
|
81
98
|
);
|
|
82
99
|
}
|
|
83
100
|
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
<script lang=
|
|
1
|
+
<script lang="ts">
|
|
2
2
|
import type { LabelProps } from './types.js'
|
|
3
3
|
|
|
4
4
|
const { class: className, children, ...restProps }: LabelProps = $props()
|
|
5
5
|
|
|
6
6
|
function onmousedown(event: MouseEvent) {
|
|
7
|
-
if (event.detail > 1)
|
|
8
|
-
event.preventDefault()
|
|
7
|
+
if (event.detail > 1) event.preventDefault()
|
|
9
8
|
}
|
|
10
9
|
</script>
|
|
11
10
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"label.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/components/label/label.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"label.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/components/label/label.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAoB7C,QAAA,MAAM,KAAK,gDAAwC,CAAC;AACpD,KAAK,KAAK,GAAG,UAAU,CAAC,OAAO,KAAK,CAAC,CAAC;AACtC,eAAe,KAAK,CAAC"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { describe, expect, it } from 'vitest';
|
|
2
|
-
import { getLanguage, getLanguages, LANGUAGES
|
|
2
|
+
import { getLanguage, getLanguages, LANGUAGES } from '../../../internal/i18n/languages.js';
|
|
3
3
|
describe('i18n/languages', () => {
|
|
4
4
|
describe('languages list', () => {
|
|
5
5
|
it('contains the 16 curated languages', () => {
|
|
6
6
|
expect(LANGUAGES).toHaveLength(16);
|
|
7
7
|
});
|
|
8
8
|
it('exposes valid BCP 47 codes', () => {
|
|
9
|
-
const codes = LANGUAGES.map(l => l.code);
|
|
9
|
+
const codes = LANGUAGES.map((l) => l.code);
|
|
10
10
|
expect(codes).toEqual([
|
|
11
11
|
'en',
|
|
12
12
|
'fr',
|
|
@@ -27,9 +27,9 @@ describe('i18n/languages', () => {
|
|
|
27
27
|
]);
|
|
28
28
|
});
|
|
29
29
|
it('marks ar and ur as rtl and the rest as ltr', () => {
|
|
30
|
-
const rtl = LANGUAGES.filter(l => l.dir === 'rtl').map(l => l.code);
|
|
30
|
+
const rtl = LANGUAGES.filter((l) => l.dir === 'rtl').map((l) => l.code);
|
|
31
31
|
expect(rtl).toEqual(['ar', 'ur']);
|
|
32
|
-
const ltr = LANGUAGES.filter(l => l.dir === 'ltr').map(l => l.code);
|
|
32
|
+
const ltr = LANGUAGES.filter((l) => l.dir === 'ltr').map((l) => l.code);
|
|
33
33
|
expect(ltr).toHaveLength(14);
|
|
34
34
|
});
|
|
35
35
|
it('has a non-empty nativeName and englishName for each entry', () => {
|
|
@@ -42,22 +42,22 @@ describe('i18n/languages', () => {
|
|
|
42
42
|
expect(Object.isFrozen(LANGUAGES)).toBe(true);
|
|
43
43
|
});
|
|
44
44
|
it('has no duplicate codes', () => {
|
|
45
|
-
const codes = LANGUAGES.map(l => l.code);
|
|
45
|
+
const codes = LANGUAGES.map((l) => l.code);
|
|
46
46
|
expect(new Set(codes).size).toBe(codes.length);
|
|
47
47
|
});
|
|
48
48
|
});
|
|
49
49
|
describe('getLanguages', () => {
|
|
50
50
|
it('returns the requested subset in the requested order', () => {
|
|
51
51
|
const result = getLanguages(['fr', 'en', 'de']);
|
|
52
|
-
expect(result.map(l => l.code)).toEqual(['fr', 'en', 'de']);
|
|
52
|
+
expect(result.map((l) => l.code)).toEqual(['fr', 'en', 'de']);
|
|
53
53
|
});
|
|
54
54
|
it('preserves user-specified order even when reversed vs LANGUAGES', () => {
|
|
55
55
|
const result = getLanguages(['de', 'en', 'fr']);
|
|
56
|
-
expect(result.map(l => l.code)).toEqual(['de', 'en', 'fr']);
|
|
56
|
+
expect(result.map((l) => l.code)).toEqual(['de', 'en', 'fr']);
|
|
57
57
|
});
|
|
58
58
|
it('silently drops unknown codes', () => {
|
|
59
59
|
const result = getLanguages(['fr', 'xx', 'en']);
|
|
60
|
-
expect(result.map(l => l.code)).toEqual(['fr', 'en']);
|
|
60
|
+
expect(result.map((l) => l.code)).toEqual(['fr', 'en']);
|
|
61
61
|
});
|
|
62
62
|
it('returns [] for an empty input', () => {
|
|
63
63
|
expect(getLanguages([])).toEqual([]);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<script lang=
|
|
1
|
+
<script lang="ts">
|
|
2
2
|
import type { LanguageOption } from '../../internal/i18n/languages.js'
|
|
3
3
|
import type { LanguageSelectProps } from './types.js'
|
|
4
4
|
import { LANGUAGES } from '../../internal/i18n/languages.js'
|
|
@@ -23,9 +23,8 @@
|
|
|
23
23
|
// ── Shared helpers ────────────────────────────────────────────────────────
|
|
24
24
|
|
|
25
25
|
function nativeNameFor(code: string | undefined): string {
|
|
26
|
-
if (!code)
|
|
27
|
-
|
|
28
|
-
return items.find(l => l.code === code)?.nativeName ?? ''
|
|
26
|
+
if (!code) return ''
|
|
27
|
+
return items.find((l) => l.code === code)?.nativeName ?? ''
|
|
29
28
|
}
|
|
30
29
|
|
|
31
30
|
// ── Combobox variant — composite value trick ─────────────────────────────
|
|
@@ -48,9 +47,8 @@
|
|
|
48
47
|
}
|
|
49
48
|
|
|
50
49
|
function compositeFor(code: string | undefined): string {
|
|
51
|
-
if (!code)
|
|
52
|
-
|
|
53
|
-
const item = items.find(l => l.code === code)
|
|
50
|
+
if (!code) return ''
|
|
51
|
+
const item = items.find((l) => l.code === code)
|
|
54
52
|
return item ? toComposite(item) : ''
|
|
55
53
|
}
|
|
56
54
|
|
|
@@ -72,44 +70,36 @@
|
|
|
72
70
|
// External `value` → internal state, only when value genuinely changed
|
|
73
71
|
// from outside (i.e. differs from the last code we synced).
|
|
74
72
|
$effect(() => {
|
|
75
|
-
if (value === lastExternalCode)
|
|
76
|
-
return
|
|
73
|
+
if (value === lastExternalCode) return
|
|
77
74
|
lastExternalCode = value
|
|
78
75
|
if (variant === 'select') {
|
|
79
76
|
const v = value ?? ''
|
|
80
|
-
if (selectValue !== v)
|
|
81
|
-
|
|
82
|
-
}
|
|
83
|
-
else {
|
|
77
|
+
if (selectValue !== v) selectValue = v
|
|
78
|
+
} else {
|
|
84
79
|
const expected = compositeFor(value)
|
|
85
|
-
if (compositeValue !== expected)
|
|
86
|
-
compositeValue = expected
|
|
80
|
+
if (compositeValue !== expected) compositeValue = expected
|
|
87
81
|
searchQuery = nativeNameFor(value)
|
|
88
82
|
}
|
|
89
83
|
})
|
|
90
84
|
|
|
91
85
|
// Internal state → external `value`, only when user interaction moved it.
|
|
92
86
|
$effect(() => {
|
|
93
|
-
if (variant !== 'select')
|
|
94
|
-
return
|
|
87
|
+
if (variant !== 'select') return
|
|
95
88
|
const code: string | undefined = selectValue || undefined
|
|
96
89
|
if (code !== lastExternalCode) {
|
|
97
90
|
lastExternalCode = code
|
|
98
91
|
value = code
|
|
99
|
-
if (code !== undefined)
|
|
100
|
-
onValueChange?.(code)
|
|
92
|
+
if (code !== undefined) onValueChange?.(code)
|
|
101
93
|
}
|
|
102
94
|
})
|
|
103
95
|
|
|
104
96
|
$effect(() => {
|
|
105
|
-
if (variant !== 'combobox')
|
|
106
|
-
return
|
|
97
|
+
if (variant !== 'combobox') return
|
|
107
98
|
const code: string | undefined = codeOf(compositeValue) || undefined
|
|
108
99
|
if (code !== lastExternalCode) {
|
|
109
100
|
lastExternalCode = code
|
|
110
101
|
value = code
|
|
111
|
-
if (code !== undefined)
|
|
112
|
-
onValueChange?.(code)
|
|
102
|
+
if (code !== undefined) onValueChange?.(code)
|
|
113
103
|
}
|
|
114
104
|
})
|
|
115
105
|
|
|
@@ -118,8 +108,7 @@
|
|
|
118
108
|
// the input reflects the current selection even though search is empty.
|
|
119
109
|
if (open) {
|
|
120
110
|
searchQuery = ''
|
|
121
|
-
}
|
|
122
|
-
else {
|
|
111
|
+
} else {
|
|
123
112
|
const code = codeOf(compositeValue)
|
|
124
113
|
searchQuery = nativeNameFor(code)
|
|
125
114
|
}
|
|
@@ -128,25 +117,24 @@
|
|
|
128
117
|
|
|
129
118
|
<div class="sp-language-select {className ?? ''}">
|
|
130
119
|
{#if label}
|
|
131
|
-
<span class=
|
|
120
|
+
<span class="sp-language-select-label">{label}</span>
|
|
132
121
|
{/if}
|
|
133
122
|
|
|
134
123
|
{#if variant === 'select'}
|
|
135
124
|
<Select.Root bind:value={selectValue} {disabled} {name}>
|
|
136
|
-
<Select.Trigger
|
|
137
|
-
placeholder={placeholder || 'Select a language'}
|
|
138
|
-
aria-label={label}
|
|
139
|
-
>
|
|
125
|
+
<Select.Trigger placeholder={placeholder || 'Select a language'} aria-label={label}>
|
|
140
126
|
{#if value && nativeNameFor(value)}
|
|
141
|
-
<span class=
|
|
127
|
+
<span class="sp-language-select-native sp-select-value" dir="auto"
|
|
128
|
+
>{nativeNameFor(value)}</span
|
|
129
|
+
>
|
|
142
130
|
{:else}
|
|
143
|
-
<span class=
|
|
131
|
+
<span class="sp-select-value placeholder">{placeholder || 'Select a language'}</span>
|
|
144
132
|
{/if}
|
|
145
133
|
</Select.Trigger>
|
|
146
134
|
<Select.Content {side} {sideOffset} {align}>
|
|
147
135
|
{#each items as item (item.code)}
|
|
148
136
|
<Select.Item value={item.code} label={item.nativeName}>
|
|
149
|
-
<span class=
|
|
137
|
+
<span class="sp-language-select-native" dir="auto">{item.nativeName}</span>
|
|
150
138
|
</Select.Item>
|
|
151
139
|
{/each}
|
|
152
140
|
</Select.Content>
|
|
@@ -165,14 +153,14 @@
|
|
|
165
153
|
<Combobox.Content {side} {sideOffset} {align}>
|
|
166
154
|
{#each items as item (item.code)}
|
|
167
155
|
<Combobox.Item value={toComposite(item)}>
|
|
168
|
-
<span class=
|
|
156
|
+
<span class="sp-language-select-native" dir="auto">{item.nativeName}</span>
|
|
169
157
|
</Combobox.Item>
|
|
170
158
|
{/each}
|
|
171
159
|
</Combobox.Content>
|
|
172
160
|
</Combobox.Root>
|
|
173
161
|
|
|
174
162
|
{#if name && value}
|
|
175
|
-
<input type=
|
|
163
|
+
<input type="hidden" {name} {value} />
|
|
176
164
|
{/if}
|
|
177
165
|
{/if}
|
|
178
166
|
</div>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"language-select.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/components/language-select/language-select.svelte.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"language-select.svelte.d.ts","sourceRoot":"","sources":["../../../src/lib/components/language-select/language-select.svelte.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAsKrD,QAAA,MAAM,cAAc,8DAAwC,CAAC;AAC7D,KAAK,cAAc,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AACxD,eAAe,cAAc,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<script lang=
|
|
1
|
+
<script lang="ts">
|
|
2
2
|
import LinkPreviewContent from '../components/link-preview-content.svelte'
|
|
3
3
|
import LinkPreviewRoot from '../components/link-preview-root.svelte'
|
|
4
4
|
import LinkPreviewTrigger from '../components/link-preview-trigger.svelte'
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
|
|
30
30
|
<div bind:this={rootEl}>
|
|
31
31
|
<LinkPreviewRoot {openDelay} {closeDelay}>
|
|
32
|
-
<LinkPreviewTrigger href=
|
|
32
|
+
<LinkPreviewTrigger href="https://example.com">Example Link</LinkPreviewTrigger>
|
|
33
33
|
<LinkPreviewContent {disablePortal} class={contentClass}>
|
|
34
34
|
<p>Preview of example.com</p>
|
|
35
35
|
</LinkPreviewContent>
|
|
@@ -5,7 +5,11 @@ import * as matchers from 'vitest-axe/matchers';
|
|
|
5
5
|
import LinkPreviewTest from './LinkPreviewTest.svelte';
|
|
6
6
|
expect.extend(matchers);
|
|
7
7
|
const axe = configureAxe({
|
|
8
|
-
rules: {
|
|
8
|
+
rules: {
|
|
9
|
+
region: { enabled: false },
|
|
10
|
+
'page-has-heading-one': { enabled: false },
|
|
11
|
+
'landmark-one-main': { enabled: false },
|
|
12
|
+
},
|
|
9
13
|
});
|
|
10
14
|
describe('link-preview a11y', () => {
|
|
11
15
|
let cleanup;
|
|
@@ -191,7 +191,10 @@ describe('link-preview', () => {
|
|
|
191
191
|
vi.useFakeTimers();
|
|
192
192
|
const localTarget = document.createElement('div');
|
|
193
193
|
document.body.appendChild(localTarget);
|
|
194
|
-
const localInstance = mount(LinkPreviewTest, {
|
|
194
|
+
const localInstance = mount(LinkPreviewTest, {
|
|
195
|
+
target: localTarget,
|
|
196
|
+
props: { openDelay: 0, closeDelay: 0 },
|
|
197
|
+
});
|
|
195
198
|
flushSync();
|
|
196
199
|
try {
|
|
197
200
|
const trigger = localTarget.querySelector('.sp-link-preview-trigger');
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<script lang=
|
|
1
|
+
<script lang="ts">
|
|
2
2
|
import type { LinkPreviewContentProps } from '../types.js'
|
|
3
3
|
import { EscapeLayerState } from '../../../internal/escape-layer/index.js'
|
|
4
4
|
import { FloatingLayerState } from '../../../internal/floating-layer/index.js'
|
|
@@ -20,7 +20,9 @@
|
|
|
20
20
|
let contentEl: HTMLElement | undefined = $state()
|
|
21
21
|
|
|
22
22
|
const presence = new PresenceLayerState({
|
|
23
|
-
get present() {
|
|
23
|
+
get present() {
|
|
24
|
+
return ctx.open
|
|
25
|
+
},
|
|
24
26
|
})
|
|
25
27
|
|
|
26
28
|
const escapeLayer = new EscapeLayerState({
|
|
@@ -33,9 +35,15 @@
|
|
|
33
35
|
const floating = new FloatingLayerState({
|
|
34
36
|
reference: null,
|
|
35
37
|
floating: null,
|
|
36
|
-
get side() {
|
|
37
|
-
|
|
38
|
-
|
|
38
|
+
get side() {
|
|
39
|
+
return side
|
|
40
|
+
},
|
|
41
|
+
get sideOffset() {
|
|
42
|
+
return sideOffset
|
|
43
|
+
},
|
|
44
|
+
get align() {
|
|
45
|
+
return align
|
|
46
|
+
},
|
|
39
47
|
avoidCollisions: true,
|
|
40
48
|
})
|
|
41
49
|
|
|
@@ -67,7 +75,7 @@
|
|
|
67
75
|
bind:this={contentEl}
|
|
68
76
|
class="sp-link-preview-content {className ?? ''}"
|
|
69
77
|
id={ctx.contentId}
|
|
70
|
-
role=
|
|
78
|
+
role="dialog"
|
|
71
79
|
tabindex={-1}
|
|
72
80
|
data-state={ctx.open ? 'open' : 'closed'}
|
|
73
81
|
data-side={side}
|
|
@@ -92,7 +100,8 @@
|
|
|
92
100
|
pointer-events: auto;
|
|
93
101
|
transition:
|
|
94
102
|
opacity var(--sp-sys-motion-duration-medium1, 250ms) var(--sp-sys-motion-easing-effects, ease),
|
|
95
|
-
transform var(--sp-sys-motion-duration-medium1, 250ms)
|
|
103
|
+
transform var(--sp-sys-motion-duration-medium1, 250ms)
|
|
104
|
+
var(--sp-sys-motion-easing-emphasized, ease);
|
|
96
105
|
}
|
|
97
106
|
|
|
98
107
|
.sp-link-preview-content[data-state='closed'] {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"link-preview-content.svelte.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/link-preview/components/link-preview-content.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"link-preview-content.svelte.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/link-preview/components/link-preview-content.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAA;AA2F1D,QAAA,MAAM,kBAAkB,6DAAwC,CAAC;AACjE,KAAK,kBAAkB,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAChE,eAAe,kBAAkB,CAAC"}
|
|
@@ -1,8 +1,13 @@
|
|
|
1
|
-
<script lang=
|
|
1
|
+
<script lang="ts">
|
|
2
2
|
import type { LinkPreviewProps } from '../types.js'
|
|
3
3
|
import { createLinkPreviewIds, setLinkPreviewContext } from '../link-preview.svelte.js'
|
|
4
4
|
|
|
5
|
-
const {
|
|
5
|
+
const {
|
|
6
|
+
openDelay = 700,
|
|
7
|
+
closeDelay = 300,
|
|
8
|
+
class: className,
|
|
9
|
+
children,
|
|
10
|
+
}: LinkPreviewProps = $props()
|
|
6
11
|
|
|
7
12
|
const ids = createLinkPreviewIds()
|
|
8
13
|
let open = $state(false)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"link-preview-root.svelte.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/link-preview/components/link-preview-root.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"link-preview-root.svelte.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/link-preview/components/link-preview-root.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAiEnD,QAAA,MAAM,eAAe,sDAAwC,CAAC;AAC9D,KAAK,eAAe,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;AAC1D,eAAe,eAAe,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<script lang=
|
|
1
|
+
<script lang="ts">
|
|
2
2
|
import type { LinkPreviewTriggerProps } from '../types.js'
|
|
3
3
|
import { GraceAreaState } from '../../../internal/grace-area/index.js'
|
|
4
4
|
import { isBrowser } from '../../../internal/helpers/index.js'
|
|
@@ -10,9 +10,15 @@
|
|
|
10
10
|
let el: HTMLElement | undefined = $state()
|
|
11
11
|
|
|
12
12
|
const graceArea = new GraceAreaState({
|
|
13
|
-
get triggerElement() {
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
get triggerElement() {
|
|
14
|
+
return el ?? null
|
|
15
|
+
},
|
|
16
|
+
get contentElement() {
|
|
17
|
+
return ctx.contentEl
|
|
18
|
+
},
|
|
19
|
+
get enabled() {
|
|
20
|
+
return ctx.open
|
|
21
|
+
},
|
|
16
22
|
})
|
|
17
23
|
|
|
18
24
|
let graceAreaListener: (() => void) | null = null
|
|
@@ -24,8 +30,7 @@
|
|
|
24
30
|
cleanupGraceListener()
|
|
25
31
|
const handler = (e: MouseEvent) => {
|
|
26
32
|
const point = { x: e.clientX, y: e.clientY }
|
|
27
|
-
if (graceArea.isPointInGraceArea(point))
|
|
28
|
-
return
|
|
33
|
+
if (graceArea.isPointInGraceArea(point)) return
|
|
29
34
|
cleanupGraceListener()
|
|
30
35
|
ctx.hide()
|
|
31
36
|
}
|
|
@@ -38,8 +43,7 @@
|
|
|
38
43
|
ctx.hide()
|
|
39
44
|
}
|
|
40
45
|
}, 500)
|
|
41
|
-
}
|
|
42
|
-
else {
|
|
46
|
+
} else {
|
|
43
47
|
ctx.hide()
|
|
44
48
|
}
|
|
45
49
|
}
|
|
@@ -53,13 +57,11 @@
|
|
|
53
57
|
}
|
|
54
58
|
|
|
55
59
|
$effect(() => {
|
|
56
|
-
if (el)
|
|
57
|
-
ctx.setTriggerEl(el)
|
|
60
|
+
if (el) ctx.setTriggerEl(el)
|
|
58
61
|
})
|
|
59
62
|
|
|
60
63
|
$effect(() => {
|
|
61
|
-
if (!ctx.open)
|
|
62
|
-
cleanupGraceListener()
|
|
64
|
+
if (!ctx.open) cleanupGraceListener()
|
|
63
65
|
})
|
|
64
66
|
</script>
|
|
65
67
|
|
|
@@ -67,7 +69,7 @@
|
|
|
67
69
|
bind:this={el}
|
|
68
70
|
class="sp-link-preview-trigger {className ?? ''}"
|
|
69
71
|
{href}
|
|
70
|
-
aria-haspopup=
|
|
72
|
+
aria-haspopup="dialog"
|
|
71
73
|
aria-expanded={ctx.open}
|
|
72
74
|
aria-controls={ctx.open ? ctx.contentId : undefined}
|
|
73
75
|
onmouseenter={() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"link-preview-trigger.svelte.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/link-preview/components/link-preview-trigger.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"link-preview-trigger.svelte.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/link-preview/components/link-preview-trigger.svelte.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAA;AAiF1D,QAAA,MAAM,kBAAkB,6DAAwC,CAAC;AACjE,KAAK,kBAAkB,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAChE,eAAe,kBAAkB,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { default as Content } from './components/link-preview-content.svelte';
|
|
2
2
|
export { default as Root } from './components/link-preview-root.svelte';
|
|
3
3
|
export { default as Trigger } from './components/link-preview-trigger.svelte';
|
|
4
|
-
export type { LinkPreviewContentProps, LinkPreviewProps, LinkPreviewTriggerProps
|
|
4
|
+
export type { LinkPreviewContentProps, LinkPreviewProps, LinkPreviewTriggerProps } from './types.js';
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/components/link-preview/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,0CAA0C,CAAA;AAC7E,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,uCAAuC,CAAA;AACvE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,0CAA0C,CAAA;AAC7E,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/components/link-preview/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,0CAA0C,CAAA;AAC7E,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,uCAAuC,CAAA;AACvE,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,0CAA0C,CAAA;AAC7E,YAAY,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<script lang=
|
|
1
|
+
<script lang="ts">
|
|
2
2
|
import type { ListItemProps } from '../types.js'
|
|
3
3
|
|
|
4
4
|
const {
|
|
@@ -25,13 +25,13 @@
|
|
|
25
25
|
data-state={active ? 'active' : undefined}
|
|
26
26
|
>
|
|
27
27
|
{#if leading}
|
|
28
|
-
<span class=
|
|
28
|
+
<span class="sp-list-item-leading">{@render leading()}</span>
|
|
29
29
|
{/if}
|
|
30
|
-
<span class=
|
|
30
|
+
<span class="sp-list-item-content">
|
|
31
31
|
{#if children}{@render children()}{/if}
|
|
32
32
|
</span>
|
|
33
33
|
{#if trailing}
|
|
34
|
-
<span class=
|
|
34
|
+
<span class="sp-list-item-trailing">{@render trailing()}</span>
|
|
35
35
|
{/if}
|
|
36
36
|
</li>
|
|
37
37
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
<script lang=
|
|
1
|
+
<script lang="ts">
|
|
2
2
|
import type { ListProps } from '../types.js'
|
|
3
3
|
|
|
4
4
|
const { density = 'standard', class: className, children }: ListProps = $props()
|
|
5
5
|
</script>
|
|
6
6
|
|
|
7
|
-
<ul class="sp-list {density} {className ?? ''}" role=
|
|
7
|
+
<ul class="sp-list {density} {className ?? ''}" role="list" data-density={density}>
|
|
8
8
|
{#if children}{@render children()}{/if}
|
|
9
9
|
</ul>
|
|
10
10
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<script lang=
|
|
1
|
+
<script lang="ts">
|
|
2
2
|
import DropdownMenuItem from '../../dropdown-menu/components/dropdown-menu-item.svelte'
|
|
3
3
|
import DropdownMenuSeparator from '../../dropdown-menu/components/dropdown-menu-separator.svelte'
|
|
4
4
|
import MenubarContent from '../components/menubar-content.svelte'
|
|
@@ -6,11 +6,11 @@
|
|
|
6
6
|
import MenubarRoot from '../components/menubar-root.svelte'
|
|
7
7
|
import MenubarTrigger from '../components/menubar-trigger.svelte'
|
|
8
8
|
|
|
9
|
-
const { loop = true, portalTo }: { loop?: boolean
|
|
9
|
+
const { loop = true, portalTo }: { loop?: boolean; portalTo?: HTMLElement | string } = $props()
|
|
10
10
|
</script>
|
|
11
11
|
|
|
12
12
|
<MenubarRoot {loop}>
|
|
13
|
-
<MenubarMenu value=
|
|
13
|
+
<MenubarMenu value="file">
|
|
14
14
|
<MenubarTrigger>File</MenubarTrigger>
|
|
15
15
|
<MenubarContent {portalTo}>
|
|
16
16
|
<DropdownMenuItem>New</DropdownMenuItem>
|
|
@@ -19,14 +19,14 @@
|
|
|
19
19
|
<DropdownMenuItem>Save</DropdownMenuItem>
|
|
20
20
|
</MenubarContent>
|
|
21
21
|
</MenubarMenu>
|
|
22
|
-
<MenubarMenu value=
|
|
22
|
+
<MenubarMenu value="edit">
|
|
23
23
|
<MenubarTrigger>Edit</MenubarTrigger>
|
|
24
24
|
<MenubarContent {portalTo}>
|
|
25
25
|
<DropdownMenuItem>Undo</DropdownMenuItem>
|
|
26
26
|
<DropdownMenuItem>Redo</DropdownMenuItem>
|
|
27
27
|
</MenubarContent>
|
|
28
28
|
</MenubarMenu>
|
|
29
|
-
<MenubarMenu value=
|
|
29
|
+
<MenubarMenu value="view">
|
|
30
30
|
<MenubarTrigger>View</MenubarTrigger>
|
|
31
31
|
<MenubarContent {portalTo}>
|
|
32
32
|
<DropdownMenuItem>Zoom In</DropdownMenuItem>
|