@dryui/ui 0.2.2 → 0.4.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/accordion/accordion-button-trigger.svelte +51 -0
- package/dist/accordion/accordion-button-trigger.svelte.d.ts +8 -0
- package/dist/accordion/accordion-content.svelte.d.ts +2 -2
- package/dist/accordion/accordion-item.svelte.d.ts +4 -4
- package/dist/accordion/accordion-root.svelte.d.ts +5 -5
- package/dist/accordion/index.d.ts +1 -1
- package/dist/accordion/index.js +1 -1
- package/dist/adjust/adjust.svelte +1 -1
- package/dist/adjust/adjust.svelte.d.ts +13 -12
- package/dist/alert/alert-button-close.svelte +29 -0
- package/dist/alert/alert-button-close.svelte.d.ts +8 -0
- package/dist/alert/alert-description.svelte +6 -1
- package/dist/alert/alert-description.svelte.d.ts +2 -2
- package/dist/alert/alert-icon.svelte.d.ts +2 -2
- package/dist/alert/alert-root.svelte +1 -2
- package/dist/alert/alert-root.svelte.d.ts +6 -6
- package/dist/alert/alert-title.svelte +6 -1
- package/dist/alert/alert-title.svelte.d.ts +2 -2
- package/dist/alert/context.svelte.d.ts +1 -0
- package/dist/alert/context.svelte.js +8 -0
- package/dist/alert/index.d.ts +1 -1
- package/dist/alert/index.js +1 -1
- package/dist/alert-dialog/alert-dialog-body.svelte.d.ts +2 -2
- package/dist/alert-dialog/alert-dialog-button-action.svelte +15 -0
- package/dist/alert-dialog/alert-dialog-button-action.svelte.d.ts +8 -0
- package/dist/alert-dialog/alert-dialog-button-cancel.svelte +18 -0
- package/dist/alert-dialog/alert-dialog-button-cancel.svelte.d.ts +8 -0
- package/dist/alert-dialog/alert-dialog-content.svelte.d.ts +2 -2
- package/dist/alert-dialog/alert-dialog-footer.svelte.d.ts +2 -2
- package/dist/alert-dialog/alert-dialog-header.svelte.d.ts +2 -2
- package/dist/alert-dialog/alert-dialog-overlay.svelte.d.ts +3 -2
- package/dist/alert-dialog/alert-dialog-root.svelte.d.ts +3 -3
- package/dist/alert-dialog/alert-dialog-trigger.svelte.d.ts +2 -2
- package/dist/alert-dialog/index.d.ts +2 -2
- package/dist/alert-dialog/index.js +2 -2
- package/dist/alpha-slider/alpha-slider-input.svelte.d.ts +12 -0
- package/dist/alpha-slider/index.d.ts +1 -1
- package/dist/alpha-slider/index.js +1 -1
- package/dist/aspect-ratio/aspect-ratio.svelte.d.ts +3 -3
- package/dist/aurora/aurora.svelte +58 -11
- package/dist/aurora/aurora.svelte.d.ts +10 -9
- package/dist/aurora/index.d.ts +2 -0
- package/dist/avatar/avatar.svelte.d.ts +9 -9
- package/dist/backdrop/backdrop.svelte.d.ts +4 -6
- package/dist/badge/badge.svelte +1 -0
- package/dist/badge/badge.svelte.d.ts +8 -19
- package/dist/beam/beam.svelte.d.ts +10 -9
- package/dist/breadcrumb/breadcrumb-item.svelte.d.ts +2 -2
- package/dist/breadcrumb/breadcrumb-link.svelte.d.ts +4 -4
- package/dist/breadcrumb/breadcrumb-list.svelte.d.ts +2 -2
- package/dist/breadcrumb/breadcrumb-root.svelte.d.ts +2 -2
- package/dist/breadcrumb/breadcrumb-separator.svelte.d.ts +3 -3
- package/dist/button/button.svelte +283 -132
- package/dist/button/button.svelte.d.ts +12 -12
- package/dist/button/index.d.ts +7 -4
- package/dist/button-group/button-group.svelte.d.ts +4 -4
- package/dist/calendar/calendar-button-grid.svelte +151 -0
- package/dist/calendar/calendar-button-grid.svelte.d.ts +6 -0
- package/dist/calendar/calendar-button-next.svelte +13 -0
- package/dist/calendar/calendar-button-next.svelte.d.ts +8 -0
- package/dist/calendar/calendar-button-prev.svelte +13 -0
- package/dist/calendar/calendar-button-prev.svelte.d.ts +8 -0
- package/dist/calendar/calendar-header.svelte.d.ts +6 -2
- package/dist/calendar/calendar-heading.svelte.d.ts +4 -2
- package/dist/calendar/calendar-nav-button.svelte +26 -0
- package/dist/calendar/calendar-nav-button.svelte.d.ts +9 -0
- package/dist/calendar/calendar-root.svelte.d.ts +11 -2
- package/dist/calendar/index.d.ts +3 -3
- package/dist/calendar/index.js +3 -3
- package/dist/card/card-content.svelte.d.ts +3 -3
- package/dist/card/card-footer.svelte.d.ts +2 -2
- package/dist/card/card-header.svelte.d.ts +2 -2
- package/dist/card/card-root.svelte +43 -28
- package/dist/card/card-root.svelte.d.ts +8 -7
- package/dist/carousel/carousel-button-dots.svelte +51 -0
- package/dist/carousel/carousel-button-dots.svelte.d.ts +6 -0
- package/dist/carousel/carousel-button-next.svelte +13 -0
- package/dist/carousel/carousel-button-next.svelte.d.ts +8 -0
- package/dist/carousel/carousel-button-prev.svelte +13 -0
- package/dist/carousel/carousel-button-prev.svelte.d.ts +8 -0
- package/dist/carousel/{carousel-thumbnails.svelte → carousel-button-thumbnails.svelte} +5 -31
- package/dist/carousel/carousel-button-thumbnails.svelte.d.ts +13 -0
- package/dist/carousel/carousel-nav-button.svelte +31 -0
- package/dist/carousel/carousel-nav-button.svelte.d.ts +9 -0
- package/dist/carousel/carousel-root.svelte.d.ts +5 -5
- package/dist/carousel/carousel-slide.svelte.d.ts +2 -2
- package/dist/carousel/carousel-viewport.svelte.d.ts +2 -2
- package/dist/carousel/index.d.ts +4 -4
- package/dist/carousel/index.js +4 -4
- package/dist/chart/chart-area.svelte.d.ts +5 -5
- package/dist/chart/chart-bars.svelte.d.ts +7 -3
- package/dist/chart/chart-donut.svelte.d.ts +11 -5
- package/dist/chart/chart-horizontal-bar.svelte.d.ts +2 -2
- package/dist/chart/chart-line.svelte.d.ts +5 -5
- package/dist/chart/chart-root.svelte.d.ts +12 -11
- package/dist/chart/chart-stacked-bar.svelte.d.ts +4 -4
- package/dist/chart/chart-x-axis.svelte.d.ts +3 -2
- package/dist/chart/chart-y-axis.svelte.d.ts +2 -2
- package/dist/chat-thread/chat-thread.svelte.d.ts +10 -15
- package/dist/checkbox/checkbox-input.svelte.d.ts +12 -0
- package/dist/checkbox/index.d.ts +1 -1
- package/dist/checkbox/index.js +1 -1
- package/dist/chip/chip-button.svelte +173 -0
- package/dist/chip/chip-button.svelte.d.ts +22 -0
- package/dist/chip/index.d.ts +1 -1
- package/dist/chip/index.js +1 -1
- package/dist/chip-group/chip-group-button-item.svelte +36 -0
- package/dist/chip-group/chip-group-button-item.svelte.d.ts +10 -0
- package/dist/chip-group/chip-group-root.svelte.d.ts +7 -7
- package/dist/chip-group/index.d.ts +1 -1
- package/dist/chip-group/index.js +1 -1
- package/dist/chromatic-aberration/chromatic-aberration.svelte.d.ts +5 -5
- package/dist/chromatic-shift/chromatic-shift.svelte.d.ts +6 -7
- package/dist/clipboard/clipboard.svelte.d.ts +7 -11
- package/dist/code-block/{code-block.svelte → code-block-button.svelte} +46 -59
- package/dist/code-block/code-block-button.svelte.d.ts +13 -0
- package/dist/code-block/index.d.ts +1 -1
- package/dist/code-block/index.js +1 -1
- package/dist/collapsible/collapsible-button-trigger.svelte +50 -0
- package/dist/collapsible/collapsible-button-trigger.svelte.d.ts +8 -0
- package/dist/collapsible/collapsible-content.svelte.d.ts +2 -2
- package/dist/collapsible/collapsible-root.svelte.d.ts +4 -4
- package/dist/collapsible/index.d.ts +1 -1
- package/dist/collapsible/index.js +1 -1
- package/dist/color-picker/color-picker-area.svelte.d.ts +3 -3
- package/dist/color-picker/{color-picker-eyedropper.svelte → color-picker-button-eyedropper.svelte} +8 -49
- package/dist/color-picker/color-picker-button-eyedropper.svelte.d.ts +8 -0
- package/dist/color-picker/color-picker-channel-input.svelte.d.ts +2 -2
- package/dist/color-picker/color-picker-input-alpha-slider.svelte.d.ts +5 -0
- package/dist/color-picker/color-picker-input-hue-slider.svelte.d.ts +5 -0
- package/dist/color-picker/color-picker-input.svelte.d.ts +2 -2
- package/dist/color-picker/color-picker-root.svelte.d.ts +7 -7
- package/dist/color-picker/color-picker-swatch.svelte.d.ts +2 -2
- package/dist/color-picker/index.d.ts +3 -3
- package/dist/color-picker/index.js +3 -3
- package/dist/combobox/combobox-content.svelte.d.ts +7 -18
- package/dist/combobox/combobox-empty.svelte.d.ts +2 -2
- package/dist/combobox/combobox-group.svelte.d.ts +3 -3
- package/dist/combobox/combobox-input-root.svelte.d.ts +11 -0
- package/dist/combobox/combobox-input.svelte.d.ts +3 -3
- package/dist/combobox/combobox-item.svelte +13 -12
- package/dist/combobox/combobox-item.svelte.d.ts +6 -6
- package/dist/combobox/index.d.ts +1 -1
- package/dist/combobox/index.js +1 -1
- package/dist/command-palette/command-palette-dialog-root.svelte.d.ts +9 -0
- package/dist/command-palette/command-palette-empty.svelte.d.ts +2 -2
- package/dist/command-palette/command-palette-group.svelte.d.ts +3 -3
- package/dist/command-palette/command-palette-input.svelte.d.ts +2 -2
- package/dist/command-palette/command-palette-item.svelte +8 -10
- package/dist/command-palette/command-palette-item.svelte.d.ts +5 -5
- package/dist/command-palette/command-palette-list.svelte.d.ts +2 -2
- package/dist/command-palette/command-palette-separator.svelte.d.ts +3 -2
- package/dist/command-palette/index.d.ts +1 -1
- package/dist/command-palette/index.js +1 -1
- package/dist/container/container.svelte.d.ts +4 -4
- package/dist/context-menu/context-menu-content.svelte.d.ts +2 -2
- package/dist/context-menu/context-menu-group.svelte.d.ts +2 -2
- package/dist/context-menu/context-menu-item.svelte +4 -1
- package/dist/context-menu/context-menu-item.svelte.d.ts +3 -3
- package/dist/context-menu/context-menu-label.svelte.d.ts +2 -2
- package/dist/context-menu/context-menu-root.svelte.d.ts +3 -3
- package/dist/context-menu/context-menu-separator.svelte.d.ts +3 -2
- package/dist/context-menu/context-menu-trigger.svelte.d.ts +2 -2
- package/dist/country-select/{country-select.svelte → country-select-button-input.svelte} +18 -74
- package/dist/country-select/country-select-button-input.svelte.d.ts +15 -0
- package/dist/country-select/index.d.ts +1 -1
- package/dist/country-select/index.js +1 -1
- package/dist/data-grid/data-grid-body.svelte.d.ts +20 -33
- package/dist/data-grid/data-grid-button-expand-trigger.svelte +45 -0
- package/dist/data-grid/data-grid-button-expand-trigger.svelte.d.ts +9 -0
- package/dist/data-grid/{data-grid-column.svelte → data-grid-button-input-column.svelte} +13 -33
- package/dist/data-grid/data-grid-button-input-column.svelte.d.ts +14 -0
- package/dist/data-grid/{data-grid-pagination.svelte → data-grid-button-pagination.svelte} +31 -59
- package/dist/data-grid/data-grid-button-pagination.svelte.d.ts +20 -0
- package/dist/data-grid/data-grid-cell.svelte.d.ts +2 -2
- package/dist/data-grid/data-grid-expandable-row.svelte.d.ts +4 -4
- package/dist/data-grid/data-grid-header.svelte.d.ts +2 -2
- package/dist/data-grid/data-grid-input-select-all.svelte.d.ts +6 -0
- package/dist/data-grid/data-grid-input-select-cell.svelte.d.ts +8 -0
- package/dist/data-grid/data-grid-root.svelte.d.ts +26 -32
- package/dist/data-grid/data-grid-row.svelte.d.ts +3 -3
- package/dist/data-grid/data-grid-table.svelte.d.ts +2 -2
- package/dist/data-grid/index.d.ts +5 -5
- package/dist/data-grid/index.js +5 -5
- package/dist/date-field/date-field-input-root.svelte.d.ts +15 -0
- package/dist/date-field/date-field-segment.svelte.d.ts +3 -3
- package/dist/date-field/date-field-separator.svelte.d.ts +2 -2
- package/dist/date-field/index.d.ts +1 -1
- package/dist/date-field/index.js +1 -1
- package/dist/date-picker/{datepicker-calendar.svelte → datepicker-button-calendar.svelte} +19 -97
- package/dist/date-picker/datepicker-button-calendar.svelte.d.ts +6 -0
- package/dist/date-picker/datepicker-button-trigger.svelte +72 -0
- package/dist/date-picker/datepicker-button-trigger.svelte.d.ts +10 -0
- package/dist/date-picker/datepicker-content.svelte.d.ts +4 -16
- package/dist/date-picker/datepicker-input-root.svelte.d.ts +14 -0
- package/dist/date-picker/index.d.ts +3 -3
- package/dist/date-picker/index.js +3 -3
- package/dist/date-range-picker/{date-range-picker-calendar.svelte → date-range-picker-button-calendar.svelte} +16 -131
- package/dist/date-range-picker/date-range-picker-button-calendar.svelte.d.ts +6 -0
- package/dist/date-range-picker/date-range-picker-button-preset.svelte +25 -0
- package/dist/date-range-picker/date-range-picker-button-preset.svelte.d.ts +10 -0
- package/dist/date-range-picker/date-range-picker-button-trigger.svelte +77 -0
- package/dist/date-range-picker/date-range-picker-button-trigger.svelte.d.ts +9 -0
- package/dist/date-range-picker/date-range-picker-content.svelte.d.ts +6 -4
- package/dist/date-range-picker/date-range-picker-root.svelte.d.ts +12 -6
- package/dist/date-range-picker/index.d.ts +3 -3
- package/dist/date-range-picker/index.js +3 -3
- package/dist/date-time-input/date-time-input.svelte.d.ts +8 -8
- package/dist/description-list/description-list-description.svelte.d.ts +2 -2
- package/dist/description-list/description-list-item.svelte.d.ts +2 -2
- package/dist/description-list/description-list-root.svelte.d.ts +2 -2
- package/dist/description-list/description-list-term.svelte.d.ts +2 -2
- package/dist/diagram/diagram.svelte +769 -0
- package/dist/diagram/diagram.svelte.d.ts +10 -0
- package/dist/diagram/edge-routing.d.ts +9 -0
- package/dist/diagram/edge-routing.js +283 -0
- package/dist/diagram/index.d.ts +9 -0
- package/dist/diagram/index.js +1 -0
- package/dist/diagram/layout.d.ts +2 -0
- package/dist/diagram/layout.js +974 -0
- package/dist/diagram/types.d.ts +196 -0
- package/dist/dialog/dialog-body.svelte.d.ts +2 -2
- package/dist/dialog/dialog-close.svelte.d.ts +2 -2
- package/dist/dialog/dialog-content.svelte.d.ts +2 -2
- package/dist/dialog/dialog-footer.svelte.d.ts +2 -2
- package/dist/dialog/dialog-header.svelte.d.ts +2 -2
- package/dist/dialog/dialog-overlay.svelte.d.ts +3 -2
- package/dist/dialog/dialog-root.svelte.d.ts +3 -3
- package/dist/dialog/dialog-trigger.svelte.d.ts +2 -2
- package/dist/displacement/displacement.svelte +39 -3
- package/dist/displacement/displacement.svelte.d.ts +5 -6
- package/dist/drag-and-drop/context.svelte.d.ts +1 -0
- package/dist/drag-and-drop/drag-and-drop-group.svelte +37 -0
- package/dist/drag-and-drop/drag-and-drop-group.svelte.d.ts +8 -0
- package/dist/drag-and-drop/drag-and-drop-handle.svelte +2 -0
- package/dist/drag-and-drop/drag-and-drop-handle.svelte.d.ts +4 -4
- package/dist/drag-and-drop/drag-and-drop-item.svelte +25 -6
- package/dist/drag-and-drop/drag-and-drop-item.svelte.d.ts +6 -10
- package/dist/drag-and-drop/drag-and-drop-root.svelte +624 -34
- package/dist/drag-and-drop/drag-and-drop-root.svelte.d.ts +21 -29
- package/dist/drag-and-drop/group-context.svelte.d.ts +13 -0
- package/dist/drag-and-drop/group-context.svelte.js +8 -0
- package/dist/drag-and-drop/index.d.ts +2 -0
- package/dist/drag-and-drop/index.js +3 -1
- package/dist/drawer/drawer-body.svelte.d.ts +3 -3
- package/dist/drawer/drawer-close.svelte.d.ts +2 -2
- package/dist/drawer/{drawer-content.svelte → drawer-dialog-content.svelte} +3 -2
- package/dist/drawer/drawer-dialog-content.svelte.d.ts +8 -0
- package/dist/drawer/drawer-footer.svelte +1 -1
- package/dist/drawer/drawer-footer.svelte.d.ts +2 -2
- package/dist/drawer/drawer-header.svelte.d.ts +2 -2
- package/dist/drawer/drawer-overlay.svelte.d.ts +3 -2
- package/dist/drawer/drawer-root.svelte.d.ts +4 -4
- package/dist/drawer/drawer-trigger.svelte.d.ts +2 -2
- package/dist/drawer/index.d.ts +1 -1
- package/dist/drawer/index.js +1 -1
- package/dist/drop-zone/drop-zone.svelte.d.ts +4 -4
- package/dist/dropdown-menu/dropdown-menu-content.svelte.d.ts +5 -16
- package/dist/dropdown-menu/dropdown-menu-group.svelte.d.ts +2 -2
- package/dist/dropdown-menu/dropdown-menu-item.svelte +4 -1
- package/dist/dropdown-menu/dropdown-menu-item.svelte.d.ts +3 -3
- package/dist/dropdown-menu/dropdown-menu-label.svelte.d.ts +2 -2
- package/dist/dropdown-menu/dropdown-menu-root.svelte.d.ts +3 -3
- package/dist/dropdown-menu/dropdown-menu-separator.svelte.d.ts +3 -2
- package/dist/dropdown-menu/dropdown-menu-trigger.svelte.d.ts +2 -2
- package/dist/field/field-description.svelte.d.ts +2 -2
- package/dist/field/field-error.svelte.d.ts +2 -2
- package/dist/field/field-root.svelte.d.ts +5 -5
- package/dist/fieldset/fieldset-content.svelte.d.ts +2 -2
- package/dist/fieldset/fieldset-description.svelte.d.ts +2 -2
- package/dist/fieldset/fieldset-legend.svelte.d.ts +2 -2
- package/dist/fieldset/fieldset-root.svelte.d.ts +2 -2
- package/dist/file-select/file-select-button-clear.svelte +37 -0
- package/dist/file-select/file-select-button-clear.svelte.d.ts +8 -0
- package/dist/file-select/file-select-button-trigger.svelte +26 -0
- package/dist/file-select/file-select-button-trigger.svelte.d.ts +9 -0
- package/dist/file-select/file-select-root.svelte.d.ts +7 -8
- package/dist/file-select/file-select-value.svelte.d.ts +2 -2
- package/dist/file-select/index.d.ts +2 -2
- package/dist/file-select/index.js +2 -2
- package/dist/file-upload/file-upload-button-item-delete.svelte +36 -0
- package/dist/file-upload/file-upload-button-item-delete.svelte.d.ts +9 -0
- package/dist/file-upload/file-upload-button-trigger.svelte +31 -0
- package/dist/file-upload/file-upload-button-trigger.svelte.d.ts +9 -0
- package/dist/file-upload/file-upload-dropzone.svelte.d.ts +3 -3
- package/dist/file-upload/file-upload-input-root.svelte.d.ts +14 -0
- package/dist/file-upload/file-upload-item.svelte.d.ts +5 -5
- package/dist/file-upload/file-upload-list.svelte.d.ts +6 -10
- package/dist/file-upload/index.d.ts +3 -3
- package/dist/file-upload/index.js +3 -3
- package/dist/flip-card/flip-card-back.svelte.d.ts +2 -2
- package/dist/flip-card/flip-card-front.svelte.d.ts +2 -2
- package/dist/flip-card/flip-card-root.svelte.d.ts +5 -5
- package/dist/float-button/float-button-action.svelte +6 -72
- package/dist/float-button/float-button-action.svelte.d.ts +2 -2
- package/dist/float-button/float-button-root.svelte.d.ts +4 -4
- package/dist/float-button/float-button-trigger.svelte +8 -64
- package/dist/float-button/float-button-trigger.svelte.d.ts +3 -3
- package/dist/focus-trap/focus-trap.svelte.d.ts +5 -5
- package/dist/format-bytes/format-bytes.svelte.d.ts +5 -5
- package/dist/format-date/format-date.svelte.d.ts +16 -16
- package/dist/format-number/format-number.svelte.d.ts +12 -12
- package/dist/gauge/gauge.svelte.d.ts +15 -19
- package/dist/glass/glass.svelte.d.ts +6 -6
- package/dist/glow/glow.svelte.d.ts +7 -7
- package/dist/god-rays/god-rays.svelte.d.ts +11 -14
- package/dist/gradient-mesh/gradient-mesh.svelte +42 -5
- package/dist/gradient-mesh/gradient-mesh.svelte.d.ts +5 -6
- package/dist/halftone/halftone.svelte +16 -36
- package/dist/halftone/halftone.svelte.d.ts +6 -6
- package/dist/heading/heading.svelte.d.ts +4 -4
- package/dist/hover-card/hover-card-content.svelte.d.ts +5 -18
- package/dist/hover-card/hover-card-root.svelte.d.ts +4 -6
- package/dist/hover-card/hover-card-trigger.svelte.d.ts +3 -5
- package/dist/icon/icon.svelte.d.ts +6 -6
- package/dist/image/image.svelte.d.ts +3 -3
- package/dist/image-comparison/image-comparison.svelte.d.ts +6 -6
- package/dist/index.d.ts +4 -5
- package/dist/index.js +1 -2
- package/dist/infinite-scroll/infinite-scroll.svelte.d.ts +9 -9
- package/dist/input/input.svelte.d.ts +5 -5
- package/dist/input-group/index.d.ts +1 -1
- package/dist/input-group/index.js +1 -1
- package/dist/input-group/input-group-action-button.svelte +29 -0
- package/dist/input-group/input-group-action-button.svelte.d.ts +8 -0
- package/dist/input-group/input-group-input.svelte.d.ts +2 -2
- package/dist/input-group/input-group-prefix.svelte.d.ts +2 -2
- package/dist/input-group/input-group-root.svelte.d.ts +6 -6
- package/dist/input-group/input-group-select.svelte.d.ts +3 -3
- package/dist/input-group/input-group-separator.svelte.d.ts +3 -2
- package/dist/input-group/input-group-suffix.svelte.d.ts +2 -2
- package/dist/internal/calendar-grid-utils.js +2 -1
- package/dist/internal/close-button-base.svelte +12 -33
- package/dist/internal/close-button-base.svelte.d.ts +3 -0
- package/dist/internal/motion.d.ts +2 -14
- package/dist/internal/nav-arrow-button.svelte +26 -0
- package/dist/internal/nav-arrow-button.svelte.d.ts +13 -0
- package/dist/kbd/kbd.svelte +8 -13
- package/dist/kbd/kbd.svelte.d.ts +3 -3
- package/dist/label/label.svelte.d.ts +3 -3
- package/dist/link/link.svelte.d.ts +5 -5
- package/dist/link-preview/link-preview-content.svelte.d.ts +5 -16
- package/dist/link-preview/link-preview-root.svelte.d.ts +5 -5
- package/dist/link-preview/link-preview-trigger.svelte +4 -2
- package/dist/link-preview/link-preview-trigger.svelte.d.ts +4 -3
- package/dist/list/list-item-icon.svelte.d.ts +2 -2
- package/dist/list/list-item-text.svelte.d.ts +4 -4
- package/dist/list/list-item.svelte.d.ts +4 -4
- package/dist/list/list-root.svelte +4 -1
- package/dist/list/list-root.svelte.d.ts +4 -4
- package/dist/list/list-subheader.svelte.d.ts +2 -2
- package/dist/listbox/listbox-item.svelte +4 -1
- package/dist/listbox/listbox-item.svelte.d.ts +1 -1
- package/dist/listbox/listbox-root.svelte.d.ts +1 -1
- package/dist/logo-mark/logo-mark.svelte +2 -2
- package/dist/logo-mark/logo-mark.svelte.d.ts +7 -7
- package/dist/map/map-controls.svelte.d.ts +5 -5
- package/dist/map/map-layer.svelte.d.ts +6 -6
- package/dist/map/map-marker.svelte.d.ts +6 -5
- package/dist/map/map-popup.svelte.d.ts +6 -6
- package/dist/map/map-root.svelte.d.ts +8 -8
- package/dist/markdown-renderer/markdown-renderer.svelte.d.ts +3 -3
- package/dist/marquee/marquee.svelte.d.ts +7 -7
- package/dist/mask-reveal/mask-reveal.svelte.d.ts +7 -8
- package/dist/mega-menu/index.d.ts +1 -1
- package/dist/mega-menu/index.js +1 -1
- package/dist/mega-menu/{mega-menu-trigger.svelte → mega-menu-button-trigger.svelte} +7 -28
- package/dist/mega-menu/mega-menu-button-trigger.svelte.d.ts +8 -0
- package/dist/mega-menu/mega-menu-column.svelte +6 -1
- package/dist/mega-menu/mega-menu-column.svelte.d.ts +3 -3
- package/dist/mega-menu/mega-menu-item.svelte.d.ts +2 -2
- package/dist/mega-menu/mega-menu-link.svelte +38 -6
- package/dist/mega-menu/mega-menu-link.svelte.d.ts +10 -5
- package/dist/mega-menu/mega-menu-panel.svelte +50 -10
- package/dist/mega-menu/mega-menu-panel.svelte.d.ts +3 -3
- package/dist/mega-menu/mega-menu-root.svelte.d.ts +2 -2
- package/dist/menubar/index.d.ts +1 -1
- package/dist/menubar/index.js +1 -1
- package/dist/menubar/{menubar-trigger.svelte → menubar-button-trigger.svelte} +6 -42
- package/dist/menubar/menubar-button-trigger.svelte.d.ts +8 -0
- package/dist/menubar/menubar-content.svelte.d.ts +4 -4
- package/dist/menubar/menubar-item.svelte +4 -1
- package/dist/menubar/menubar-item.svelte.d.ts +4 -4
- package/dist/menubar/menubar-label.svelte.d.ts +2 -2
- package/dist/menubar/menubar-menu.svelte.d.ts +2 -2
- package/dist/menubar/menubar-root.svelte.d.ts +2 -2
- package/dist/menubar/menubar-separator.svelte.d.ts +3 -2
- package/dist/multi-select-combobox/index.d.ts +2 -2
- package/dist/multi-select-combobox/index.js +2 -2
- package/dist/multi-select-combobox/multi-select-combobox-content.svelte.d.ts +11 -6
- package/dist/multi-select-combobox/multi-select-combobox-empty.svelte.d.ts +6 -6
- package/dist/multi-select-combobox/multi-select-combobox-group.svelte.d.ts +7 -6
- package/dist/multi-select-combobox/multi-select-combobox-input.svelte.d.ts +5 -6
- package/dist/multi-select-combobox/multi-select-combobox-item.svelte +6 -1
- package/dist/multi-select-combobox/multi-select-combobox-item.svelte.d.ts +10 -6
- package/dist/multi-select-combobox/multi-select-combobox-root-input.svelte.d.ts +16 -0
- package/dist/multi-select-combobox/multi-select-combobox-selection-item.svelte.d.ts +7 -6
- package/dist/multi-select-combobox/multi-select-combobox-selection-list.svelte.d.ts +6 -6
- package/dist/multi-select-combobox/multi-select-combobox-selection-remove-button.svelte +34 -0
- package/dist/multi-select-combobox/multi-select-combobox-selection-remove-button.svelte.d.ts +8 -0
- package/dist/navigation-menu/index.d.ts +1 -1
- package/dist/navigation-menu/index.js +1 -1
- package/dist/navigation-menu/navigation-menu-content.svelte.d.ts +2 -2
- package/dist/navigation-menu/navigation-menu-item.svelte.d.ts +2 -2
- package/dist/navigation-menu/navigation-menu-link.svelte +2 -2
- package/dist/navigation-menu/navigation-menu-link.svelte.d.ts +3 -3
- package/dist/navigation-menu/navigation-menu-list.svelte.d.ts +2 -2
- package/dist/navigation-menu/navigation-menu-root.svelte.d.ts +2 -2
- package/dist/navigation-menu/{navigation-menu-trigger.svelte → navigation-menu-trigger-button.svelte} +6 -38
- package/dist/navigation-menu/navigation-menu-trigger-button.svelte.d.ts +8 -0
- package/dist/noise/noise.svelte +2 -2
- package/dist/noise/noise.svelte.d.ts +6 -5
- package/dist/notification-center/index.d.ts +1 -1
- package/dist/notification-center/index.js +1 -1
- package/dist/notification-center/notification-center-group.svelte.d.ts +3 -3
- package/dist/notification-center/notification-center-item.svelte.d.ts +7 -7
- package/dist/notification-center/notification-center-panel.svelte.d.ts +4 -16
- package/dist/notification-center/notification-center-root.svelte.d.ts +5 -5
- package/dist/notification-center/notification-center-trigger-button.svelte +35 -0
- package/dist/notification-center/notification-center-trigger-button.svelte.d.ts +10 -0
- package/dist/number-input/index.d.ts +1 -1
- package/dist/number-input/index.js +1 -1
- package/dist/number-input/{number-input.svelte → number-input-button.svelte} +38 -106
- package/dist/number-input/number-input-button.svelte.d.ts +12 -0
- package/dist/option-swatch-group/index.d.ts +1 -1
- package/dist/option-swatch-group/index.js +1 -1
- package/dist/option-swatch-group/{option-swatch-group-item.svelte → option-swatch-group-item-button.svelte} +6 -59
- package/dist/option-swatch-group/option-swatch-group-item-button.svelte.d.ts +11 -0
- package/dist/option-swatch-group/option-swatch-group-label.svelte.d.ts +2 -2
- package/dist/option-swatch-group/option-swatch-group-meta.svelte.d.ts +2 -2
- package/dist/option-swatch-group/option-swatch-group-root.svelte.d.ts +5 -5
- package/dist/option-swatch-group/option-swatch-group-swatch.svelte.d.ts +4 -4
- package/dist/pagination/index.d.ts +3 -3
- package/dist/pagination/index.js +3 -3
- package/dist/pagination/pagination-content.svelte.d.ts +2 -2
- package/dist/pagination/pagination-ellipsis.svelte.d.ts +3 -2
- package/dist/pagination/pagination-item.svelte.d.ts +2 -2
- package/dist/pagination/pagination-link-button.svelte +28 -0
- package/dist/pagination/pagination-link-button.svelte.d.ts +9 -0
- package/dist/pagination/pagination-nav-button.svelte +28 -0
- package/dist/pagination/pagination-nav-button.svelte.d.ts +9 -0
- package/dist/pagination/pagination-next-button.svelte +13 -0
- package/dist/pagination/pagination-next-button.svelte.d.ts +8 -0
- package/dist/pagination/pagination-previous-button.svelte +13 -0
- package/dist/pagination/pagination-previous-button.svelte.d.ts +8 -0
- package/dist/pagination/pagination-root.svelte.d.ts +4 -4
- package/dist/phone-input/index.d.ts +1 -1
- package/dist/phone-input/index.js +1 -1
- package/dist/phone-input/{phone-input.svelte → phone-input-select.svelte} +7 -1
- package/dist/phone-input/phone-input-select.svelte.d.ts +21 -0
- package/dist/pin-input/context.svelte.d.ts +2 -2
- package/dist/pin-input/index.d.ts +4 -4
- package/dist/pin-input/index.js +2 -2
- package/dist/pin-input/pin-input-cell.svelte +2 -2
- package/dist/pin-input/pin-input-cell.svelte.d.ts +10 -14
- package/dist/pin-input/pin-input-group.svelte.d.ts +2 -2
- package/dist/pin-input/pin-input-root.svelte +4 -4
- package/dist/pin-input/pin-input-root.svelte.d.ts +18 -22
- package/dist/pin-input/pin-input-separator.svelte.d.ts +2 -2
- package/dist/popover/popover-content.svelte.d.ts +5 -16
- package/dist/popover/popover-root.svelte.d.ts +3 -3
- package/dist/popover/popover-trigger.svelte.d.ts +2 -2
- package/dist/portal/portal.svelte.d.ts +4 -4
- package/dist/progress/progress.svelte.d.ts +17 -9
- package/dist/progress-ring/progress-ring.svelte.d.ts +7 -7
- package/dist/prompt-input/index.d.ts +1 -1
- package/dist/prompt-input/index.js +1 -1
- package/dist/prompt-input/{prompt-input.svelte → prompt-input-button-textarea.svelte} +4 -40
- package/dist/prompt-input/prompt-input-button-textarea.svelte.d.ts +13 -0
- package/dist/qr-code/qr-code.svelte.d.ts +7 -6
- package/dist/radio-group/index.d.ts +1 -1
- package/dist/radio-group/index.js +1 -1
- package/dist/radio-group/radio-group-item-input.svelte.d.ts +10 -0
- package/dist/radio-group/radio-group.svelte.d.ts +7 -7
- package/dist/range-calendar/index.d.ts +1 -1
- package/dist/range-calendar/index.js +1 -1
- package/dist/range-calendar/{range-calendar-grid.svelte → range-calendar-grid-button.svelte} +18 -114
- package/dist/range-calendar/range-calendar-grid-button.svelte.d.ts +6 -0
- package/dist/range-calendar/range-calendar-root.svelte.d.ts +12 -6
- package/dist/rating/index.d.ts +1 -1
- package/dist/rating/index.js +1 -1
- package/dist/rating/{rating.svelte → rating-button-input.svelte} +19 -64
- package/dist/rating/rating-button-input.svelte.d.ts +13 -0
- package/dist/relative-time/relative-time.svelte.d.ts +4 -4
- package/dist/reveal/reveal.svelte.d.ts +11 -9
- package/dist/rich-text-editor/index.d.ts +1 -1
- package/dist/rich-text-editor/index.js +1 -1
- package/dist/rich-text-editor/rich-text-editor-content.svelte.d.ts +3 -2
- package/dist/rich-text-editor/rich-text-editor-root.svelte.d.ts +5 -5
- package/dist/rich-text-editor/{rich-text-editor-toolbar.svelte → rich-text-editor-toolbar-button-input.svelte} +81 -128
- package/dist/rich-text-editor/rich-text-editor-toolbar-button-input.svelte.d.ts +6 -0
- package/dist/scroll-area/scroll-area.svelte.d.ts +3 -3
- package/dist/scroll-to-top/index.d.ts +1 -1
- package/dist/scroll-to-top/index.js +1 -1
- package/dist/scroll-to-top/scroll-to-top-button.svelte +87 -0
- package/dist/scroll-to-top/scroll-to-top-button.svelte.d.ts +10 -0
- package/dist/segmented-control/index.d.ts +1 -1
- package/dist/segmented-control/index.js +1 -1
- package/dist/segmented-control/segmented-control-item-button.svelte +37 -0
- package/dist/segmented-control/segmented-control-item-button.svelte.d.ts +10 -0
- package/dist/segmented-control/segmented-control-root.svelte.d.ts +5 -5
- package/dist/select/index.d.ts +2 -2
- package/dist/select/index.js +2 -2
- package/dist/select/select-content.svelte.d.ts +5 -16
- package/dist/select/select-item.svelte +8 -6
- package/dist/select/select-item.svelte.d.ts +4 -4
- package/dist/select/{select-root.svelte → select-root-input.svelte} +1 -1
- package/dist/select/select-root-input.svelte.d.ts +18 -0
- package/dist/select/select-trigger-button.svelte +52 -0
- package/dist/select/select-trigger-button.svelte.d.ts +9 -0
- package/dist/select/select-value.svelte.d.ts +2 -2
- package/dist/separator/separator.svelte.d.ts +4 -4
- package/dist/shader-canvas/presets.d.ts +1 -1
- package/dist/shader-canvas/presets.js +1 -1
- package/dist/shader-canvas/shader-canvas.svelte +4 -1
- package/dist/shader-canvas/shader-canvas.svelte.d.ts +13 -18
- package/dist/sidebar/index.d.ts +1 -1
- package/dist/sidebar/index.js +1 -1
- package/dist/sidebar/sidebar-content.svelte.d.ts +2 -2
- package/dist/sidebar/sidebar-footer.svelte +5 -4
- package/dist/sidebar/sidebar-footer.svelte.d.ts +2 -2
- package/dist/sidebar/sidebar-group-label.svelte.d.ts +2 -2
- package/dist/sidebar/sidebar-group.svelte.d.ts +2 -2
- package/dist/sidebar/sidebar-header.svelte.d.ts +2 -2
- package/dist/sidebar/sidebar-item.svelte +2 -2
- package/dist/sidebar/sidebar-item.svelte.d.ts +3 -3
- package/dist/sidebar/sidebar-root.svelte.d.ts +4 -4
- package/dist/sidebar/sidebar-trigger-button.svelte +29 -0
- package/dist/sidebar/sidebar-trigger-button.svelte.d.ts +8 -0
- package/dist/skeleton/skeleton.svelte.d.ts +4 -4
- package/dist/slider/index.d.ts +1 -1
- package/dist/slider/index.js +1 -1
- package/dist/slider/slider-input.svelte.d.ts +13 -0
- package/dist/spacer/spacer.svelte.d.ts +3 -3
- package/dist/sparkline/sparkline.svelte.d.ts +8 -8
- package/dist/spinner/spinner.svelte.d.ts +4 -4
- package/dist/splitter/splitter-handle.svelte.d.ts +3 -3
- package/dist/splitter/splitter-panel.svelte.d.ts +3 -3
- package/dist/splitter/splitter-root.svelte.d.ts +4 -4
- package/dist/spotlight/spotlight.svelte +42 -4
- package/dist/spotlight/spotlight.svelte.d.ts +9 -8
- package/dist/star-rating/star-rating-root.svelte.d.ts +5 -5
- package/dist/stepper/index.d.ts +1 -1
- package/dist/stepper/index.js +1 -1
- package/dist/stepper/stepper-list.svelte.d.ts +2 -2
- package/dist/stepper/stepper-root.svelte.d.ts +4 -4
- package/dist/stepper/stepper-separator.svelte.d.ts +2 -2
- package/dist/stepper/{stepper-step.svelte → stepper-step-button.svelte} +3 -28
- package/dist/stepper/stepper-step-button.svelte.d.ts +12 -0
- package/dist/svg/svg.svelte.d.ts +4 -5
- package/dist/table/table-body.svelte.d.ts +2 -2
- package/dist/table/table-caption.svelte.d.ts +2 -2
- package/dist/table/table-cell.svelte.d.ts +2 -2
- package/dist/table/table-footer.svelte.d.ts +2 -2
- package/dist/table/table-head.svelte.d.ts +3 -3
- package/dist/table/table-header.svelte.d.ts +2 -2
- package/dist/table/table-root.svelte.d.ts +2 -2
- package/dist/table/table-row.svelte.d.ts +2 -2
- package/dist/table-of-contents/table-of-contents-item.svelte +6 -1
- package/dist/table-of-contents/table-of-contents-item.svelte.d.ts +7 -8
- package/dist/table-of-contents/table-of-contents-list.svelte +7 -2
- package/dist/table-of-contents/table-of-contents-list.svelte.d.ts +3 -2
- package/dist/table-of-contents/table-of-contents-root.svelte.d.ts +6 -6
- package/dist/tabs/index.d.ts +1 -1
- package/dist/tabs/index.js +1 -1
- package/dist/tabs/tabs-content.svelte.d.ts +3 -3
- package/dist/tabs/tabs-list.svelte.d.ts +2 -2
- package/dist/tabs/tabs-root.svelte.d.ts +5 -5
- package/dist/tabs/tabs-trigger-button.svelte +41 -0
- package/dist/tabs/tabs-trigger-button.svelte.d.ts +11 -0
- package/dist/tag/index.d.ts +1 -1
- package/dist/tag/index.js +1 -1
- package/dist/tag/{tag.svelte → tag-button.svelte} +9 -42
- package/dist/tag/tag-button.svelte.d.ts +14 -0
- package/dist/tags-input/index.d.ts +1 -1
- package/dist/tags-input/index.js +1 -1
- package/dist/tags-input/tags-input-input.svelte.d.ts +2 -2
- package/dist/tags-input/tags-input-list.svelte.d.ts +2 -2
- package/dist/tags-input/tags-input-root.svelte.d.ts +8 -8
- package/dist/tags-input/tags-input-tag-delete-button.svelte +29 -0
- package/dist/tags-input/tags-input-tag-delete-button.svelte.d.ts +8 -0
- package/dist/tags-input/tags-input-tag.svelte.d.ts +4 -4
- package/dist/text/text.svelte.d.ts +8 -8
- package/dist/textarea/textarea.svelte.d.ts +4 -4
- package/dist/themes/aurora.css +229 -0
- package/dist/themes/dark.css +134 -0
- package/dist/themes/default.css +76 -0
- package/dist/themes/midnight.css +142 -0
- package/dist/themes/terminal.css +175 -0
- package/dist/time-input/time-input.svelte.d.ts +9 -2
- package/dist/timeline/timeline-content.svelte.d.ts +2 -2
- package/dist/timeline/timeline-description.svelte.d.ts +2 -2
- package/dist/timeline/timeline-icon.svelte.d.ts +2 -2
- package/dist/timeline/timeline-item.svelte.d.ts +2 -2
- package/dist/timeline/timeline-root.svelte.d.ts +3 -3
- package/dist/timeline/timeline-time.svelte.d.ts +3 -3
- package/dist/timeline/timeline-title.svelte.d.ts +3 -3
- package/dist/toast/index.d.ts +2 -2
- package/dist/toast/index.js +2 -2
- package/dist/toast/toast-action-button.svelte +16 -0
- package/dist/toast/toast-action-button.svelte.d.ts +9 -0
- package/dist/toast/toast-close-button.svelte +23 -0
- package/dist/toast/toast-close-button.svelte.d.ts +8 -0
- package/dist/toast/toast-description.svelte.d.ts +2 -2
- package/dist/toast/toast-provider.svelte +1 -1
- package/dist/toast/toast-provider.svelte.d.ts +3 -9
- package/dist/toast/toast-root.svelte.d.ts +6 -6
- package/dist/toast/toast-title.svelte.d.ts +2 -2
- package/dist/toggle/index.d.ts +1 -1
- package/dist/toggle/index.js +1 -1
- package/dist/toggle/toggle-button.svelte +203 -0
- package/dist/toggle/toggle-button.svelte.d.ts +14 -0
- package/dist/toggle-group/index.d.ts +1 -1
- package/dist/toggle-group/index.js +1 -1
- package/dist/toggle-group/toggle-group-item-button.svelte +36 -0
- package/dist/toggle-group/toggle-group-item-button.svelte.d.ts +10 -0
- package/dist/toggle-group/toggle-group-root.svelte +5 -3
- package/dist/toggle-group/toggle-group-root.svelte.d.ts +7 -7
- package/dist/toolbar/toolbar-button.svelte +4 -47
- package/dist/toolbar/toolbar-button.svelte.d.ts +3 -3
- package/dist/toolbar/toolbar-link.svelte.d.ts +3 -3
- package/dist/toolbar/toolbar-root.svelte.d.ts +3 -3
- package/dist/toolbar/toolbar-separator.svelte.d.ts +3 -2
- package/dist/tooltip/tooltip-content.svelte.d.ts +5 -16
- package/dist/tooltip/tooltip-root.svelte.d.ts +4 -4
- package/dist/tooltip/tooltip-trigger.svelte.d.ts +2 -2
- package/dist/tour/index.d.ts +1 -1
- package/dist/tour/index.js +1 -1
- package/dist/tour/tour-root.css +211 -0
- package/dist/tour/tour-root.css.d.ts +2 -0
- package/dist/tour/tour-root.svelte +2 -217
- package/dist/tour/tour-root.svelte.d.ts +7 -6
- package/dist/tour/{tour-tooltip.svelte → tour-tooltip-button.svelte} +8 -4
- package/dist/tour/tour-tooltip-button.svelte.d.ts +17 -0
- package/dist/transfer/index.d.ts +2 -2
- package/dist/transfer/index.js +2 -2
- package/dist/transfer/{transfer-actions.svelte → transfer-actions-button.svelte} +17 -47
- package/dist/transfer/transfer-actions-button.svelte.d.ts +17 -0
- package/dist/transfer/transfer-item.svelte.d.ts +5 -5
- package/dist/transfer/transfer-list-input.svelte.d.ts +14 -0
- package/dist/transfer/transfer-root.svelte.d.ts +6 -6
- package/dist/tree/tree-item-children.svelte.d.ts +2 -2
- package/dist/tree/tree-item-label.svelte.d.ts +2 -2
- package/dist/tree/tree-item.svelte.d.ts +3 -3
- package/dist/tree/tree-root.svelte +16 -17
- package/dist/tree/tree-root.svelte.d.ts +4 -4
- package/dist/typing-indicator/typing-indicator.svelte.d.ts +3 -5
- package/dist/typography/blockquote.svelte.d.ts +2 -2
- package/dist/typography/code.svelte.d.ts +2 -2
- package/dist/typography/heading.svelte.d.ts +4 -3
- package/dist/typography/text.svelte.d.ts +6 -6
- package/dist/video-embed/index.d.ts +1 -1
- package/dist/video-embed/index.js +1 -1
- package/dist/video-embed/{video-embed.svelte → video-embed-button.svelte} +28 -34
- package/dist/video-embed/video-embed-button.svelte.d.ts +15 -0
- package/dist/virtual-list/virtual-list.svelte.d.ts +24 -37
- package/dist/visually-hidden/visually-hidden.svelte.d.ts +2 -2
- package/package.json +22 -27
- package/skills/dryui/SKILL.md +1 -0
- package/dist/accordion/accordion-trigger.svelte +0 -89
- package/dist/accordion/accordion-trigger.svelte.d.ts +0 -8
- package/dist/alert/alert-close.svelte +0 -68
- package/dist/alert/alert-close.svelte.d.ts +0 -8
- package/dist/alert-dialog/alert-dialog-action.svelte +0 -74
- package/dist/alert-dialog/alert-dialog-action.svelte.d.ts +0 -8
- package/dist/alert-dialog/alert-dialog-cancel.svelte +0 -85
- package/dist/alert-dialog/alert-dialog-cancel.svelte.d.ts +0 -8
- package/dist/alpha-slider/alpha-slider.svelte.d.ts +0 -12
- package/dist/calendar/calendar-grid.svelte +0 -253
- package/dist/calendar/calendar-grid.svelte.d.ts +0 -4
- package/dist/calendar/calendar-next.svelte +0 -56
- package/dist/calendar/calendar-next.svelte.d.ts +0 -4
- package/dist/calendar/calendar-prev.svelte +0 -56
- package/dist/calendar/calendar-prev.svelte.d.ts +0 -4
- package/dist/carousel/carousel-dots.svelte +0 -59
- package/dist/carousel/carousel-dots.svelte.d.ts +0 -5
- package/dist/carousel/carousel-next.svelte +0 -65
- package/dist/carousel/carousel-next.svelte.d.ts +0 -8
- package/dist/carousel/carousel-prev.svelte +0 -65
- package/dist/carousel/carousel-prev.svelte.d.ts +0 -8
- package/dist/carousel/carousel-thumbnails.svelte.d.ts +0 -9
- package/dist/checkbox/checkbox.svelte.d.ts +0 -10
- package/dist/chip/chip.svelte +0 -327
- package/dist/chip/chip.svelte.d.ts +0 -26
- package/dist/chip-group/chip-group-item.svelte +0 -241
- package/dist/chip-group/chip-group-item.svelte.d.ts +0 -12
- package/dist/code-block/code-block.svelte.d.ts +0 -13
- package/dist/collapsible/collapsible-trigger.svelte +0 -79
- package/dist/collapsible/collapsible-trigger.svelte.d.ts +0 -8
- package/dist/color-picker/color-picker-alpha-slider.svelte.d.ts +0 -5
- package/dist/color-picker/color-picker-eyedropper.svelte.d.ts +0 -8
- package/dist/color-picker/color-picker-hue-slider.svelte.d.ts +0 -5
- package/dist/combobox/combobox-root.svelte.d.ts +0 -11
- package/dist/command-palette/command-palette-root.svelte.d.ts +0 -9
- package/dist/country-select/country-select.svelte.d.ts +0 -15
- package/dist/data-grid/data-grid-column.svelte.d.ts +0 -14
- package/dist/data-grid/data-grid-expand-trigger.svelte +0 -65
- package/dist/data-grid/data-grid-expand-trigger.svelte.d.ts +0 -9
- package/dist/data-grid/data-grid-pagination.svelte.d.ts +0 -22
- package/dist/data-grid/data-grid-select-all.svelte.d.ts +0 -5
- package/dist/data-grid/data-grid-select-cell.svelte.d.ts +0 -7
- package/dist/date-field/date-field-root.svelte.d.ts +0 -15
- package/dist/date-picker/datepicker-calendar.svelte.d.ts +0 -5
- package/dist/date-picker/datepicker-root.svelte.d.ts +0 -14
- package/dist/date-picker/datepicker-trigger.svelte +0 -184
- package/dist/date-picker/datepicker-trigger.svelte.d.ts +0 -10
- package/dist/date-range-picker/date-range-picker-calendar.svelte.d.ts +0 -8
- package/dist/date-range-picker/date-range-picker-preset.svelte +0 -62
- package/dist/date-range-picker/date-range-picker-preset.svelte.d.ts +0 -4
- package/dist/date-range-picker/date-range-picker-trigger.svelte +0 -132
- package/dist/date-range-picker/date-range-picker-trigger.svelte.d.ts +0 -8
- package/dist/drawer/drawer-content.svelte.d.ts +0 -8
- package/dist/file-select/file-select-clear.svelte +0 -71
- package/dist/file-select/file-select-clear.svelte.d.ts +0 -8
- package/dist/file-select/file-select-trigger.svelte +0 -84
- package/dist/file-select/file-select-trigger.svelte.d.ts +0 -9
- package/dist/file-upload/file-upload-item-delete.svelte +0 -83
- package/dist/file-upload/file-upload-item-delete.svelte.d.ts +0 -9
- package/dist/file-upload/file-upload-root.svelte.d.ts +0 -15
- package/dist/file-upload/file-upload-trigger.svelte +0 -85
- package/dist/file-upload/file-upload-trigger.svelte.d.ts +0 -9
- package/dist/input-group/input-group-action.svelte +0 -67
- package/dist/input-group/input-group-action.svelte.d.ts +0 -8
- package/dist/internal/result-card-shell.svelte +0 -30
- package/dist/internal/result-card-shell.svelte.d.ts +0 -11
- package/dist/mega-menu/mega-menu-trigger.svelte.d.ts +0 -8
- package/dist/menubar/menubar-trigger.svelte.d.ts +0 -8
- package/dist/multi-select-combobox/multi-select-combobox-root.svelte.d.ts +0 -8
- package/dist/multi-select-combobox/multi-select-combobox-selection-remove.svelte +0 -76
- package/dist/multi-select-combobox/multi-select-combobox-selection-remove.svelte.d.ts +0 -8
- package/dist/navigation-menu/navigation-menu-trigger.svelte.d.ts +0 -8
- package/dist/notification-center/notification-center-trigger.svelte +0 -59
- package/dist/notification-center/notification-center-trigger.svelte.d.ts +0 -14
- package/dist/number-input/number-input.svelte.d.ts +0 -12
- package/dist/option-swatch-group/option-swatch-group-item.svelte.d.ts +0 -11
- package/dist/pagination/pagination-link.svelte +0 -80
- package/dist/pagination/pagination-link.svelte.d.ts +0 -9
- package/dist/pagination/pagination-next.svelte +0 -67
- package/dist/pagination/pagination-next.svelte.d.ts +0 -8
- package/dist/pagination/pagination-previous.svelte +0 -67
- package/dist/pagination/pagination-previous.svelte.d.ts +0 -8
- package/dist/phone-input/phone-input.svelte.d.ts +0 -15
- package/dist/prompt-input/prompt-input.svelte.d.ts +0 -4
- package/dist/radio-group/radio-group-item.svelte.d.ts +0 -10
- package/dist/range-calendar/range-calendar-grid.svelte.d.ts +0 -4
- package/dist/rating/rating.svelte.d.ts +0 -13
- package/dist/rich-text-editor/rich-text-editor-toolbar.svelte.d.ts +0 -5
- package/dist/scroll-to-top/scroll-to-top.svelte +0 -162
- package/dist/scroll-to-top/scroll-to-top.svelte.d.ts +0 -10
- package/dist/segmented-control/segmented-control-item.svelte +0 -141
- package/dist/segmented-control/segmented-control-item.svelte.d.ts +0 -10
- package/dist/select/select-root.svelte.d.ts +0 -14
- package/dist/select/select-trigger.svelte +0 -206
- package/dist/select/select-trigger.svelte.d.ts +0 -9
- package/dist/sidebar/sidebar-trigger.svelte +0 -76
- package/dist/sidebar/sidebar-trigger.svelte.d.ts +0 -8
- package/dist/slider/slider.svelte.d.ts +0 -13
- package/dist/stepper/stepper-step.svelte.d.ts +0 -12
- package/dist/system-map/index.d.ts +0 -17
- package/dist/system-map/index.js +0 -1
- package/dist/system-map/system-map.svelte +0 -311
- package/dist/system-map/system-map.svelte.d.ts +0 -25
- package/dist/system-map/types.d.ts +0 -99
- package/dist/tabs/tabs-trigger.svelte +0 -130
- package/dist/tabs/tabs-trigger.svelte.d.ts +0 -11
- package/dist/tag/tag.svelte.d.ts +0 -25
- package/dist/tags-input/tags-input-tag-delete.svelte +0 -73
- package/dist/tags-input/tags-input-tag-delete.svelte.d.ts +0 -8
- package/dist/thumbnail/_layout-content.svelte +0 -89
- package/dist/thumbnail/_layout-content.svelte.d.ts +0 -9
- package/dist/thumbnail/_layout-footer.svelte +0 -54
- package/dist/thumbnail/_layout-footer.svelte.d.ts +0 -9
- package/dist/thumbnail/_layout-header.svelte +0 -76
- package/dist/thumbnail/_layout-header.svelte.d.ts +0 -9
- package/dist/thumbnail/_layout-sidebar.svelte +0 -75
- package/dist/thumbnail/_layout-sidebar.svelte.d.ts +0 -9
- package/dist/thumbnail/accordion.svelte +0 -144
- package/dist/thumbnail/accordion.svelte.d.ts +0 -7
- package/dist/thumbnail/add-on-selector.svelte +0 -213
- package/dist/thumbnail/add-on-selector.svelte.d.ts +0 -7
- package/dist/thumbnail/affix-group.svelte +0 -55
- package/dist/thumbnail/affix-group.svelte.d.ts +0 -7
- package/dist/thumbnail/alert-dialog.svelte +0 -100
- package/dist/thumbnail/alert-dialog.svelte.d.ts +0 -7
- package/dist/thumbnail/alert.svelte +0 -79
- package/dist/thumbnail/alert.svelte.d.ts +0 -7
- package/dist/thumbnail/alpha-slider.svelte +0 -55
- package/dist/thumbnail/alpha-slider.svelte.d.ts +0 -7
- package/dist/thumbnail/amenity-grid.svelte +0 -236
- package/dist/thumbnail/amenity-grid.svelte.d.ts +0 -7
- package/dist/thumbnail/app-frame.svelte.d.ts +0 -7
- package/dist/thumbnail/apply-size.d.ts +0 -3
- package/dist/thumbnail/apply-size.js +0 -14
- package/dist/thumbnail/aspect-ratio.svelte +0 -64
- package/dist/thumbnail/aspect-ratio.svelte.d.ts +0 -7
- package/dist/thumbnail/aurora.svelte +0 -88
- package/dist/thumbnail/aurora.svelte.d.ts +0 -7
- package/dist/thumbnail/avatar-group.svelte.d.ts +0 -7
- package/dist/thumbnail/avatar.svelte +0 -60
- package/dist/thumbnail/avatar.svelte.d.ts +0 -7
- package/dist/thumbnail/backdrop.svelte +0 -73
- package/dist/thumbnail/backdrop.svelte.d.ts +0 -7
- package/dist/thumbnail/badge.svelte +0 -100
- package/dist/thumbnail/badge.svelte.d.ts +0 -7
- package/dist/thumbnail/booking-confirmation.svelte +0 -109
- package/dist/thumbnail/booking-confirmation.svelte.d.ts +0 -7
- package/dist/thumbnail/breadcrumb.svelte +0 -80
- package/dist/thumbnail/breadcrumb.svelte.d.ts +0 -7
- package/dist/thumbnail/button-group.svelte +0 -76
- package/dist/thumbnail/button-group.svelte.d.ts +0 -7
- package/dist/thumbnail/button.svelte +0 -62
- package/dist/thumbnail/button.svelte.d.ts +0 -7
- package/dist/thumbnail/calendar.svelte +0 -86
- package/dist/thumbnail/calendar.svelte.d.ts +0 -7
- package/dist/thumbnail/card.svelte +0 -113
- package/dist/thumbnail/card.svelte.d.ts +0 -7
- package/dist/thumbnail/carousel.svelte +0 -111
- package/dist/thumbnail/carousel.svelte.d.ts +0 -7
- package/dist/thumbnail/chart.svelte +0 -93
- package/dist/thumbnail/chart.svelte.d.ts +0 -7
- package/dist/thumbnail/chat-message.svelte.d.ts +0 -7
- package/dist/thumbnail/chat-thread.svelte +0 -140
- package/dist/thumbnail/chat-thread.svelte.d.ts +0 -7
- package/dist/thumbnail/checkbox.svelte +0 -71
- package/dist/thumbnail/checkbox.svelte.d.ts +0 -7
- package/dist/thumbnail/chip-group.svelte +0 -79
- package/dist/thumbnail/chip-group.svelte.d.ts +0 -7
- package/dist/thumbnail/chip.svelte +0 -76
- package/dist/thumbnail/chip.svelte.d.ts +0 -7
- package/dist/thumbnail/chromatic-shift.svelte +0 -55
- package/dist/thumbnail/chromatic-shift.svelte.d.ts +0 -7
- package/dist/thumbnail/clipboard.svelte +0 -68
- package/dist/thumbnail/clipboard.svelte.d.ts +0 -7
- package/dist/thumbnail/code-block.svelte +0 -125
- package/dist/thumbnail/code-block.svelte.d.ts +0 -7
- package/dist/thumbnail/collapsible.svelte +0 -101
- package/dist/thumbnail/collapsible.svelte.d.ts +0 -7
- package/dist/thumbnail/color-picker.svelte +0 -108
- package/dist/thumbnail/color-picker.svelte.d.ts +0 -7
- package/dist/thumbnail/combobox.svelte +0 -122
- package/dist/thumbnail/combobox.svelte.d.ts +0 -7
- package/dist/thumbnail/command-palette.svelte +0 -134
- package/dist/thumbnail/command-palette.svelte.d.ts +0 -7
- package/dist/thumbnail/commerce-header.svelte +0 -55
- package/dist/thumbnail/commerce-header.svelte.d.ts +0 -7
- package/dist/thumbnail/comparison-table.svelte +0 -193
- package/dist/thumbnail/comparison-table.svelte.d.ts +0 -7
- package/dist/thumbnail/container.svelte +0 -119
- package/dist/thumbnail/container.svelte.d.ts +0 -7
- package/dist/thumbnail/context-menu.svelte +0 -108
- package/dist/thumbnail/context-menu.svelte.d.ts +0 -7
- package/dist/thumbnail/country-select.svelte +0 -111
- package/dist/thumbnail/country-select.svelte.d.ts +0 -7
- package/dist/thumbnail/currency-selector.svelte +0 -111
- package/dist/thumbnail/currency-selector.svelte.d.ts +0 -7
- package/dist/thumbnail/data-grid.svelte +0 -230
- package/dist/thumbnail/data-grid.svelte.d.ts +0 -7
- package/dist/thumbnail/date-field.svelte +0 -132
- package/dist/thumbnail/date-field.svelte.d.ts +0 -7
- package/dist/thumbnail/date-picker.svelte +0 -126
- package/dist/thumbnail/date-picker.svelte.d.ts +0 -7
- package/dist/thumbnail/date-range-picker.svelte +0 -100
- package/dist/thumbnail/date-range-picker.svelte.d.ts +0 -7
- package/dist/thumbnail/date-time-input.svelte +0 -182
- package/dist/thumbnail/date-time-input.svelte.d.ts +0 -7
- package/dist/thumbnail/description-list.svelte +0 -142
- package/dist/thumbnail/description-list.svelte.d.ts +0 -7
- package/dist/thumbnail/dialog.svelte +0 -136
- package/dist/thumbnail/dialog.svelte.d.ts +0 -7
- package/dist/thumbnail/displacement.svelte +0 -55
- package/dist/thumbnail/displacement.svelte.d.ts +0 -7
- package/dist/thumbnail/drag-and-drop.svelte +0 -139
- package/dist/thumbnail/drag-and-drop.svelte.d.ts +0 -7
- package/dist/thumbnail/drawer.svelte +0 -112
- package/dist/thumbnail/drawer.svelte.d.ts +0 -7
- package/dist/thumbnail/drop-zone.svelte +0 -55
- package/dist/thumbnail/drop-zone.svelte.d.ts +0 -7
- package/dist/thumbnail/dropdown-menu.svelte +0 -128
- package/dist/thumbnail/dropdown-menu.svelte.d.ts +0 -7
- package/dist/thumbnail/empty-state.svelte.d.ts +0 -7
- package/dist/thumbnail/fare-class-picker.svelte +0 -225
- package/dist/thumbnail/fare-class-picker.svelte.d.ts +0 -7
- package/dist/thumbnail/feature-split-section.svelte.d.ts +0 -7
- package/dist/thumbnail/field.svelte +0 -82
- package/dist/thumbnail/field.svelte.d.ts +0 -7
- package/dist/thumbnail/fieldset.svelte +0 -123
- package/dist/thumbnail/fieldset.svelte.d.ts +0 -7
- package/dist/thumbnail/file-select.svelte +0 -90
- package/dist/thumbnail/file-select.svelte.d.ts +0 -7
- package/dist/thumbnail/file-upload.svelte +0 -84
- package/dist/thumbnail/file-upload.svelte.d.ts +0 -7
- package/dist/thumbnail/filter-sidebar.svelte +0 -201
- package/dist/thumbnail/filter-sidebar.svelte.d.ts +0 -7
- package/dist/thumbnail/flexible-dates-grid.svelte +0 -210
- package/dist/thumbnail/flexible-dates-grid.svelte.d.ts +0 -7
- package/dist/thumbnail/flight-timeline.svelte +0 -155
- package/dist/thumbnail/flight-timeline.svelte.d.ts +0 -7
- package/dist/thumbnail/flip-card.svelte +0 -128
- package/dist/thumbnail/flip-card.svelte.d.ts +0 -7
- package/dist/thumbnail/float-button.svelte +0 -63
- package/dist/thumbnail/float-button.svelte.d.ts +0 -7
- package/dist/thumbnail/focus-trap.svelte +0 -110
- package/dist/thumbnail/focus-trap.svelte.d.ts +0 -7
- package/dist/thumbnail/format-bytes.svelte +0 -51
- package/dist/thumbnail/format-bytes.svelte.d.ts +0 -7
- package/dist/thumbnail/format-date.svelte +0 -51
- package/dist/thumbnail/format-date.svelte.d.ts +0 -7
- package/dist/thumbnail/format-number.svelte +0 -51
- package/dist/thumbnail/format-number.svelte.d.ts +0 -7
- package/dist/thumbnail/gauge.svelte +0 -90
- package/dist/thumbnail/gauge.svelte.d.ts +0 -7
- package/dist/thumbnail/glass-surface.svelte.d.ts +0 -7
- package/dist/thumbnail/glow.svelte +0 -55
- package/dist/thumbnail/glow.svelte.d.ts +0 -7
- package/dist/thumbnail/gradient-mesh.svelte +0 -55
- package/dist/thumbnail/gradient-mesh.svelte.d.ts +0 -7
- package/dist/thumbnail/guest-room-selector.svelte +0 -214
- package/dist/thumbnail/guest-room-selector.svelte.d.ts +0 -7
- package/dist/thumbnail/halftone.svelte +0 -55
- package/dist/thumbnail/halftone.svelte.d.ts +0 -7
- package/dist/thumbnail/heading.svelte +0 -91
- package/dist/thumbnail/heading.svelte.d.ts +0 -7
- package/dist/thumbnail/hotel-gallery.svelte +0 -117
- package/dist/thumbnail/hotel-gallery.svelte.d.ts +0 -7
- package/dist/thumbnail/hotkey.svelte +0 -108
- package/dist/thumbnail/hotkey.svelte.d.ts +0 -7
- package/dist/thumbnail/hover-card.svelte +0 -117
- package/dist/thumbnail/hover-card.svelte.d.ts +0 -7
- package/dist/thumbnail/icon.svelte +0 -55
- package/dist/thumbnail/icon.svelte.d.ts +0 -7
- package/dist/thumbnail/image-comparison.svelte +0 -96
- package/dist/thumbnail/image-comparison.svelte.d.ts +0 -7
- package/dist/thumbnail/image.svelte +0 -74
- package/dist/thumbnail/image.svelte.d.ts +0 -7
- package/dist/thumbnail/index.d.ts +0 -12
- package/dist/thumbnail/index.js +0 -359
- package/dist/thumbnail/infinite-scroll.svelte +0 -129
- package/dist/thumbnail/infinite-scroll.svelte.d.ts +0 -7
- package/dist/thumbnail/input-group.svelte +0 -55
- package/dist/thumbnail/input-group.svelte.d.ts +0 -7
- package/dist/thumbnail/input.svelte +0 -74
- package/dist/thumbnail/input.svelte.d.ts +0 -7
- package/dist/thumbnail/itinerary-timeline.svelte +0 -143
- package/dist/thumbnail/itinerary-timeline.svelte.d.ts +0 -7
- package/dist/thumbnail/kbd.svelte +0 -112
- package/dist/thumbnail/kbd.svelte.d.ts +0 -7
- package/dist/thumbnail/label.svelte +0 -54
- package/dist/thumbnail/label.svelte.d.ts +0 -7
- package/dist/thumbnail/layout-header-content-footer.svelte +0 -64
- package/dist/thumbnail/layout-header-content-footer.svelte.d.ts +0 -7
- package/dist/thumbnail/layout-header-sidebar-main.svelte +0 -64
- package/dist/thumbnail/layout-header-sidebar-main.svelte.d.ts +0 -7
- package/dist/thumbnail/layout-sidebar-main.svelte +0 -57
- package/dist/thumbnail/layout-sidebar-main.svelte.d.ts +0 -7
- package/dist/thumbnail/link-preview.svelte +0 -141
- package/dist/thumbnail/link-preview.svelte.d.ts +0 -7
- package/dist/thumbnail/link.svelte +0 -70
- package/dist/thumbnail/link.svelte.d.ts +0 -7
- package/dist/thumbnail/list.svelte +0 -86
- package/dist/thumbnail/list.svelte.d.ts +0 -7
- package/dist/thumbnail/listbox.svelte +0 -102
- package/dist/thumbnail/listbox.svelte.d.ts +0 -7
- package/dist/thumbnail/location-autocomplete.svelte +0 -219
- package/dist/thumbnail/location-autocomplete.svelte.d.ts +0 -7
- package/dist/thumbnail/logo-cloud.svelte.d.ts +0 -7
- package/dist/thumbnail/loyalty-points-display.svelte +0 -147
- package/dist/thumbnail/loyalty-points-display.svelte.d.ts +0 -7
- package/dist/thumbnail/map-list-toggle.svelte +0 -140
- package/dist/thumbnail/map-list-toggle.svelte.d.ts +0 -7
- package/dist/thumbnail/map.svelte +0 -112
- package/dist/thumbnail/map.svelte.d.ts +0 -7
- package/dist/thumbnail/markdown-renderer.svelte +0 -113
- package/dist/thumbnail/markdown-renderer.svelte.d.ts +0 -7
- package/dist/thumbnail/marquee.svelte +0 -114
- package/dist/thumbnail/marquee.svelte.d.ts +0 -7
- package/dist/thumbnail/mask-reveal.svelte +0 -55
- package/dist/thumbnail/mask-reveal.svelte.d.ts +0 -7
- package/dist/thumbnail/mega-menu.svelte +0 -176
- package/dist/thumbnail/mega-menu.svelte.d.ts +0 -7
- package/dist/thumbnail/menubar.svelte +0 -99
- package/dist/thumbnail/menubar.svelte.d.ts +0 -7
- package/dist/thumbnail/multi-city-search-form.svelte +0 -241
- package/dist/thumbnail/multi-city-search-form.svelte.d.ts +0 -7
- package/dist/thumbnail/multi-select-combobox.svelte +0 -142
- package/dist/thumbnail/multi-select-combobox.svelte.d.ts +0 -7
- package/dist/thumbnail/navigation-menu.svelte +0 -102
- package/dist/thumbnail/navigation-menu.svelte.d.ts +0 -7
- package/dist/thumbnail/noise.svelte +0 -72
- package/dist/thumbnail/noise.svelte.d.ts +0 -7
- package/dist/thumbnail/notification-center.svelte +0 -152
- package/dist/thumbnail/notification-center.svelte.d.ts +0 -7
- package/dist/thumbnail/number-input.svelte +0 -113
- package/dist/thumbnail/number-input.svelte.d.ts +0 -7
- package/dist/thumbnail/option-swatch-group.svelte +0 -55
- package/dist/thumbnail/option-swatch-group.svelte.d.ts +0 -7
- package/dist/thumbnail/page-header.svelte.d.ts +0 -7
- package/dist/thumbnail/pagination.svelte +0 -121
- package/dist/thumbnail/pagination.svelte.d.ts +0 -7
- package/dist/thumbnail/passenger-class-selector.svelte +0 -142
- package/dist/thumbnail/passenger-class-selector.svelte.d.ts +0 -7
- package/dist/thumbnail/payment-card-input.svelte +0 -172
- package/dist/thumbnail/payment-card-input.svelte.d.ts +0 -7
- package/dist/thumbnail/phone-input.svelte +0 -103
- package/dist/thumbnail/phone-input.svelte.d.ts +0 -7
- package/dist/thumbnail/pin-input.svelte +0 -72
- package/dist/thumbnail/pin-input.svelte.d.ts +0 -7
- package/dist/thumbnail/popover.svelte +0 -122
- package/dist/thumbnail/popover.svelte.d.ts +0 -7
- package/dist/thumbnail/portal.svelte +0 -115
- package/dist/thumbnail/portal.svelte.d.ts +0 -7
- package/dist/thumbnail/price-calendar.svelte +0 -366
- package/dist/thumbnail/price-calendar.svelte.d.ts +0 -7
- package/dist/thumbnail/price-summary-panel.svelte +0 -165
- package/dist/thumbnail/price-summary-panel.svelte.d.ts +0 -7
- package/dist/thumbnail/progress-ring.svelte +0 -63
- package/dist/thumbnail/progress-ring.svelte.d.ts +0 -7
- package/dist/thumbnail/progress.svelte +0 -66
- package/dist/thumbnail/progress.svelte.d.ts +0 -7
- package/dist/thumbnail/promo-code-input.svelte +0 -111
- package/dist/thumbnail/promo-code-input.svelte.d.ts +0 -7
- package/dist/thumbnail/promo-mosaic.svelte +0 -55
- package/dist/thumbnail/promo-mosaic.svelte.d.ts +0 -7
- package/dist/thumbnail/prompt-input.svelte +0 -91
- package/dist/thumbnail/prompt-input.svelte.d.ts +0 -7
- package/dist/thumbnail/qr-code.svelte +0 -217
- package/dist/thumbnail/qr-code.svelte.d.ts +0 -7
- package/dist/thumbnail/radio-group.svelte +0 -97
- package/dist/thumbnail/radio-group.svelte.d.ts +0 -7
- package/dist/thumbnail/range-calendar.svelte +0 -92
- package/dist/thumbnail/range-calendar.svelte.d.ts +0 -7
- package/dist/thumbnail/rating.svelte +0 -61
- package/dist/thumbnail/rating.svelte.d.ts +0 -7
- package/dist/thumbnail/recent-searches.svelte +0 -197
- package/dist/thumbnail/recent-searches.svelte.d.ts +0 -7
- package/dist/thumbnail/relative-time.svelte +0 -51
- package/dist/thumbnail/relative-time.svelte.d.ts +0 -7
- package/dist/thumbnail/result-card-car.svelte +0 -149
- package/dist/thumbnail/result-card-car.svelte.d.ts +0 -7
- package/dist/thumbnail/result-card-flight.svelte +0 -170
- package/dist/thumbnail/result-card-flight.svelte.d.ts +0 -7
- package/dist/thumbnail/result-card-hotel.svelte +0 -174
- package/dist/thumbnail/result-card-hotel.svelte.d.ts +0 -7
- package/dist/thumbnail/reveal.svelte +0 -109
- package/dist/thumbnail/reveal.svelte.d.ts +0 -7
- package/dist/thumbnail/review-card.svelte +0 -153
- package/dist/thumbnail/review-card.svelte.d.ts +0 -7
- package/dist/thumbnail/rich-text-editor.svelte +0 -134
- package/dist/thumbnail/rich-text-editor.svelte.d.ts +0 -7
- package/dist/thumbnail/room-type-picker.svelte +0 -212
- package/dist/thumbnail/room-type-picker.svelte.d.ts +0 -7
- package/dist/thumbnail/root.svelte +0 -52
- package/dist/thumbnail/root.svelte.d.ts +0 -10
- package/dist/thumbnail/route-map.svelte +0 -132
- package/dist/thumbnail/route-map.svelte.d.ts +0 -7
- package/dist/thumbnail/scroll-area.svelte +0 -124
- package/dist/thumbnail/scroll-area.svelte.d.ts +0 -7
- package/dist/thumbnail/scroll-to-top.svelte +0 -60
- package/dist/thumbnail/scroll-to-top.svelte.d.ts +0 -7
- package/dist/thumbnail/search-form-tabs.svelte +0 -192
- package/dist/thumbnail/search-form-tabs.svelte.d.ts +0 -7
- package/dist/thumbnail/seat-map.svelte +0 -358
- package/dist/thumbnail/seat-map.svelte.d.ts +0 -7
- package/dist/thumbnail/segmented-control.svelte +0 -93
- package/dist/thumbnail/segmented-control.svelte.d.ts +0 -7
- package/dist/thumbnail/select.svelte +0 -82
- package/dist/thumbnail/select.svelte.d.ts +0 -7
- package/dist/thumbnail/selectable-tile-group.svelte +0 -55
- package/dist/thumbnail/selectable-tile-group.svelte.d.ts +0 -7
- package/dist/thumbnail/separator.svelte +0 -94
- package/dist/thumbnail/separator.svelte.d.ts +0 -7
- package/dist/thumbnail/shader-canvas.svelte +0 -55
- package/dist/thumbnail/shader-canvas.svelte.d.ts +0 -7
- package/dist/thumbnail/sidebar.svelte +0 -109
- package/dist/thumbnail/sidebar.svelte.d.ts +0 -7
- package/dist/thumbnail/skeleton.svelte +0 -94
- package/dist/thumbnail/skeleton.svelte.d.ts +0 -7
- package/dist/thumbnail/slider.svelte +0 -71
- package/dist/thumbnail/slider.svelte.d.ts +0 -7
- package/dist/thumbnail/sort-bar.svelte +0 -156
- package/dist/thumbnail/sort-bar.svelte.d.ts +0 -7
- package/dist/thumbnail/spacer.svelte +0 -95
- package/dist/thumbnail/spacer.svelte.d.ts +0 -7
- package/dist/thumbnail/sparkline.svelte +0 -59
- package/dist/thumbnail/sparkline.svelte.d.ts +0 -7
- package/dist/thumbnail/spinner.svelte +0 -63
- package/dist/thumbnail/spinner.svelte.d.ts +0 -7
- package/dist/thumbnail/splitter.svelte +0 -79
- package/dist/thumbnail/splitter.svelte.d.ts +0 -7
- package/dist/thumbnail/spotlight.svelte +0 -90
- package/dist/thumbnail/spotlight.svelte.d.ts +0 -7
- package/dist/thumbnail/star-rating.svelte +0 -106
- package/dist/thumbnail/star-rating.svelte.d.ts +0 -7
- package/dist/thumbnail/stat-card.svelte.d.ts +0 -7
- package/dist/thumbnail/stepper.svelte +0 -94
- package/dist/thumbnail/stepper.svelte.d.ts +0 -7
- package/dist/thumbnail/svg.svelte +0 -55
- package/dist/thumbnail/svg.svelte.d.ts +0 -8
- package/dist/thumbnail/swatch-strip.svelte.d.ts +0 -7
- package/dist/thumbnail/switch.svelte.d.ts +0 -7
- package/dist/thumbnail/system-map.svelte +0 -154
- package/dist/thumbnail/system-map.svelte.d.ts +0 -7
- package/dist/thumbnail/table-of-contents.svelte +0 -101
- package/dist/thumbnail/table-of-contents.svelte.d.ts +0 -7
- package/dist/thumbnail/table.svelte +0 -214
- package/dist/thumbnail/table.svelte.d.ts +0 -7
- package/dist/thumbnail/tabs.svelte +0 -133
- package/dist/thumbnail/tabs.svelte.d.ts +0 -7
- package/dist/thumbnail/tag.svelte +0 -95
- package/dist/thumbnail/tag.svelte.d.ts +0 -7
- package/dist/thumbnail/tags-input.svelte +0 -142
- package/dist/thumbnail/tags-input.svelte.d.ts +0 -7
- package/dist/thumbnail/text.svelte +0 -72
- package/dist/thumbnail/text.svelte.d.ts +0 -7
- package/dist/thumbnail/textarea.svelte +0 -111
- package/dist/thumbnail/textarea.svelte.d.ts +0 -7
- package/dist/thumbnail/time-input.svelte +0 -94
- package/dist/thumbnail/time-input.svelte.d.ts +0 -7
- package/dist/thumbnail/timeline.svelte +0 -123
- package/dist/thumbnail/timeline.svelte.d.ts +0 -7
- package/dist/thumbnail/toast.svelte +0 -105
- package/dist/thumbnail/toast.svelte.d.ts +0 -7
- package/dist/thumbnail/toggle-group.svelte +0 -76
- package/dist/thumbnail/toggle-group.svelte.d.ts +0 -7
- package/dist/thumbnail/toggle.svelte +0 -46
- package/dist/thumbnail/toggle.svelte.d.ts +0 -7
- package/dist/thumbnail/token-preview.svelte.d.ts +0 -7
- package/dist/thumbnail/toolbar.svelte +0 -109
- package/dist/thumbnail/toolbar.svelte.d.ts +0 -7
- package/dist/thumbnail/tooltip.svelte +0 -85
- package/dist/thumbnail/tooltip.svelte.d.ts +0 -7
- package/dist/thumbnail/tour.svelte +0 -149
- package/dist/thumbnail/tour.svelte.d.ts +0 -7
- package/dist/thumbnail/transfer.svelte +0 -168
- package/dist/thumbnail/transfer.svelte.d.ts +0 -7
- package/dist/thumbnail/tree.svelte +0 -215
- package/dist/thumbnail/tree.svelte.d.ts +0 -7
- package/dist/thumbnail/trip-card.svelte +0 -137
- package/dist/thumbnail/trip-card.svelte.d.ts +0 -7
- package/dist/thumbnail/trust-badges.svelte +0 -207
- package/dist/thumbnail/trust-badges.svelte.d.ts +0 -7
- package/dist/thumbnail/typing-indicator.svelte +0 -65
- package/dist/thumbnail/typing-indicator.svelte.d.ts +0 -7
- package/dist/thumbnail/typography.svelte +0 -80
- package/dist/thumbnail/typography.svelte.d.ts +0 -7
- package/dist/thumbnail/user.svelte.d.ts +0 -7
- package/dist/thumbnail/video-embed.svelte +0 -87
- package/dist/thumbnail/video-embed.svelte.d.ts +0 -7
- package/dist/thumbnail/virtual-list.svelte +0 -178
- package/dist/thumbnail/virtual-list.svelte.d.ts +0 -7
- package/dist/thumbnail/visually-hidden.svelte +0 -106
- package/dist/thumbnail/visually-hidden.svelte.d.ts +0 -7
- package/dist/thumbnail/wave-divider.svelte.d.ts +0 -7
- package/dist/toast/toast-action.svelte +0 -39
- package/dist/toast/toast-action.svelte.d.ts +0 -9
- package/dist/toast/toast-close.svelte +0 -63
- package/dist/toast/toast-close.svelte.d.ts +0 -8
- package/dist/toggle/toggle.svelte +0 -269
- package/dist/toggle/toggle.svelte.d.ts +0 -12
- package/dist/toggle-group/toggle-group-item.svelte +0 -133
- package/dist/toggle-group/toggle-group-item.svelte.d.ts +0 -10
- package/dist/tour/tour-tooltip.svelte.d.ts +0 -17
- package/dist/transfer/transfer-actions.svelte.d.ts +0 -19
- package/dist/transfer/transfer-list.svelte.d.ts +0 -18
- package/dist/video-embed/video-embed.svelte.d.ts +0 -15
- /package/dist/alpha-slider/{alpha-slider.svelte → alpha-slider-input.svelte} +0 -0
- /package/dist/checkbox/{checkbox.svelte → checkbox-input.svelte} +0 -0
- /package/dist/color-picker/{color-picker-alpha-slider.svelte → color-picker-input-alpha-slider.svelte} +0 -0
- /package/dist/color-picker/{color-picker-hue-slider.svelte → color-picker-input-hue-slider.svelte} +0 -0
- /package/dist/combobox/{combobox-root.svelte → combobox-input-root.svelte} +0 -0
- /package/dist/command-palette/{command-palette-root.svelte → command-palette-dialog-root.svelte} +0 -0
- /package/dist/data-grid/{data-grid-select-all.svelte → data-grid-input-select-all.svelte} +0 -0
- /package/dist/data-grid/{data-grid-select-cell.svelte → data-grid-input-select-cell.svelte} +0 -0
- /package/dist/date-field/{date-field-root.svelte → date-field-input-root.svelte} +0 -0
- /package/dist/date-picker/{datepicker-root.svelte → datepicker-input-root.svelte} +0 -0
- /package/dist/{system-map → diagram}/types.js +0 -0
- /package/dist/file-upload/{file-upload-root.svelte → file-upload-input-root.svelte} +0 -0
- /package/dist/multi-select-combobox/{multi-select-combobox-root.svelte → multi-select-combobox-root-input.svelte} +0 -0
- /package/dist/radio-group/{radio-group-item.svelte → radio-group-item-input.svelte} +0 -0
- /package/dist/slider/{slider.svelte → slider-input.svelte} +0 -0
- /package/dist/transfer/{transfer-list.svelte → transfer-list-input.svelte} +0 -0
|
@@ -0,0 +1,974 @@
|
|
|
1
|
+
import { computeEdgePaths, emptyEdge } from './edge-routing.js';
|
|
2
|
+
const DEFAULT_NODE_GAP = 28;
|
|
3
|
+
const DEFAULT_LAYER_GAP = 56;
|
|
4
|
+
const DEFAULT_CLUSTER_PADDING = 32;
|
|
5
|
+
const DEFAULT_NODE_HEIGHT = 44;
|
|
6
|
+
const DESC_NODE_HEIGHT = 80;
|
|
7
|
+
const MIN_NODE_WIDTH = 140;
|
|
8
|
+
const CHAR_WIDTH = 8.5;
|
|
9
|
+
const NODE_PADDING_X = 48;
|
|
10
|
+
const MARGIN = 40;
|
|
11
|
+
// ── Helpers ────────────────────────────────────────────────
|
|
12
|
+
function estimateNodeWidth(label, description) {
|
|
13
|
+
const labelWidth = label.length * CHAR_WIDTH + NODE_PADDING_X;
|
|
14
|
+
const descWidth = description ? description.length * 6.5 + NODE_PADDING_X + 16 : 0;
|
|
15
|
+
return Math.max(MIN_NODE_WIDTH, labelWidth, descWidth);
|
|
16
|
+
}
|
|
17
|
+
function isHorizontal(dir) {
|
|
18
|
+
return dir === 'LR' || dir === 'RL';
|
|
19
|
+
}
|
|
20
|
+
function isReversed(dir) {
|
|
21
|
+
return dir === 'BT' || dir === 'RL';
|
|
22
|
+
}
|
|
23
|
+
function buildGraph(nodeIds, edges) {
|
|
24
|
+
const adjacencyOut = new Map();
|
|
25
|
+
const adjacencyIn = new Map();
|
|
26
|
+
const inDegree = new Map();
|
|
27
|
+
for (const id of nodeIds) {
|
|
28
|
+
adjacencyOut.set(id, []);
|
|
29
|
+
adjacencyIn.set(id, []);
|
|
30
|
+
inDegree.set(id, 0);
|
|
31
|
+
}
|
|
32
|
+
for (const e of edges) {
|
|
33
|
+
if (!adjacencyOut.has(e.from) || !adjacencyOut.has(e.to))
|
|
34
|
+
continue;
|
|
35
|
+
adjacencyOut.get(e.from).push(e.to);
|
|
36
|
+
adjacencyIn.get(e.to).push(e.from);
|
|
37
|
+
inDegree.set(e.to, (inDegree.get(e.to) || 0) + 1);
|
|
38
|
+
}
|
|
39
|
+
// Kahn's algorithm
|
|
40
|
+
const queue = [];
|
|
41
|
+
for (const id of nodeIds) {
|
|
42
|
+
if (inDegree.get(id) === 0)
|
|
43
|
+
queue.push(id);
|
|
44
|
+
}
|
|
45
|
+
const order = [];
|
|
46
|
+
const visited = new Set();
|
|
47
|
+
while (queue.length > 0) {
|
|
48
|
+
const node = queue.shift();
|
|
49
|
+
if (visited.has(node))
|
|
50
|
+
continue;
|
|
51
|
+
visited.add(node);
|
|
52
|
+
order.push(node);
|
|
53
|
+
for (const succ of adjacencyOut.get(node)) {
|
|
54
|
+
const deg = inDegree.get(succ) - 1;
|
|
55
|
+
inDegree.set(succ, deg);
|
|
56
|
+
if (deg === 0)
|
|
57
|
+
queue.push(succ);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
// Handle cycles: any unvisited nodes have cycles
|
|
61
|
+
const reversedEdges = new Set();
|
|
62
|
+
if (visited.size < nodeIds.length) {
|
|
63
|
+
for (const id of nodeIds) {
|
|
64
|
+
if (!visited.has(id)) {
|
|
65
|
+
// Break cycle by removing an incoming edge
|
|
66
|
+
const incoming = adjacencyIn.get(id);
|
|
67
|
+
for (const src of incoming) {
|
|
68
|
+
if (!visited.has(src)) {
|
|
69
|
+
reversedEdges.add(`${src}->${id}`);
|
|
70
|
+
const outList = adjacencyOut.get(src);
|
|
71
|
+
const idx = outList.indexOf(id);
|
|
72
|
+
if (idx >= 0)
|
|
73
|
+
outList.splice(idx, 1);
|
|
74
|
+
inDegree.set(id, (inDegree.get(id) || 1) - 1);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
if (!visited.has(id)) {
|
|
78
|
+
visited.add(id);
|
|
79
|
+
order.push(id);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return { adjacencyOut, adjacencyIn, order, reversedEdges };
|
|
85
|
+
}
|
|
86
|
+
// ── Layer Assignment (longest-path) ────────────────────────
|
|
87
|
+
function assignLayers(order, adjacencyOut) {
|
|
88
|
+
const layer = new Map();
|
|
89
|
+
for (const id of order)
|
|
90
|
+
layer.set(id, 0);
|
|
91
|
+
for (const id of order) {
|
|
92
|
+
const currentLayer = layer.get(id);
|
|
93
|
+
for (const succ of adjacencyOut.get(id)) {
|
|
94
|
+
layer.set(succ, Math.max(layer.get(succ), currentLayer + 1));
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
return layer;
|
|
98
|
+
}
|
|
99
|
+
// ── Within-Layer Ordering (barycenter, 2 sweeps, cluster-aware) ───────────
|
|
100
|
+
function orderWithinLayers(layers, adjacencyOut, adjacencyIn, clusterMap) {
|
|
101
|
+
const posInLayer = new Map();
|
|
102
|
+
// Initialize positions
|
|
103
|
+
for (const layer of layers) {
|
|
104
|
+
layer.forEach((id, i) => posInLayer.set(id, i));
|
|
105
|
+
}
|
|
106
|
+
function resortLayer(layer, neighbors) {
|
|
107
|
+
const sorted = layer.map((nodeId) => {
|
|
108
|
+
const adj = neighbors.get(nodeId) ?? [];
|
|
109
|
+
const positions = adj
|
|
110
|
+
.map((p) => posInLayer.get(p))
|
|
111
|
+
.filter((p) => p !== undefined);
|
|
112
|
+
const barycenter = positions.length > 0
|
|
113
|
+
? positions.reduce((a, b) => a + b, 0) / positions.length
|
|
114
|
+
: (posInLayer.get(nodeId) ?? 0);
|
|
115
|
+
return { id: nodeId, bary: barycenter };
|
|
116
|
+
});
|
|
117
|
+
sorted.sort((a, b) => a.bary - b.bary);
|
|
118
|
+
return sorted.map((s) => s.id);
|
|
119
|
+
}
|
|
120
|
+
// Down sweep
|
|
121
|
+
for (let i = 1; i < layers.length; i++) {
|
|
122
|
+
const next = resortLayer(layers[i], adjacencyIn);
|
|
123
|
+
layers[i] = next;
|
|
124
|
+
next.forEach((id, j) => posInLayer.set(id, j));
|
|
125
|
+
}
|
|
126
|
+
// Up sweep
|
|
127
|
+
for (let i = layers.length - 2; i >= 0; i--) {
|
|
128
|
+
const next = resortLayer(layers[i], adjacencyOut);
|
|
129
|
+
layers[i] = next;
|
|
130
|
+
next.forEach((id, j) => posInLayer.set(id, j));
|
|
131
|
+
}
|
|
132
|
+
// Cluster-aware grouping: after barycenter ordering, group cluster members together
|
|
133
|
+
// and push non-clustered nodes to the edges
|
|
134
|
+
if (clusterMap && clusterMap.size > 0) {
|
|
135
|
+
for (let i = 0; i < layers.length; i++) {
|
|
136
|
+
const regrouped = groupByCluster(layers[i], clusterMap, adjacencyIn, adjacencyOut, posInLayer);
|
|
137
|
+
layers[i] = regrouped;
|
|
138
|
+
regrouped.forEach((id, j) => posInLayer.set(id, j));
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
return layers;
|
|
142
|
+
}
|
|
143
|
+
/** Group nodes in a layer so cluster members are adjacent, non-clustered nodes at edges */
|
|
144
|
+
function groupByCluster(layer, clusterMap, adjacencyIn, adjacencyOut, posInLayer) {
|
|
145
|
+
if (layer.length <= 1)
|
|
146
|
+
return layer;
|
|
147
|
+
// Separate into cluster groups and non-clustered nodes
|
|
148
|
+
const clusterGroups = new Map();
|
|
149
|
+
const nonClustered = [];
|
|
150
|
+
for (const nodeId of layer) {
|
|
151
|
+
const clusterId = clusterMap.get(nodeId);
|
|
152
|
+
if (clusterId) {
|
|
153
|
+
if (!clusterGroups.has(clusterId))
|
|
154
|
+
clusterGroups.set(clusterId, []);
|
|
155
|
+
clusterGroups.get(clusterId).push(nodeId);
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
nonClustered.push(nodeId);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
// If no clusters in this layer, nothing to reorder
|
|
162
|
+
if (clusterGroups.size === 0)
|
|
163
|
+
return layer;
|
|
164
|
+
// If no non-clustered nodes, just keep cluster groups in barycenter order
|
|
165
|
+
if (nonClustered.length === 0) {
|
|
166
|
+
// Order cluster groups by average barycenter position of their members
|
|
167
|
+
const groups = [...clusterGroups.entries()].map(([cid, nodes]) => {
|
|
168
|
+
const avgPos = nodes.reduce((s, n) => s + (posInLayer.get(n) ?? 0), 0) / nodes.length;
|
|
169
|
+
return { cid, nodes, avgPos };
|
|
170
|
+
});
|
|
171
|
+
groups.sort((a, b) => a.avgPos - b.avgPos);
|
|
172
|
+
return groups.flatMap((g) => g.nodes);
|
|
173
|
+
}
|
|
174
|
+
// Compute average barycenter position for each cluster group
|
|
175
|
+
const groupEntries = [...clusterGroups.entries()].map(([cid, nodes]) => {
|
|
176
|
+
const avgPos = nodes.reduce((s, n) => s + (posInLayer.get(n) ?? 0), 0) / nodes.length;
|
|
177
|
+
return { cid, nodes, avgPos };
|
|
178
|
+
});
|
|
179
|
+
groupEntries.sort((a, b) => a.avgPos - b.avgPos);
|
|
180
|
+
// Compute average connected position for non-clustered nodes to decide
|
|
181
|
+
// whether they go before or after the cluster groups
|
|
182
|
+
const allClusterPositions = groupEntries.flatMap((g) => g.nodes.map((n) => posInLayer.get(n) ?? 0));
|
|
183
|
+
const clusterCenter = allClusterPositions.reduce((a, b) => a + b, 0) / allClusterPositions.length;
|
|
184
|
+
// Split non-clustered into before/after based on their barycenter relative to cluster center
|
|
185
|
+
const before = [];
|
|
186
|
+
const after = [];
|
|
187
|
+
for (const nodeId of nonClustered) {
|
|
188
|
+
const pos = posInLayer.get(nodeId) ?? 0;
|
|
189
|
+
if (pos <= clusterCenter) {
|
|
190
|
+
before.push(nodeId);
|
|
191
|
+
}
|
|
192
|
+
else {
|
|
193
|
+
after.push(nodeId);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
// If all ended up on one side, that's fine — just keep them there
|
|
197
|
+
// If none on either side, push all to the end
|
|
198
|
+
if (before.length === 0 && after.length === 0) {
|
|
199
|
+
after.push(...nonClustered);
|
|
200
|
+
}
|
|
201
|
+
return [...before, ...groupEntries.flatMap((g) => g.nodes), ...after];
|
|
202
|
+
}
|
|
203
|
+
// ── Coordinate Assignment ──────────────────────────────────
|
|
204
|
+
const CLUSTER_GROUP_GAP = 40;
|
|
205
|
+
function assignCoordinates(layers, nodeDims, direction, nodeGap, layerGap, clusterMap) {
|
|
206
|
+
const positions = new Map();
|
|
207
|
+
const horizontal = isHorizontal(direction);
|
|
208
|
+
const reversed = isReversed(direction);
|
|
209
|
+
// Compute layer extents (max node size in layer direction)
|
|
210
|
+
const layerSizes = [];
|
|
211
|
+
for (const layer of layers) {
|
|
212
|
+
let maxSize = 0;
|
|
213
|
+
for (const id of layer) {
|
|
214
|
+
const dims = nodeDims.get(id);
|
|
215
|
+
maxSize = Math.max(maxSize, horizontal ? dims.w : dims.h);
|
|
216
|
+
}
|
|
217
|
+
layerSizes.push(maxSize);
|
|
218
|
+
}
|
|
219
|
+
// Find max cross-axis extent per layer for centering (including cluster group gaps)
|
|
220
|
+
const layerCrossExtents = [];
|
|
221
|
+
for (const layer of layers) {
|
|
222
|
+
let total = 0;
|
|
223
|
+
for (const id of layer) {
|
|
224
|
+
const dims = nodeDims.get(id);
|
|
225
|
+
total += horizontal ? dims.h : dims.w;
|
|
226
|
+
}
|
|
227
|
+
total += (layer.length - 1) * nodeGap;
|
|
228
|
+
// Add extra gap at cluster/non-cluster boundaries
|
|
229
|
+
if (clusterMap && clusterMap.size > 0) {
|
|
230
|
+
total += countClusterBoundaries(layer, clusterMap) * CLUSTER_GROUP_GAP;
|
|
231
|
+
}
|
|
232
|
+
layerCrossExtents.push(total);
|
|
233
|
+
}
|
|
234
|
+
const maxCrossExtent = Math.max(...layerCrossExtents);
|
|
235
|
+
// Assign positions
|
|
236
|
+
let layerOffset = MARGIN;
|
|
237
|
+
const layerOrder = reversed ? [...layers].reverse() : layers;
|
|
238
|
+
const sizeOrder = reversed ? [...layerSizes].reverse() : layerSizes;
|
|
239
|
+
for (let li = 0; li < layerOrder.length; li++) {
|
|
240
|
+
const layer = layerOrder[li];
|
|
241
|
+
const layerSize = sizeOrder[li];
|
|
242
|
+
// Center this layer's nodes
|
|
243
|
+
const crossExtent = layerCrossExtents[reversed ? layerOrder.length - 1 - li : li] ?? 0;
|
|
244
|
+
let crossOffset = MARGIN + (maxCrossExtent - crossExtent) / 2;
|
|
245
|
+
for (let ni = 0; ni < layer.length; ni++) {
|
|
246
|
+
const id = layer[ni];
|
|
247
|
+
const dims = nodeDims.get(id);
|
|
248
|
+
const primaryOffset = reversed ? (horizontal ? layerSize - dims.w : layerSize - dims.h) : 0;
|
|
249
|
+
// Add extra gap at cluster/non-cluster boundary
|
|
250
|
+
if (ni > 0 && clusterMap && clusterMap.size > 0) {
|
|
251
|
+
const prevCluster = clusterMap.get(layer[ni - 1]);
|
|
252
|
+
const currCluster = clusterMap.get(id);
|
|
253
|
+
if (prevCluster !== currCluster &&
|
|
254
|
+
(prevCluster !== undefined || currCluster !== undefined)) {
|
|
255
|
+
crossOffset += CLUSTER_GROUP_GAP;
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
if (horizontal) {
|
|
259
|
+
positions.set(id, {
|
|
260
|
+
x: layerOffset + primaryOffset,
|
|
261
|
+
y: crossOffset
|
|
262
|
+
});
|
|
263
|
+
crossOffset += dims.h + nodeGap;
|
|
264
|
+
}
|
|
265
|
+
else {
|
|
266
|
+
positions.set(id, {
|
|
267
|
+
x: crossOffset,
|
|
268
|
+
y: layerOffset + primaryOffset
|
|
269
|
+
});
|
|
270
|
+
crossOffset += dims.w + nodeGap;
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
layerOffset += layerSize + layerGap;
|
|
274
|
+
}
|
|
275
|
+
return positions;
|
|
276
|
+
}
|
|
277
|
+
/** Count how many cluster/non-cluster boundaries exist in a layer ordering */
|
|
278
|
+
function countClusterBoundaries(layer, clusterMap) {
|
|
279
|
+
let count = 0;
|
|
280
|
+
for (let i = 1; i < layer.length; i++) {
|
|
281
|
+
const prevCluster = clusterMap.get(layer[i - 1]);
|
|
282
|
+
const currCluster = clusterMap.get(layer[i]);
|
|
283
|
+
if (prevCluster !== currCluster && (prevCluster !== undefined || currCluster !== undefined)) {
|
|
284
|
+
count++;
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
return count;
|
|
288
|
+
}
|
|
289
|
+
// ── Cluster Bounds ─────────────────────────────────────────
|
|
290
|
+
function computeClusterBounds(config, positions, nodeDims, padding) {
|
|
291
|
+
if (!config.clusters)
|
|
292
|
+
return [];
|
|
293
|
+
return config.clusters.map((cluster) => {
|
|
294
|
+
let minX = Infinity, minY = Infinity, maxX = -Infinity, maxY = -Infinity;
|
|
295
|
+
for (const nodeId of cluster.nodes) {
|
|
296
|
+
const pos = positions.get(nodeId);
|
|
297
|
+
const dims = nodeDims.get(nodeId);
|
|
298
|
+
if (!pos || !dims)
|
|
299
|
+
continue;
|
|
300
|
+
minX = Math.min(minX, pos.x);
|
|
301
|
+
minY = Math.min(minY, pos.y);
|
|
302
|
+
maxX = Math.max(maxX, pos.x + dims.w);
|
|
303
|
+
maxY = Math.max(maxY, pos.y + dims.h);
|
|
304
|
+
}
|
|
305
|
+
if (minX === Infinity) {
|
|
306
|
+
return {
|
|
307
|
+
id: cluster.id,
|
|
308
|
+
x: 0,
|
|
309
|
+
y: 0,
|
|
310
|
+
width: 0,
|
|
311
|
+
height: 0,
|
|
312
|
+
label: cluster.label,
|
|
313
|
+
color: cluster.color || 'neutral',
|
|
314
|
+
dashed: cluster.dashed ?? true
|
|
315
|
+
};
|
|
316
|
+
}
|
|
317
|
+
// Add space for label above
|
|
318
|
+
const labelPad = cluster.label ? 24 : 0;
|
|
319
|
+
return {
|
|
320
|
+
id: cluster.id,
|
|
321
|
+
x: minX - padding,
|
|
322
|
+
y: minY - padding - labelPad,
|
|
323
|
+
width: maxX - minX + padding * 2,
|
|
324
|
+
height: maxY - minY + padding * 2 + labelPad,
|
|
325
|
+
label: cluster.label,
|
|
326
|
+
color: cluster.color || 'neutral',
|
|
327
|
+
dashed: cluster.dashed ?? true
|
|
328
|
+
};
|
|
329
|
+
});
|
|
330
|
+
}
|
|
331
|
+
// ── Annotations ────────────────────────────────────────────
|
|
332
|
+
const ANNOTATION_CHAR_WIDTH = 6;
|
|
333
|
+
const ANNOTATION_HEIGHT = 14;
|
|
334
|
+
const ANNOTATION_COLLISION_PAD = 20;
|
|
335
|
+
function resolveAnnotations(config, positions, nodeDims) {
|
|
336
|
+
if (!config.annotations)
|
|
337
|
+
return [];
|
|
338
|
+
const resolved = config.annotations.map((ann) => {
|
|
339
|
+
let x, y;
|
|
340
|
+
if (typeof ann.anchor === 'string') {
|
|
341
|
+
const pos = positions.get(ann.anchor);
|
|
342
|
+
const dims = nodeDims.get(ann.anchor);
|
|
343
|
+
if (pos && dims) {
|
|
344
|
+
x = pos.x + dims.w / 2;
|
|
345
|
+
y = pos.y - 12;
|
|
346
|
+
}
|
|
347
|
+
else {
|
|
348
|
+
x = 0;
|
|
349
|
+
y = 0;
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
else {
|
|
353
|
+
x = ann.anchor.x;
|
|
354
|
+
y = ann.anchor.y;
|
|
355
|
+
}
|
|
356
|
+
return {
|
|
357
|
+
text: ann.text,
|
|
358
|
+
x: x + (ann.offset?.dx ?? 0),
|
|
359
|
+
y: y + (ann.offset?.dy ?? 0),
|
|
360
|
+
color: ann.color || 'neutral'
|
|
361
|
+
};
|
|
362
|
+
});
|
|
363
|
+
// Collision avoidance: check annotations against nodes and other annotations
|
|
364
|
+
for (let i = 0; i < resolved.length; i++) {
|
|
365
|
+
const ann = resolved[i];
|
|
366
|
+
const annW = ann.text.length * ANNOTATION_CHAR_WIDTH;
|
|
367
|
+
const annH = ANNOTATION_HEIGHT;
|
|
368
|
+
// Check against all nodes — shift upward if overlapping
|
|
369
|
+
let shifted = true;
|
|
370
|
+
let maxIter = 10; // prevent infinite loop
|
|
371
|
+
while (shifted && maxIter-- > 0) {
|
|
372
|
+
shifted = false;
|
|
373
|
+
for (const [nodeId, pos] of positions) {
|
|
374
|
+
const dims = nodeDims.get(nodeId);
|
|
375
|
+
if (!dims)
|
|
376
|
+
continue;
|
|
377
|
+
// Check overlap with padding
|
|
378
|
+
if (ann.x + annW > pos.x - ANNOTATION_COLLISION_PAD &&
|
|
379
|
+
ann.x < pos.x + dims.w + ANNOTATION_COLLISION_PAD &&
|
|
380
|
+
ann.y + annH > pos.y - ANNOTATION_COLLISION_PAD &&
|
|
381
|
+
ann.y < pos.y + dims.h + ANNOTATION_COLLISION_PAD) {
|
|
382
|
+
// Shift annotation above the node
|
|
383
|
+
ann.y = pos.y - ANNOTATION_COLLISION_PAD - annH;
|
|
384
|
+
shifted = true;
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
// Check against previously placed annotations
|
|
389
|
+
for (let j = 0; j < i; j++) {
|
|
390
|
+
const other = resolved[j];
|
|
391
|
+
const otherW = other.text.length * ANNOTATION_CHAR_WIDTH;
|
|
392
|
+
const otherH = ANNOTATION_HEIGHT;
|
|
393
|
+
if (ann.x + annW > other.x - ANNOTATION_COLLISION_PAD &&
|
|
394
|
+
ann.x < other.x + otherW + ANNOTATION_COLLISION_PAD &&
|
|
395
|
+
ann.y + annH > other.y - ANNOTATION_COLLISION_PAD &&
|
|
396
|
+
ann.y < other.y + otherH + ANNOTATION_COLLISION_PAD) {
|
|
397
|
+
// Shift this annotation above the other
|
|
398
|
+
ann.y = other.y - ANNOTATION_COLLISION_PAD - annH;
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
return resolved;
|
|
403
|
+
}
|
|
404
|
+
// ── Layered Layout (main entry) ────────────────────────────
|
|
405
|
+
function layoutLayered(config) {
|
|
406
|
+
const direction = config.direction || 'TB';
|
|
407
|
+
const nodeGap = config.spacing?.nodeGap ?? DEFAULT_NODE_GAP;
|
|
408
|
+
const layerGap = config.spacing?.layerGap ?? DEFAULT_LAYER_GAP;
|
|
409
|
+
const clusterPadding = config.spacing?.clusterPadding ?? DEFAULT_CLUSTER_PADDING;
|
|
410
|
+
const nodeIds = config.nodes.map((n) => n.id);
|
|
411
|
+
const nodeDims = buildNodeDims(config.nodes);
|
|
412
|
+
// Build cluster membership map: nodeId -> clusterId
|
|
413
|
+
const clusterMap = buildClusterMap(config);
|
|
414
|
+
// Build graph and sort
|
|
415
|
+
const graph = buildGraph(nodeIds, config.edges);
|
|
416
|
+
// Assign layers
|
|
417
|
+
const layerMap = assignLayers(graph.order, graph.adjacencyOut);
|
|
418
|
+
// Group by layer
|
|
419
|
+
const maxLayer = Math.max(0, ...layerMap.values());
|
|
420
|
+
const layers = Array.from({ length: maxLayer + 1 }, () => []);
|
|
421
|
+
for (const id of graph.order) {
|
|
422
|
+
layers[layerMap.get(id)].push(id);
|
|
423
|
+
}
|
|
424
|
+
// Order within layers (cluster-aware)
|
|
425
|
+
const orderedLayers = orderWithinLayers(layers, graph.adjacencyOut, graph.adjacencyIn, clusterMap);
|
|
426
|
+
// Assign coordinates (cluster-aware gaps)
|
|
427
|
+
const positions = assignCoordinates(orderedLayers, nodeDims, direction, nodeGap, layerGap, clusterMap);
|
|
428
|
+
// Build positioned nodes
|
|
429
|
+
const positionedNodes = buildPositionedNodes(config.nodes, positions, nodeDims);
|
|
430
|
+
// Compute clusters
|
|
431
|
+
const clusters = computeClusterBounds(config, positions, nodeDims, clusterPadding);
|
|
432
|
+
// Compute edges
|
|
433
|
+
const positionedEdges = computeEdgePaths(config.edges, positions, nodeDims, direction);
|
|
434
|
+
// Compute annotations
|
|
435
|
+
const annotations = resolveAnnotations(config, positions, nodeDims);
|
|
436
|
+
// Compute viewBox with full bounds coverage
|
|
437
|
+
let minX = Infinity, minY = Infinity, maxX = -Infinity, maxY = -Infinity;
|
|
438
|
+
// Include all node bounds
|
|
439
|
+
for (const n of positionedNodes) {
|
|
440
|
+
minX = Math.min(minX, n.x);
|
|
441
|
+
minY = Math.min(minY, n.y);
|
|
442
|
+
maxX = Math.max(maxX, n.x + n.width);
|
|
443
|
+
maxY = Math.max(maxY, n.y + n.height);
|
|
444
|
+
}
|
|
445
|
+
// Include all cluster bounds
|
|
446
|
+
for (const c of clusters) {
|
|
447
|
+
minX = Math.min(minX, c.x);
|
|
448
|
+
minY = Math.min(minY, c.y);
|
|
449
|
+
maxX = Math.max(maxX, c.x + c.width);
|
|
450
|
+
maxY = Math.max(maxY, c.y + c.height);
|
|
451
|
+
}
|
|
452
|
+
// Include annotation positions (estimated text width)
|
|
453
|
+
for (const ann of annotations) {
|
|
454
|
+
const annW = ann.text.length * ANNOTATION_CHAR_WIDTH;
|
|
455
|
+
minX = Math.min(minX, ann.x);
|
|
456
|
+
minY = Math.min(minY, ann.y - ANNOTATION_HEIGHT);
|
|
457
|
+
maxX = Math.max(maxX, ann.x + annW);
|
|
458
|
+
maxY = Math.max(maxY, ann.y);
|
|
459
|
+
}
|
|
460
|
+
// Include edge label positions (estimated text width)
|
|
461
|
+
for (const e of positionedEdges) {
|
|
462
|
+
if (e.label) {
|
|
463
|
+
const labelW = e.label.length * 5;
|
|
464
|
+
minX = Math.min(minX, e.labelX - labelW / 2);
|
|
465
|
+
minY = Math.min(minY, e.labelY - 7);
|
|
466
|
+
maxX = Math.max(maxX, e.labelX + labelW / 2);
|
|
467
|
+
maxY = Math.max(maxY, e.labelY + 7);
|
|
468
|
+
}
|
|
469
|
+
}
|
|
470
|
+
// Handle empty diagram
|
|
471
|
+
if (minX === Infinity) {
|
|
472
|
+
minX = 0;
|
|
473
|
+
minY = 0;
|
|
474
|
+
maxX = MARGIN * 2;
|
|
475
|
+
maxY = MARGIN * 2;
|
|
476
|
+
}
|
|
477
|
+
// Shift everything so all coordinates are non-negative
|
|
478
|
+
const shiftX = minX < 0 ? -minX + MARGIN : 0;
|
|
479
|
+
const shiftY = minY < 0 ? -minY + MARGIN : 0;
|
|
480
|
+
if (shiftX > 0 || shiftY > 0) {
|
|
481
|
+
shiftAllPositions(positionedNodes, clusters, annotations, positionedEdges, shiftX, shiftY);
|
|
482
|
+
maxX += shiftX;
|
|
483
|
+
maxY += shiftY;
|
|
484
|
+
}
|
|
485
|
+
return {
|
|
486
|
+
nodes: positionedNodes,
|
|
487
|
+
edges: positionedEdges,
|
|
488
|
+
clusters,
|
|
489
|
+
swimlanes: [],
|
|
490
|
+
regions: [],
|
|
491
|
+
annotations,
|
|
492
|
+
messages: [],
|
|
493
|
+
lifelines: [],
|
|
494
|
+
positionedFragments: [],
|
|
495
|
+
viewBox: { width: maxX + MARGIN, height: maxY + MARGIN }
|
|
496
|
+
};
|
|
497
|
+
}
|
|
498
|
+
// ── Swimlane Layout ────────────────────────────────────────
|
|
499
|
+
function layoutSwimlane(config) {
|
|
500
|
+
const nodeGap = config.spacing?.nodeGap ?? 32;
|
|
501
|
+
const lanes = config.swimlanes || [];
|
|
502
|
+
const nodeDims = buildNodeDims(config.nodes);
|
|
503
|
+
const headerHeight = 50;
|
|
504
|
+
// Assign lanes
|
|
505
|
+
const laneMap = new Map();
|
|
506
|
+
for (let i = 0; i < lanes.length; i++) {
|
|
507
|
+
for (const nid of lanes[i].nodes) {
|
|
508
|
+
laneMap.set(nid, i);
|
|
509
|
+
}
|
|
510
|
+
}
|
|
511
|
+
// Compute dynamic lane widths: max(180, widest node in lane + 40)
|
|
512
|
+
const laneWidths = lanes.map((lane) => {
|
|
513
|
+
let maxW = 0;
|
|
514
|
+
for (const nid of lane.nodes) {
|
|
515
|
+
const dims = nodeDims.get(nid);
|
|
516
|
+
if (dims)
|
|
517
|
+
maxW = Math.max(maxW, dims.w);
|
|
518
|
+
}
|
|
519
|
+
return Math.max(180, maxW + 40);
|
|
520
|
+
});
|
|
521
|
+
// Compute lane start X offsets
|
|
522
|
+
const laneStartX = [];
|
|
523
|
+
let laneX = MARGIN;
|
|
524
|
+
for (let i = 0; i < laneWidths.length; i++) {
|
|
525
|
+
laneStartX.push(laneX);
|
|
526
|
+
laneX += laneWidths[i];
|
|
527
|
+
}
|
|
528
|
+
// Topological order for Y positions
|
|
529
|
+
const nodeIds = config.nodes.map((n) => n.id);
|
|
530
|
+
const graph = buildGraph(nodeIds, config.edges);
|
|
531
|
+
// Assign Y positions sequentially
|
|
532
|
+
const positions = new Map();
|
|
533
|
+
let currentY = MARGIN + headerHeight + 20;
|
|
534
|
+
for (const id of graph.order) {
|
|
535
|
+
const laneIdx = laneMap.get(id) ?? 0;
|
|
536
|
+
const dims = nodeDims.get(id);
|
|
537
|
+
const lw = laneWidths[laneIdx] ?? 180;
|
|
538
|
+
const startX = laneStartX[laneIdx] ?? MARGIN;
|
|
539
|
+
const x = startX + (lw - dims.w) / 2;
|
|
540
|
+
positions.set(id, { x, y: currentY });
|
|
541
|
+
currentY += dims.h + nodeGap;
|
|
542
|
+
}
|
|
543
|
+
const totalHeight = currentY + MARGIN;
|
|
544
|
+
const totalWidth = MARGIN + laneX;
|
|
545
|
+
const positionedNodes = buildPositionedNodes(config.nodes, positions, nodeDims);
|
|
546
|
+
// Build swimlane positioned data
|
|
547
|
+
const positionedSwimlanes = lanes.map((lane, i) => ({
|
|
548
|
+
id: lane.id,
|
|
549
|
+
label: lane.label,
|
|
550
|
+
x: laneStartX[i],
|
|
551
|
+
lineX: laneStartX[i] + laneWidths[i] / 2,
|
|
552
|
+
headerY: MARGIN,
|
|
553
|
+
footerY: totalHeight - MARGIN,
|
|
554
|
+
lineY1: MARGIN + headerHeight,
|
|
555
|
+
lineY2: totalHeight - MARGIN,
|
|
556
|
+
color: lane.color || 'neutral'
|
|
557
|
+
}));
|
|
558
|
+
// Edges: horizontal arrows between lanes
|
|
559
|
+
const positionedEdges = computeSwimEdgePaths(config.edges, positions, nodeDims, laneMap, laneWidths[0] ?? 180);
|
|
560
|
+
// Regions
|
|
561
|
+
const positionedRegions = (config.regions || []).map((region) => {
|
|
562
|
+
let minY = Infinity, maxY = -Infinity;
|
|
563
|
+
let minLane = Infinity, maxLane = -Infinity;
|
|
564
|
+
for (const nid of region.contains) {
|
|
565
|
+
const pos = positions.get(nid);
|
|
566
|
+
const dims = nodeDims.get(nid);
|
|
567
|
+
const laneIdx = laneMap.get(nid);
|
|
568
|
+
if (pos && dims) {
|
|
569
|
+
minY = Math.min(minY, pos.y);
|
|
570
|
+
maxY = Math.max(maxY, pos.y + dims.h);
|
|
571
|
+
}
|
|
572
|
+
if (laneIdx !== undefined) {
|
|
573
|
+
minLane = Math.min(minLane, laneIdx);
|
|
574
|
+
maxLane = Math.max(maxLane, laneIdx);
|
|
575
|
+
}
|
|
576
|
+
}
|
|
577
|
+
if (minY === Infinity) {
|
|
578
|
+
return {
|
|
579
|
+
id: region.id,
|
|
580
|
+
x: 0,
|
|
581
|
+
y: 0,
|
|
582
|
+
width: 0,
|
|
583
|
+
height: 0,
|
|
584
|
+
label: region.label,
|
|
585
|
+
color: region.color || 'neutral',
|
|
586
|
+
dashed: region.dashed ?? true
|
|
587
|
+
};
|
|
588
|
+
}
|
|
589
|
+
const pad = 16;
|
|
590
|
+
const regionX = laneStartX[minLane] - pad;
|
|
591
|
+
let regionEndX = laneStartX[maxLane] + laneWidths[maxLane] + pad;
|
|
592
|
+
return {
|
|
593
|
+
id: region.id,
|
|
594
|
+
x: regionX,
|
|
595
|
+
y: minY - pad - 20,
|
|
596
|
+
width: regionEndX - regionX,
|
|
597
|
+
height: maxY - minY + pad * 2 + 20,
|
|
598
|
+
label: region.label,
|
|
599
|
+
color: region.color || 'neutral',
|
|
600
|
+
dashed: region.dashed ?? true
|
|
601
|
+
};
|
|
602
|
+
});
|
|
603
|
+
// Annotations
|
|
604
|
+
const annotations = resolveAnnotations(config, positions, nodeDims);
|
|
605
|
+
// Compute viewBox with full bounds coverage
|
|
606
|
+
let minX = Infinity, minY = Infinity, maxViewX = -Infinity, maxViewY = -Infinity;
|
|
607
|
+
for (const n of positionedNodes) {
|
|
608
|
+
minX = Math.min(minX, n.x);
|
|
609
|
+
minY = Math.min(minY, n.y);
|
|
610
|
+
maxViewX = Math.max(maxViewX, n.x + n.width);
|
|
611
|
+
maxViewY = Math.max(maxViewY, n.y + n.height);
|
|
612
|
+
}
|
|
613
|
+
// Include swimlane headers
|
|
614
|
+
for (let si = 0; si < positionedSwimlanes.length; si++) {
|
|
615
|
+
const sl = positionedSwimlanes[si];
|
|
616
|
+
minX = Math.min(minX, sl.x);
|
|
617
|
+
minY = Math.min(minY, sl.headerY);
|
|
618
|
+
maxViewX = Math.max(maxViewX, sl.x + (laneWidths[si] ?? 180));
|
|
619
|
+
maxViewY = Math.max(maxViewY, sl.lineY2);
|
|
620
|
+
}
|
|
621
|
+
// Include annotation positions
|
|
622
|
+
for (const ann of annotations) {
|
|
623
|
+
const annW = ann.text.length * ANNOTATION_CHAR_WIDTH;
|
|
624
|
+
minX = Math.min(minX, ann.x);
|
|
625
|
+
minY = Math.min(minY, ann.y - ANNOTATION_HEIGHT);
|
|
626
|
+
maxViewX = Math.max(maxViewX, ann.x + annW);
|
|
627
|
+
maxViewY = Math.max(maxViewY, ann.y);
|
|
628
|
+
}
|
|
629
|
+
// Include edge labels
|
|
630
|
+
for (const e of positionedEdges) {
|
|
631
|
+
if (e.label) {
|
|
632
|
+
const labelW = e.label.length * 5;
|
|
633
|
+
minX = Math.min(minX, e.labelX - labelW / 2);
|
|
634
|
+
minY = Math.min(minY, e.labelY - 7);
|
|
635
|
+
maxViewX = Math.max(maxViewX, e.labelX + labelW / 2);
|
|
636
|
+
maxViewY = Math.max(maxViewY, e.labelY + 7);
|
|
637
|
+
}
|
|
638
|
+
}
|
|
639
|
+
// Include regions
|
|
640
|
+
for (const r of positionedRegions) {
|
|
641
|
+
minX = Math.min(minX, r.x);
|
|
642
|
+
minY = Math.min(minY, r.y);
|
|
643
|
+
maxViewX = Math.max(maxViewX, r.x + r.width);
|
|
644
|
+
maxViewY = Math.max(maxViewY, r.y + r.height);
|
|
645
|
+
}
|
|
646
|
+
// Handle empty diagram
|
|
647
|
+
if (minX === Infinity) {
|
|
648
|
+
minX = 0;
|
|
649
|
+
minY = 0;
|
|
650
|
+
maxViewX = totalWidth;
|
|
651
|
+
maxViewY = totalHeight;
|
|
652
|
+
}
|
|
653
|
+
// Shift everything so all coordinates are non-negative
|
|
654
|
+
const shiftX = minX < 0 ? -minX + MARGIN : 0;
|
|
655
|
+
const shiftY = minY < 0 ? -minY + MARGIN : 0;
|
|
656
|
+
if (shiftX > 0 || shiftY > 0) {
|
|
657
|
+
shiftAllPositions(positionedNodes, [], annotations, positionedEdges, shiftX, shiftY);
|
|
658
|
+
// Also shift swimlanes and regions
|
|
659
|
+
for (const sl of positionedSwimlanes) {
|
|
660
|
+
sl.x += shiftX;
|
|
661
|
+
sl.lineX += shiftX;
|
|
662
|
+
sl.headerY += shiftY;
|
|
663
|
+
sl.lineY1 += shiftY;
|
|
664
|
+
sl.lineY2 += shiftY;
|
|
665
|
+
}
|
|
666
|
+
for (const r of positionedRegions) {
|
|
667
|
+
r.x += shiftX;
|
|
668
|
+
r.y += shiftY;
|
|
669
|
+
}
|
|
670
|
+
maxViewX += shiftX;
|
|
671
|
+
maxViewY += shiftY;
|
|
672
|
+
}
|
|
673
|
+
return {
|
|
674
|
+
nodes: positionedNodes,
|
|
675
|
+
edges: positionedEdges,
|
|
676
|
+
clusters: [],
|
|
677
|
+
swimlanes: positionedSwimlanes,
|
|
678
|
+
regions: positionedRegions,
|
|
679
|
+
annotations,
|
|
680
|
+
messages: [],
|
|
681
|
+
lifelines: [],
|
|
682
|
+
positionedFragments: [],
|
|
683
|
+
viewBox: {
|
|
684
|
+
width: Math.max(totalWidth, maxViewX + MARGIN),
|
|
685
|
+
height: Math.max(totalHeight, maxViewY + MARGIN)
|
|
686
|
+
}
|
|
687
|
+
};
|
|
688
|
+
}
|
|
689
|
+
// ── Shared Helpers ─────────────────────────────────────────
|
|
690
|
+
/** Build a map from nodeId -> clusterId for cluster-aware ordering */
|
|
691
|
+
function buildClusterMap(config) {
|
|
692
|
+
const map = new Map();
|
|
693
|
+
if (!config.clusters)
|
|
694
|
+
return map;
|
|
695
|
+
for (const cluster of config.clusters) {
|
|
696
|
+
for (const nodeId of cluster.nodes) {
|
|
697
|
+
map.set(nodeId, cluster.id);
|
|
698
|
+
}
|
|
699
|
+
}
|
|
700
|
+
return map;
|
|
701
|
+
}
|
|
702
|
+
/** Shift all positioned elements by (dx, dy) to ensure non-negative coordinates */
|
|
703
|
+
function shiftAllPositions(nodes, clusters, annotations, edges, dx, dy) {
|
|
704
|
+
for (const n of nodes) {
|
|
705
|
+
n.x += dx;
|
|
706
|
+
n.y += dy;
|
|
707
|
+
}
|
|
708
|
+
for (const c of clusters) {
|
|
709
|
+
c.x += dx;
|
|
710
|
+
c.y += dy;
|
|
711
|
+
}
|
|
712
|
+
for (const a of annotations) {
|
|
713
|
+
a.x += dx;
|
|
714
|
+
a.y += dy;
|
|
715
|
+
}
|
|
716
|
+
for (const e of edges) {
|
|
717
|
+
e.labelX += dx;
|
|
718
|
+
e.labelY += dy;
|
|
719
|
+
// Shift SVG path coordinates
|
|
720
|
+
e.path = shiftSvgPath(e.path, dx, dy);
|
|
721
|
+
}
|
|
722
|
+
}
|
|
723
|
+
/** Shift all absolute coordinates in an SVG path string by (dx, dy) */
|
|
724
|
+
function shiftSvgPath(path, dx, dy) {
|
|
725
|
+
// Match SVG path commands and their coordinate pairs
|
|
726
|
+
// This handles M, L, C, Q, S, T commands with absolute coords
|
|
727
|
+
return path.replace(/([MLCSQT])\s*([-\d.]+)\s+([-\d.]+)/gi, (_match, cmd, x, y) => {
|
|
728
|
+
const upper = cmd.toUpperCase();
|
|
729
|
+
// Only shift absolute commands (uppercase)
|
|
730
|
+
if (cmd === upper) {
|
|
731
|
+
return `${cmd} ${parseFloat(x) + dx} ${parseFloat(y) + dy}`;
|
|
732
|
+
}
|
|
733
|
+
return `${cmd} ${x} ${y}`;
|
|
734
|
+
});
|
|
735
|
+
}
|
|
736
|
+
function buildNodeDims(nodes) {
|
|
737
|
+
const dims = new Map();
|
|
738
|
+
for (const node of nodes) {
|
|
739
|
+
const w = node.width ?? estimateNodeWidth(node.label, node.description);
|
|
740
|
+
const h = node.height ?? (node.description ? DESC_NODE_HEIGHT : DEFAULT_NODE_HEIGHT);
|
|
741
|
+
dims.set(node.id, { w, h });
|
|
742
|
+
}
|
|
743
|
+
return dims;
|
|
744
|
+
}
|
|
745
|
+
function buildPositionedNodes(nodes, positions, nodeDims) {
|
|
746
|
+
return nodes.map((node) => {
|
|
747
|
+
const pos = positions.get(node.id) || { x: 0, y: 0 };
|
|
748
|
+
const dims = nodeDims.get(node.id);
|
|
749
|
+
return {
|
|
750
|
+
id: node.id,
|
|
751
|
+
x: pos.x,
|
|
752
|
+
y: pos.y,
|
|
753
|
+
width: dims.w,
|
|
754
|
+
height: dims.h,
|
|
755
|
+
label: node.label,
|
|
756
|
+
description: node.description,
|
|
757
|
+
icon: node.icon,
|
|
758
|
+
variant: node.variant || 'default',
|
|
759
|
+
color: node.color || 'neutral',
|
|
760
|
+
state: node.state || 'default'
|
|
761
|
+
};
|
|
762
|
+
});
|
|
763
|
+
}
|
|
764
|
+
// ── Swimlane Edge Paths ────────────────────────────────────
|
|
765
|
+
function computeSwimEdgePaths(edges, positions, nodeDims, laneMap, laneWidth) {
|
|
766
|
+
return edges.map((edge) => {
|
|
767
|
+
const fromPos = positions.get(edge.from);
|
|
768
|
+
const toPos = positions.get(edge.to);
|
|
769
|
+
const fromDims = nodeDims.get(edge.from);
|
|
770
|
+
const toDims = nodeDims.get(edge.to);
|
|
771
|
+
if (!fromPos || !toPos || !fromDims || !toDims) {
|
|
772
|
+
return emptyEdge(edge);
|
|
773
|
+
}
|
|
774
|
+
const fromLane = laneMap.get(edge.from) ?? 0;
|
|
775
|
+
const toLane = laneMap.get(edge.to) ?? 0;
|
|
776
|
+
let path;
|
|
777
|
+
let labelX;
|
|
778
|
+
let labelY;
|
|
779
|
+
if (fromLane === toLane) {
|
|
780
|
+
// Same lane: vertical arrow
|
|
781
|
+
const cx = fromPos.x + fromDims.w / 2;
|
|
782
|
+
const y1 = fromPos.y + fromDims.h;
|
|
783
|
+
const y2 = toPos.y;
|
|
784
|
+
path = `M ${cx} ${y1} L ${cx} ${y2}`;
|
|
785
|
+
labelX = cx + 10;
|
|
786
|
+
labelY = (y1 + y2) / 2;
|
|
787
|
+
}
|
|
788
|
+
else {
|
|
789
|
+
// Cross-lane: horizontal arrow at midpoint Y
|
|
790
|
+
const midY = fromPos.y + fromDims.h / 2;
|
|
791
|
+
const x1 = fromLane < toLane ? fromPos.x + fromDims.w : fromPos.x;
|
|
792
|
+
const x2 = fromLane < toLane ? toPos.x : toPos.x + toDims.w;
|
|
793
|
+
path = `M ${x1} ${midY} L ${x2} ${midY}`;
|
|
794
|
+
labelX = (x1 + x2) / 2;
|
|
795
|
+
labelY = midY - 8;
|
|
796
|
+
}
|
|
797
|
+
return {
|
|
798
|
+
from: edge.from,
|
|
799
|
+
to: edge.to,
|
|
800
|
+
path,
|
|
801
|
+
label: edge.label,
|
|
802
|
+
labelX,
|
|
803
|
+
labelY,
|
|
804
|
+
arrow: edge.arrow || 'end',
|
|
805
|
+
dashed: edge.dashed || false,
|
|
806
|
+
color: edge.color || 'neutral'
|
|
807
|
+
};
|
|
808
|
+
});
|
|
809
|
+
}
|
|
810
|
+
// ── Public API ─────────────────────────────────────────────
|
|
811
|
+
// ── Sequence Layout ───────────────────────────────────────
|
|
812
|
+
const SEQ_ACTOR_GAP = 180;
|
|
813
|
+
const SEQ_MESSAGE_GAP = 40;
|
|
814
|
+
const SEQ_ACTOR_BOX_HEIGHT = 36;
|
|
815
|
+
const SEQ_TOP_MARGIN = 40;
|
|
816
|
+
const SEQ_SELF_LOOP_WIDTH = 30;
|
|
817
|
+
const SEQ_SELF_LOOP_HEIGHT = 24;
|
|
818
|
+
const SEQ_FRAGMENT_PAD_X = 20;
|
|
819
|
+
const SEQ_FRAGMENT_PAD_Y = 16;
|
|
820
|
+
const SEQ_FRAGMENT_TAG_HEIGHT = 20;
|
|
821
|
+
function layoutSequence(config) {
|
|
822
|
+
const actors = config.nodes;
|
|
823
|
+
const messages = config.messages || [];
|
|
824
|
+
const fragments = config.fragments || [];
|
|
825
|
+
// Position actors evenly across the x-axis
|
|
826
|
+
const actorXMap = new Map();
|
|
827
|
+
const actorColorMap = new Map();
|
|
828
|
+
for (let i = 0; i < actors.length; i++) {
|
|
829
|
+
const actor = actors[i];
|
|
830
|
+
const x = MARGIN + i * SEQ_ACTOR_GAP + SEQ_ACTOR_GAP / 2;
|
|
831
|
+
actorXMap.set(actor.id, x);
|
|
832
|
+
actorColorMap.set(actor.id, actor.color || 'neutral');
|
|
833
|
+
}
|
|
834
|
+
// Compute message Y positions (increment per message)
|
|
835
|
+
const messageStartY = SEQ_TOP_MARGIN + SEQ_ACTOR_BOX_HEIGHT + 30;
|
|
836
|
+
const messageYPositions = [];
|
|
837
|
+
let currentY = messageStartY;
|
|
838
|
+
for (let i = 0; i < messages.length; i++) {
|
|
839
|
+
const msg = messages[i];
|
|
840
|
+
messageYPositions.push(currentY);
|
|
841
|
+
const isSelf = msg.from === msg.to;
|
|
842
|
+
currentY += isSelf ? SEQ_MESSAGE_GAP + SEQ_SELF_LOOP_HEIGHT : SEQ_MESSAGE_GAP;
|
|
843
|
+
}
|
|
844
|
+
// Bottom of the diagram
|
|
845
|
+
const bottomY = currentY + 30 + SEQ_ACTOR_BOX_HEIGHT;
|
|
846
|
+
const totalHeight = bottomY + MARGIN;
|
|
847
|
+
const totalWidth = MARGIN * 2 + actors.length * SEQ_ACTOR_GAP;
|
|
848
|
+
// Build lifelines
|
|
849
|
+
const lifelines = actors.map((actor) => ({
|
|
850
|
+
id: actor.id,
|
|
851
|
+
label: actor.label,
|
|
852
|
+
x: actorXMap.get(actor.id),
|
|
853
|
+
topY: SEQ_TOP_MARGIN,
|
|
854
|
+
bottomY: bottomY,
|
|
855
|
+
color: (actor.color || 'neutral')
|
|
856
|
+
}));
|
|
857
|
+
// Build positioned messages
|
|
858
|
+
const positionedMessages = messages.map((msg, i) => {
|
|
859
|
+
const fromX = actorXMap.get(msg.from) ?? 0;
|
|
860
|
+
const toX = actorXMap.get(msg.to) ?? 0;
|
|
861
|
+
const y = messageYPositions[i] ?? messageStartY;
|
|
862
|
+
const isSelf = msg.from === msg.to;
|
|
863
|
+
let labelX;
|
|
864
|
+
let labelY;
|
|
865
|
+
if (isSelf) {
|
|
866
|
+
labelX = fromX + SEQ_SELF_LOOP_WIDTH + 8;
|
|
867
|
+
labelY = y + SEQ_SELF_LOOP_HEIGHT / 2;
|
|
868
|
+
}
|
|
869
|
+
else {
|
|
870
|
+
labelX = (fromX + toX) / 2;
|
|
871
|
+
labelY = y - 8;
|
|
872
|
+
}
|
|
873
|
+
return {
|
|
874
|
+
from: msg.from,
|
|
875
|
+
to: msg.to,
|
|
876
|
+
label: msg.label,
|
|
877
|
+
x1: fromX,
|
|
878
|
+
y,
|
|
879
|
+
x2: toX,
|
|
880
|
+
labelX,
|
|
881
|
+
labelY,
|
|
882
|
+
arrow: msg.arrow || 'end',
|
|
883
|
+
dashed: msg.dashed || false,
|
|
884
|
+
color: (msg.color || 'neutral'),
|
|
885
|
+
isSelf
|
|
886
|
+
};
|
|
887
|
+
});
|
|
888
|
+
// Build positioned fragments
|
|
889
|
+
const positionedFragments = fragments.map((frag) => {
|
|
890
|
+
if (frag.messages.length === 0) {
|
|
891
|
+
return {
|
|
892
|
+
id: frag.id,
|
|
893
|
+
label: frag.label,
|
|
894
|
+
condition: frag.condition,
|
|
895
|
+
x: 0,
|
|
896
|
+
y: 0,
|
|
897
|
+
width: 0,
|
|
898
|
+
height: 0,
|
|
899
|
+
color: (frag.color || 'neutral'),
|
|
900
|
+
dashed: frag.dashed ?? false
|
|
901
|
+
};
|
|
902
|
+
}
|
|
903
|
+
// Find bounds from contained messages
|
|
904
|
+
let minX = Infinity;
|
|
905
|
+
let maxX = -Infinity;
|
|
906
|
+
let minY = Infinity;
|
|
907
|
+
let maxY = -Infinity;
|
|
908
|
+
for (const msgIdx of frag.messages) {
|
|
909
|
+
if (msgIdx < 0 || msgIdx >= positionedMessages.length)
|
|
910
|
+
continue;
|
|
911
|
+
const msg = positionedMessages[msgIdx];
|
|
912
|
+
const leftX = Math.min(msg.x1, msg.x2);
|
|
913
|
+
const rightX = msg.isSelf ? msg.x1 + SEQ_SELF_LOOP_WIDTH : Math.max(msg.x1, msg.x2);
|
|
914
|
+
minX = Math.min(minX, leftX);
|
|
915
|
+
maxX = Math.max(maxX, rightX);
|
|
916
|
+
minY = Math.min(minY, msg.y);
|
|
917
|
+
maxY = Math.max(maxY, msg.isSelf ? msg.y + SEQ_SELF_LOOP_HEIGHT : msg.y);
|
|
918
|
+
}
|
|
919
|
+
if (minX === Infinity) {
|
|
920
|
+
return {
|
|
921
|
+
id: frag.id,
|
|
922
|
+
label: frag.label,
|
|
923
|
+
condition: frag.condition,
|
|
924
|
+
x: 0,
|
|
925
|
+
y: 0,
|
|
926
|
+
width: 0,
|
|
927
|
+
height: 0,
|
|
928
|
+
color: (frag.color || 'neutral'),
|
|
929
|
+
dashed: frag.dashed ?? false
|
|
930
|
+
};
|
|
931
|
+
}
|
|
932
|
+
return {
|
|
933
|
+
id: frag.id,
|
|
934
|
+
label: frag.label,
|
|
935
|
+
condition: frag.condition,
|
|
936
|
+
x: minX - SEQ_FRAGMENT_PAD_X,
|
|
937
|
+
y: minY - SEQ_FRAGMENT_PAD_Y - SEQ_FRAGMENT_TAG_HEIGHT,
|
|
938
|
+
width: maxX - minX + SEQ_FRAGMENT_PAD_X * 2,
|
|
939
|
+
height: maxY - minY + SEQ_FRAGMENT_PAD_Y * 2 + SEQ_FRAGMENT_TAG_HEIGHT,
|
|
940
|
+
color: (frag.color || 'neutral'),
|
|
941
|
+
dashed: frag.dashed ?? false
|
|
942
|
+
};
|
|
943
|
+
});
|
|
944
|
+
// Annotations
|
|
945
|
+
const positions = new Map();
|
|
946
|
+
const nodeDims = new Map();
|
|
947
|
+
for (const actor of actors) {
|
|
948
|
+
const x = actorXMap.get(actor.id);
|
|
949
|
+
positions.set(actor.id, { x: x - 60, y: SEQ_TOP_MARGIN });
|
|
950
|
+
nodeDims.set(actor.id, { w: 120, h: SEQ_ACTOR_BOX_HEIGHT });
|
|
951
|
+
}
|
|
952
|
+
const annotations = resolveAnnotations(config, positions, nodeDims);
|
|
953
|
+
return {
|
|
954
|
+
nodes: [],
|
|
955
|
+
edges: [],
|
|
956
|
+
clusters: [],
|
|
957
|
+
swimlanes: [],
|
|
958
|
+
regions: [],
|
|
959
|
+
annotations,
|
|
960
|
+
messages: positionedMessages,
|
|
961
|
+
lifelines,
|
|
962
|
+
positionedFragments,
|
|
963
|
+
viewBox: { width: totalWidth, height: totalHeight }
|
|
964
|
+
};
|
|
965
|
+
}
|
|
966
|
+
// ── Public API ─────────────────────────────────────────────
|
|
967
|
+
export function computeLayout(config) {
|
|
968
|
+
if (config.layout === 'sequence')
|
|
969
|
+
return layoutSequence(config);
|
|
970
|
+
if (config.layout === 'swimlane') {
|
|
971
|
+
return layoutSwimlane(config);
|
|
972
|
+
}
|
|
973
|
+
return layoutLayered(config);
|
|
974
|
+
}
|