@lavalogic/scoria 0.36.0 → 0.37.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Components/AccordionGroup.svelte +6 -2
- package/dist/Components/AccordionGroupButton.svelte +78 -78
- package/dist/Components/AccordionGroupButtonProps.d.ts +27 -8
- package/dist/Components/AccordionGroupProps.d.ts +10 -2
- package/dist/Components/Action.svelte +31 -33
- package/dist/Components/ActionProps.d.ts +23 -3
- package/dist/Components/AlertModal.svelte +90 -39
- package/dist/Components/AppointmentCalendar/AppointmentCalendar.svelte +1126 -0
- package/dist/Components/AppointmentCalendar/AppointmentCalendar.svelte.d.ts +4 -0
- package/dist/Components/AppointmentCalendar/AppointmentCalendarProps.d.ts +92 -0
- package/dist/Components/AppointmentCalendar/AppointmentCalendarProps.js +12 -0
- package/dist/Components/Base/BaseModal.svelte +172 -0
- package/dist/Components/Base/BaseModal.svelte.d.ts +4 -0
- package/dist/Components/Base/BaseModalProps.d.ts +73 -0
- package/dist/Components/Base/BaseModalProps.js +1 -0
- package/dist/Components/Base/ContextWrapper.svelte +37 -15
- package/dist/Components/Base/ContextWrapper.svelte.d.ts +24 -5
- package/dist/Components/Base/ContextWrapperProps.d.ts +22 -0
- package/dist/Components/Base/Pagination.svelte +70 -62
- package/dist/Components/Base/Pagination.svelte.d.ts +12 -2
- package/dist/Components/Base/PaginationProps.d.ts +60 -3
- package/dist/Components/Base/Snippets.svelte +7 -0
- package/dist/Components/Base/Snippets.svelte.d.ts +5 -1
- package/dist/Components/BigRadioSet.svelte +18 -9
- package/dist/Components/BigRadioSetProps.d.ts +17 -1
- package/dist/Components/Bubble.svelte +67 -34
- package/dist/Components/Bubble.svelte.d.ts +23 -2
- package/dist/Components/BubbleProps.d.ts +55 -4
- package/dist/Components/Button.svelte +50 -38
- package/dist/Components/ButtonProps.d.ts +66 -1
- package/dist/Components/Checkbox.svelte +57 -29
- package/dist/Components/Checkbox.svelte.d.ts +1 -12
- package/dist/Components/CheckboxProps.d.ts +27 -0
- package/dist/Components/CheckboxProps.js +1 -0
- package/dist/Components/CollapsibleCard.svelte +53 -22
- package/dist/Components/CollapsibleCardProps.d.ts +22 -1
- package/dist/Components/Contexts/ContextMenu.svelte +53 -32
- package/dist/Components/Contexts/ContextMenu.svelte.d.ts +26 -0
- package/dist/Components/Contexts/ContextMenuDivider.svelte +15 -7
- package/dist/Components/Contexts/ContextMenuDivider.svelte.d.ts +9 -0
- package/dist/Components/Contexts/ContextMenuOption.svelte +27 -18
- package/dist/Components/Contexts/ContextMenuOption.svelte.d.ts +12 -1
- package/dist/Components/Contexts/ContextMenuOptionProps.d.ts +34 -2
- package/dist/Components/Contexts/Toast.svelte +28 -4
- package/dist/Components/Contexts/Toast.svelte.d.ts +14 -0
- package/dist/Components/Contexts/ToastContainer.svelte +30 -11
- package/dist/Components/Contexts/ToastContainer.svelte.d.ts +14 -0
- package/dist/Components/Contexts/ToastProps.d.ts +14 -1
- package/dist/Components/Contexts/Tooltip.svelte +21 -10
- package/dist/Components/Contexts/Tooltip.svelte.d.ts +10 -0
- package/dist/Components/DataMatrixIcon.svelte +82 -11
- package/dist/Components/DataMatrixIconProps.d.ts +73 -1
- package/dist/Components/DateInput.svelte +64 -29
- package/dist/Components/DateInput.svelte.d.ts +1 -1
- package/dist/Components/DateOnlyInputProps.d.ts +31 -5
- package/dist/Components/DatePicker.svelte +96 -108
- package/dist/Components/DatePickerProps.d.ts +18 -1
- package/dist/Components/DateTimeInputProps.d.ts +30 -5
- package/dist/Components/DesktopModal.svelte +14 -43
- package/dist/Components/DesktopModalProps.d.ts +5 -4
- package/dist/Components/Dial.svelte +103 -41
- package/dist/Components/DialProps.d.ts +74 -2
- package/dist/Components/DimensionInput.svelte +50 -64
- package/dist/Components/DimensionInput.svelte.d.ts +1 -1
- package/dist/Components/DimensionInputProps.d.ts +39 -4
- package/dist/Components/DragMenu/DragMenuHolder.svelte +41 -29
- package/dist/Components/DragMenu/DragMenuHolderProps.d.ts +30 -1
- package/dist/Components/DragMenu/DraggableCard.svelte +44 -8
- package/dist/Components/DragMenu/DraggableCardProps.d.ts +27 -1
- package/dist/Components/FileCard.svelte +6 -2
- package/dist/Components/FileCardProps.d.ts +17 -1
- package/dist/Components/FileUpload.svelte +82 -42
- package/dist/Components/FileUploadProps.d.ts +34 -4
- package/dist/Components/GridInput.svelte +27 -17
- package/dist/Components/GridInput.svelte.d.ts +5 -5
- package/dist/Components/GridInputProps.d.ts +4 -1
- package/dist/Components/GridInputSet.svelte +12 -5
- package/dist/Components/GridInputSet.svelte.d.ts +5 -5
- package/dist/Components/GridInputSetProps.d.ts +4 -2
- package/dist/Components/HorizontalTabGroup.svelte +13 -11
- package/dist/Components/HorizontalTabGroupButton.svelte +16 -68
- package/dist/Components/HorizontalTabGroupProps.d.ts +15 -2
- package/dist/Components/Icon.svelte +62 -21
- package/dist/Components/IconProps.d.ts +54 -6
- package/dist/Components/Icons.d.ts +8 -0
- package/dist/Components/Icons.js +234 -215
- package/dist/Components/LoadingAnimation.svelte +18 -18
- package/dist/Components/LoadingAnimation.svelte.d.ts +1 -3
- package/dist/Components/LoadingAnimationProps.d.ts +16 -0
- package/dist/Components/LoadingAnimationProps.js +1 -0
- package/dist/Components/LoadingModal.svelte +18 -20
- package/dist/Components/LoadingModal.svelte.d.ts +1 -4
- package/dist/Components/LoadingModalProps.d.ts +17 -0
- package/dist/Components/LoadingModalProps.js +1 -0
- package/dist/Components/LoadingOverlay.svelte +11 -13
- package/dist/Components/LoadingOverlay.svelte.d.ts +1 -5
- package/dist/Components/LoadingOverlayProps.d.ts +28 -0
- package/dist/Components/LoadingOverlayProps.js +1 -0
- package/dist/Components/Modal.svelte +77 -82
- package/dist/Components/Modal.svelte.d.ts +1 -25
- package/dist/Components/ModalProps.d.ts +65 -0
- package/dist/Components/ModalProps.js +1 -0
- package/dist/Components/MultiSelect.svelte +88 -76
- package/dist/Components/MultiSelectCommonProps.d.ts +33 -4
- package/dist/Components/MultiSelectPropsAsObject.d.ts +5 -0
- package/dist/Components/MultiSelectPropsAsPrimitive.d.ts +6 -0
- package/dist/Components/Nav/CallbackButtonWithIcon.d.ts +22 -1
- package/dist/Components/Nav/Nav.svelte +35 -30
- package/dist/Components/Nav/Nav.svelte.d.ts +23 -2
- package/dist/Components/Nav/NavProps.d.ts +50 -3
- package/dist/Components/Nav/NavServiceMenuList.svelte +12 -3
- package/dist/Components/Nav/NavServiceMenuListProps.d.ts +25 -1
- package/dist/Components/Nav/NavTab.svelte +19 -48
- package/dist/Components/Nav/NavTab.svelte.d.ts +23 -2
- package/dist/Components/Nav/NavTabProps.d.ts +16 -2
- package/dist/Components/Nav/ServiceMenuItem.svelte +29 -20
- package/dist/Components/Nav/ServicesNav.svelte +60 -34
- package/dist/Components/Nav/ServicesNav.svelte.d.ts +23 -2
- package/dist/Components/Nav/ServicesNavProps.d.ts +20 -4
- package/dist/Components/Nav/SideMenuItemProps.d.ts +16 -0
- package/dist/Components/NumberInput.svelte +37 -27
- package/dist/Components/NumberInputProps.d.ts +37 -0
- package/dist/Components/PageHeading.svelte +2 -13
- package/dist/Components/PageHeading.svelte.d.ts +1 -6
- package/dist/Components/PageHeadingProps.d.ts +23 -0
- package/dist/Components/PageHeadingProps.js +1 -0
- package/dist/Components/PasswordInput.svelte +27 -15
- package/dist/Components/PasswordInput.svelte.d.ts +2 -2
- package/dist/Components/PasswordInputProps.d.ts +21 -0
- package/dist/Components/PasswordInputProps.js +1 -0
- package/dist/Components/Portal.svelte +14 -3
- package/dist/Components/PortalProps.d.ts +20 -1
- package/dist/Components/ProgressBubble.svelte +98 -53
- package/dist/Components/ProgressBubbleProps.d.ts +23 -2
- package/dist/Components/QuerySelect.svelte +103 -159
- package/dist/Components/QuerySelect.svelte.d.ts +2 -29
- package/dist/Components/QuerySelectProps.d.ts +66 -0
- package/dist/Components/QuerySelectProps.js +1 -0
- package/dist/Components/SingleSelect.svelte +86 -108
- package/dist/Components/SingleSelectCommonProps.d.ts +43 -5
- package/dist/Components/SingleSelectPropsAsObject.d.ts +7 -0
- package/dist/Components/SingleSelectPropsAsPrimitive.d.ts +8 -0
- package/dist/Components/StepButton.svelte +19 -69
- package/dist/Components/StepForm.svelte +52 -52
- package/dist/Components/StepFormProps.d.ts +16 -2
- package/dist/Components/Switch.svelte +68 -31
- package/dist/Components/Switch.svelte.d.ts +1 -1
- package/dist/Components/SwitchProps.d.ts +46 -0
- package/dist/Components/Table/Body/HeightData.d.ts +1 -6
- package/dist/Components/Table/Body/HeightData.js +8 -0
- package/dist/Components/Table/Body/QuickSearchCell.svelte +106 -50
- package/dist/Components/Table/Body/QuickSearchCell.svelte.d.ts +12 -11
- package/dist/Components/Table/Body/QuickSearchCellProps.d.ts +6 -0
- package/dist/Components/Table/Body/Rows/ColumnHighlight.svelte +43 -9
- package/dist/Components/Table/Body/Rows/ColumnHighlight.svelte.d.ts +24 -2
- package/dist/Components/Table/Body/Rows/ColumnHighlightProps.d.ts +3 -0
- package/dist/Components/Table/Body/Rows/ColumnList.svelte +15 -5
- package/dist/Components/Table/Body/Rows/ColumnList.svelte.d.ts +12 -11
- package/dist/Components/Table/Body/Rows/ColumnListProps.d.ts +1 -0
- package/dist/Components/Table/Body/Rows/ColumnListRow.svelte +424 -91
- package/dist/Components/Table/Body/Rows/ColumnListRow.svelte.d.ts +12 -11
- package/dist/Components/Table/Body/Rows/ColumnListRowProps.d.ts +5 -0
- package/dist/Components/Table/Body/Rows/Columns/AccessorComponent.svelte +43 -13
- package/dist/Components/Table/Body/Rows/Columns/AccessorComponentProps.d.ts +12 -0
- package/dist/Components/Table/Body/Rows/Columns/ActionsCell.svelte +50 -38
- package/dist/Components/Table/Body/Rows/Columns/ActionsCell.svelte.d.ts +12 -12
- package/dist/Components/Table/Body/Rows/Columns/ActionsColumn.d.ts +9 -0
- package/dist/Components/Table/Body/Rows/Columns/ActionsTableCell.d.ts +5 -0
- package/dist/Components/Table/Body/Rows/Columns/BubbleCell.svelte +61 -26
- package/dist/Components/Table/Body/Rows/Columns/BubbleCell.svelte.d.ts +14 -13
- package/dist/Components/Table/Body/Rows/Columns/BubbleCellProps.d.ts +12 -0
- package/dist/Components/Table/Body/Rows/Columns/BubbleCellProps.js +1 -0
- package/dist/Components/Table/Body/Rows/Columns/ExpandCell.svelte +36 -16
- package/dist/Components/Table/Body/Rows/Columns/FocusableImmutableCell.svelte +47 -24
- package/dist/Components/Table/Body/Rows/Columns/FocusableImmutableCell.svelte.d.ts +12 -11
- package/dist/Components/Table/Body/Rows/Columns/FocusableImmutableCellProps.d.ts +7 -0
- package/dist/Components/Table/Body/Rows/Columns/ProgressCell.svelte +54 -20
- package/dist/Components/Table/Body/Rows/Columns/ProgressCell.svelte.d.ts +17 -11
- package/dist/Components/Table/Body/Rows/Columns/RowSelectionColumn.d.ts +8 -0
- package/dist/Components/Table/Body/Rows/Columns/RowSelectionTableCell.d.ts +5 -0
- package/dist/Components/Table/Body/Rows/Columns/SelectColumn.d.ts +11 -0
- package/dist/Components/Table/Body/Rows/Columns/SelectTableCell.d.ts +11 -0
- package/dist/Components/Table/Body/Rows/Columns/TableAction.svelte +55 -40
- package/dist/Components/Table/Body/Rows/Columns/TableAction.svelte.d.ts +11 -0
- package/dist/Components/Table/Body/Rows/Columns/TableCheckbox.svelte +38 -27
- package/dist/Components/Table/Body/Rows/Columns/TableCheckbox.svelte.d.ts +13 -18
- package/dist/Components/Table/Body/Rows/Columns/TableCheckboxProps.d.ts +17 -0
- package/dist/Components/Table/Body/Rows/Columns/TableCheckboxProps.js +1 -0
- package/dist/Components/Table/Body/Rows/Columns/TableColumn.svelte +22 -7
- package/dist/Components/Table/Body/Rows/Columns/TableColumn.svelte.d.ts +1 -7
- package/dist/Components/Table/Body/Rows/Columns/TableColumnProps.d.ts +16 -0
- package/dist/Components/Table/Body/Rows/Columns/TableColumnProps.js +1 -0
- package/dist/Components/Table/Body/Rows/Columns/TableDatePicker.svelte +61 -31
- package/dist/Components/Table/Body/Rows/Columns/TableDatePicker.svelte.d.ts +12 -11
- package/dist/Components/Table/Body/Rows/Columns/TableDatePickerProps.d.ts +9 -0
- package/dist/Components/Table/Body/Rows/Columns/TableNumberInput.svelte +123 -244
- package/dist/Components/Table/Body/Rows/Columns/TableNumberInput.svelte.d.ts +20 -12
- package/dist/Components/Table/Body/Rows/Columns/TableQueryCell.d.ts +8 -0
- package/dist/Components/Table/Body/Rows/Columns/TableQueryColumn.d.ts +9 -0
- package/dist/Components/Table/Body/Rows/Columns/TableQuerySelect.svelte +126 -189
- package/dist/Components/Table/Body/Rows/Columns/TableQuerySelect.svelte.d.ts +12 -11
- package/dist/Components/Table/Body/Rows/Columns/TableQuerySelectProps.d.ts +8 -0
- package/dist/Components/Table/Body/Rows/Columns/TableRowSelectionCheckbox.svelte +31 -19
- package/dist/Components/Table/Body/Rows/Columns/TableRowSelectionCheckbox.svelte.d.ts +2 -5
- package/dist/Components/Table/Body/Rows/Columns/TableRowSelectionCheckboxProps.d.ts +14 -0
- package/dist/Components/Table/Body/Rows/Columns/TableRowSelectionCheckboxProps.js +1 -0
- package/dist/Components/Table/Body/Rows/Columns/TableSelect.svelte +125 -187
- package/dist/Components/Table/Body/Rows/Columns/TableSelect.svelte.d.ts +13 -12
- package/dist/Components/Table/Body/Rows/Columns/TableSelectProps.d.ts +6 -0
- package/dist/Components/Table/Body/Rows/Columns/TableTextInput.svelte +119 -270
- package/dist/Components/Table/Body/Rows/Columns/TableTextInput.svelte.d.ts +12 -11
- package/dist/Components/Table/Body/Rows/Columns/TableTextInputProps.d.ts +6 -0
- package/dist/Components/Table/Body/Rows/Columns/ValidityCell.svelte +23 -13
- package/dist/Components/Table/Body/Rows/Columns/_helpers/useAsyncEditable.svelte.d.ts +104 -0
- package/dist/Components/Table/Body/Rows/Columns/_helpers/useAsyncEditable.svelte.js +215 -0
- package/dist/Components/Table/Body/Rows/TableRow.svelte +200 -132
- package/dist/Components/Table/Body/Rows/TableRow.svelte.d.ts +2 -10
- package/dist/Components/Table/Body/Rows/TableRowProps.d.ts +11 -2
- package/dist/Components/Table/Body/TableBody.svelte +170 -53
- package/dist/Components/Table/Body/TableBody.svelte.d.ts +15 -22
- package/dist/Components/Table/Body/TableBodyProps.d.ts +9 -7
- package/dist/Components/Table/ColumnDefinitions/ExampleItemColumnDefRepository.svelte.js +18 -12
- package/dist/Components/Table/ColumnFactory.svelte.d.ts +43 -0
- package/dist/Components/Table/ColumnFactory.svelte.js +339 -0
- package/dist/Components/Table/Headers/HighlightAllHeader.svelte +5 -3
- package/dist/Components/Table/Headers/HighlightAllHeader.svelte.d.ts +12 -11
- package/dist/Components/Table/Headers/SelectAllHeader.svelte +5 -3
- package/dist/Components/Table/Headers/SelectAllHeader.svelte.d.ts +12 -11
- package/dist/Components/Table/Headers/TableHead.svelte +340 -200
- package/dist/Components/Table/Headers/TableHead.svelte.d.ts +13 -16
- package/dist/Components/Table/Headers/TableHeadProps.d.ts +10 -0
- package/dist/Components/Table/Headers/TableHeadProps.js +1 -0
- package/dist/Components/Table/Misc/ColumnPanel.svelte +108 -50
- package/dist/Components/Table/Misc/ColumnPanel.svelte.d.ts +12 -11
- package/dist/Components/Table/Misc/ColumnPanelModal.svelte +20 -7
- package/dist/Components/Table/Misc/ColumnPanelModal.svelte.d.ts +12 -11
- package/dist/Components/Table/Misc/ColumnPanelModalProps.d.ts +5 -0
- package/dist/Components/Table/Misc/FilterInput.svelte +30 -41
- package/dist/Components/Table/Misc/FilterInput.svelte.d.ts +12 -11
- package/dist/Components/Table/Misc/FilterPanel.svelte +387 -29
- package/dist/Components/Table/Misc/FilterPanel.svelte.d.ts +12 -11
- package/dist/Components/Table/Misc/FilterPanelModal.svelte +4 -51
- package/dist/Components/Table/Misc/FilterPanelModal.svelte.d.ts +2 -23
- package/dist/Components/Table/Misc/SidePanel.svelte +12 -9
- package/dist/Components/Table/Misc/SidePanel.svelte.d.ts +1 -7
- package/dist/Components/Table/Misc/SidePanelProps.d.ts +17 -0
- package/dist/Components/Table/Misc/SidePanelProps.js +1 -0
- package/dist/Components/Table/Misc/TableFooter.svelte +44 -35
- package/dist/Components/Table/Misc/TableFooter.svelte.d.ts +13 -14
- package/dist/Components/Table/Misc/TableFooterProps.d.ts +8 -0
- package/dist/Components/Table/Misc/TableFooterProps.js +1 -0
- package/dist/Components/Table/Misc/TableHorizontalBar.svelte +17 -48
- package/dist/Components/Table/Misc/TableHorizontalBar.svelte.d.ts +12 -11
- package/dist/Components/Table/Misc/TableSidebar.svelte +28 -47
- package/dist/Components/Table/Misc/TableSidebar.svelte.d.ts +12 -11
- package/dist/Components/Table/Misc/ToolboxPanel.svelte +121 -55
- package/dist/Components/Table/Misc/ToolboxPanel.svelte.d.ts +12 -11
- package/dist/Components/Table/Misc/ToolboxPanelModal.svelte +31 -24
- package/dist/Components/Table/Misc/ToolboxPanelModal.svelte.d.ts +12 -11
- package/dist/Components/Table/Misc/ToolboxPanelModalProps.d.ts +5 -0
- package/dist/Components/Table/Misc/numberDateFilterTypes.d.ts +7 -4
- package/dist/Components/Table/Misc/numberDateFilterTypes.js +8 -3
- package/dist/Components/Table/Misc/stringFilterTypes.d.ts +6 -4
- package/dist/Components/Table/Misc/stringFilterTypes.js +7 -3
- package/dist/Components/Table/NestedTable.svelte +85 -41
- package/dist/Components/Table/NestedTable.svelte.d.ts +2 -10
- package/dist/Components/Table/NestedTableProps.d.ts +25 -0
- package/dist/Components/Table/NestedTableProps.js +1 -0
- package/dist/Components/Table/SubApis.svelte.d.ts +23 -0
- package/dist/Components/Table/SubApis.svelte.js +359 -0
- package/dist/Components/Table/Table.svelte +347 -172
- package/dist/Components/Table/Table.svelte.d.ts +24 -1
- package/dist/Components/Table/TableHelpers.svelte.d.ts +58 -0
- package/dist/Components/Table/TableHelpers.svelte.js +88 -0
- package/dist/Components/Table/Types/Columns/Column.d.ts +10 -0
- package/dist/Components/Table/Types/Columns/ColumnPinningState.d.ts +12 -0
- package/dist/Components/Table/Types/Columns/ColumnSizingState.d.ts +8 -0
- package/dist/Components/Table/Types/Columns/ColumnType.d.ts +17 -0
- package/dist/Components/Table/Types/Columns/ColumnType.js +18 -1
- package/dist/Components/Table/Types/Columns/DateColumn.d.ts +6 -0
- package/dist/Components/Table/Types/Columns/DateTableCell.d.ts +7 -0
- package/dist/Components/Table/Types/Columns/Definitions/AccessorFn.d.ts +13 -0
- package/dist/Components/Table/Types/Columns/Definitions/Accessors/AccessorDef.svelte.d.ts +28 -3
- package/dist/Components/Table/Types/Columns/Definitions/Accessors/AccessorDef.svelte.js +15 -0
- package/dist/Components/Table/Types/Columns/Definitions/Accessors/AccessorType.d.ts +10 -0
- package/dist/Components/Table/Types/Columns/Definitions/Accessors/AccessorType.js +11 -1
- package/dist/Components/Table/Types/Columns/Definitions/Accessors/CheckboxDef.svelte.d.ts +23 -2
- package/dist/Components/Table/Types/Columns/Definitions/Accessors/CheckboxDef.svelte.js +9 -2
- package/dist/Components/Table/Types/Columns/Definitions/Accessors/DateInputDef.svelte.d.ts +21 -2
- package/dist/Components/Table/Types/Columns/Definitions/Accessors/DateInputDef.svelte.js +8 -0
- package/dist/Components/Table/Types/Columns/Definitions/Accessors/NumberInputDef.svelte.d.ts +29 -3
- package/dist/Components/Table/Types/Columns/Definitions/Accessors/NumberInputDef.svelte.js +11 -0
- package/dist/Components/Table/Types/Columns/Definitions/Accessors/QueryDef.svelte.d.ts +23 -0
- package/dist/Components/Table/Types/Columns/Definitions/Accessors/QueryDef.svelte.js +8 -0
- package/dist/Components/Table/Types/Columns/Definitions/Accessors/SelectDef.svelte.d.ts +31 -0
- package/dist/Components/Table/Types/Columns/Definitions/Accessors/SelectDef.svelte.js +17 -3
- package/dist/Components/Table/Types/Columns/Definitions/Accessors/TextInputDef.svelte.d.ts +21 -2
- package/dist/Components/Table/Types/Columns/Definitions/Accessors/TextInputDef.svelte.js +7 -0
- package/dist/Components/Table/Types/Columns/Definitions/Actions/ActionsDef.svelte.d.ts +29 -1
- package/dist/Components/Table/Types/Columns/Definitions/Actions/ActionsDef.svelte.js +17 -3
- package/dist/Components/Table/Types/Columns/Definitions/ColumnDef.svelte.d.ts +122 -11
- package/dist/Components/Table/Types/Columns/Definitions/ColumnDef.svelte.js +77 -11
- package/dist/Components/Table/Types/Columns/Definitions/ColumnDefSet.d.ts +9 -0
- package/dist/Components/Table/Types/Columns/Definitions/Display/AbstractDisplayDef.svelte.d.ts +41 -1
- package/dist/Components/Table/Types/Columns/Definitions/Display/AbstractDisplayDef.svelte.js +16 -0
- package/dist/Components/Table/Types/Columns/Definitions/Display/BubbleDef.svelte.d.ts +19 -1
- package/dist/Components/Table/Types/Columns/Definitions/Display/BubbleDef.svelte.js +12 -1
- package/dist/Components/Table/Types/Columns/Definitions/Display/DisplayDef.svelte.d.ts +11 -0
- package/dist/Components/Table/Types/Columns/Definitions/Display/DisplayDef.svelte.js +6 -3
- package/dist/Components/Table/Types/Columns/Definitions/Display/ProgressBarDef.svelte.d.ts +19 -0
- package/dist/Components/Table/Types/Columns/Definitions/Display/ProgressBarDef.svelte.js +25 -1
- package/dist/Components/Table/Types/Columns/Definitions/Display/ValidityDef.svelte.d.ts +26 -0
- package/dist/Components/Table/Types/Columns/Definitions/Display/ValidityDef.svelte.js +20 -5
- package/dist/Components/Table/Types/Columns/Definitions/Expand/ExpandDef.svelte.d.ts +43 -7
- package/dist/Components/Table/Types/Columns/Definitions/Expand/ExpandDef.svelte.js +18 -3
- package/dist/Components/Table/Types/Columns/Definitions/FilterOnly/FilterOnlyDef.svelte.d.ts +19 -5
- package/dist/Components/Table/Types/Columns/Definitions/FilterOnly/FilterOnlyDef.svelte.js +16 -5
- package/dist/Components/Table/Types/Columns/Definitions/JSONColumnDefSet.d.ts +14 -0
- package/dist/Components/Table/Types/Columns/Definitions/RowSelection/RowSelectionDef.svelte.d.ts +34 -2
- package/dist/Components/Table/Types/Columns/Definitions/RowSelection/RowSelectionDef.svelte.js +30 -7
- package/dist/Components/Table/Types/Columns/Definitions/ValidationFn.d.ts +17 -0
- package/dist/Components/Table/Types/Columns/DefsWrapper.d.ts +10 -0
- package/dist/Components/Table/Types/Columns/DisplayType.d.ts +13 -0
- package/dist/Components/Table/Types/Columns/DisplayType.js +14 -1
- package/dist/Components/Table/Types/Columns/ExpandColumn.d.ts +5 -0
- package/dist/Components/Table/Types/Columns/ExpandTableCell.d.ts +7 -0
- package/dist/Components/Table/Types/Columns/JSONColumnPinningState.d.ts +6 -0
- package/dist/Components/Table/Types/Columns/ProgressBarColumn.d.ts +5 -0
- package/dist/Components/Table/Types/Columns/ProgressBarTableCell.d.ts +9 -0
- package/dist/Components/Table/Types/Columns/TableActionButton.d.ts +12 -0
- package/dist/Components/Table/Types/Columns/TableCell.d.ts +16 -2
- package/dist/Components/Table/Types/Columns/VisibilityState.d.ts +12 -0
- package/dist/Components/Table/Types/Context/ColumnLayoutState.svelte.d.ts +173 -0
- package/dist/Components/Table/Types/Context/ColumnLayoutState.svelte.js +241 -0
- package/dist/Components/Table/Types/Context/FilteringState.svelte.d.ts +166 -0
- package/dist/Components/Table/Types/Context/FilteringState.svelte.js +180 -0
- package/dist/Components/Table/Types/Context/FocusState.svelte.d.ts +316 -0
- package/dist/Components/Table/Types/Context/FocusState.svelte.js +751 -0
- package/dist/Components/Table/Types/Context/ITable.d.ts +10 -0
- package/dist/Components/Table/Types/Context/PreferencesState.svelte.d.ts +242 -0
- package/dist/Components/Table/Types/Context/PreferencesState.svelte.js +317 -0
- package/dist/Components/Table/Types/Context/ReadonlyRowModel.d.ts +14 -3
- package/dist/Components/Table/Types/Context/Row.d.ts +18 -0
- package/dist/Components/Table/Types/Context/RowModel.d.ts +11 -0
- package/dist/Components/Table/Types/Context/SelectionState.svelte.d.ts +260 -0
- package/dist/Components/Table/Types/Context/SelectionState.svelte.js +613 -0
- package/dist/Components/Table/Types/Context/SortingState.svelte.d.ts +112 -0
- package/dist/Components/Table/Types/Context/SortingState.svelte.js +272 -0
- package/dist/Components/Table/Types/Context/TableContext.svelte.d.ts +547 -53
- package/dist/Components/Table/Types/Context/TableContext.svelte.js +959 -1259
- package/dist/Components/Table/Types/Context/TableInitOptions.d.ts +16 -0
- package/dist/Components/Table/Types/Context/TableSettings.d.ts +20 -0
- package/dist/Components/Table/Types/Context/VirtualisationState.svelte.d.ts +167 -0
- package/dist/Components/Table/Types/Context/VirtualisationState.svelte.js +226 -0
- package/dist/Components/Table/Types/Coordinates/CellCoordinates.d.ts +12 -0
- package/dist/Components/Table/Types/Coordinates/CellCoordinatesWithoutColumn.d.ts +5 -0
- package/dist/Components/Table/Types/Coordinates/ColumnIndices.d.ts +16 -2
- package/dist/Components/Table/Types/DataRepository/BuiltInRemoteRepository.svelte.d.ts +143 -0
- package/dist/Components/Table/Types/DataRepository/BuiltInRemoteRepository.svelte.js +454 -0
- package/dist/Components/Table/Types/DataRepository/IDataRepository.d.ts +21 -0
- package/dist/Components/Table/Types/DataRepository/ILocalDataRepository.d.ts +10 -0
- package/dist/Components/Table/Types/DataRepository/IRemoteDataRepository.d.ts +16 -0
- package/dist/Components/Table/Types/DataRepository/LocalTableDataRepository.svelte.d.ts +87 -3
- package/dist/Components/Table/Types/DataRepository/LocalTableDataRepository.svelte.js +112 -7
- package/dist/Components/Table/Types/DataRepository/SortingState.d.ts +12 -0
- package/dist/Components/Table/Types/DataRepository/TableDataRepository.svelte.d.ts +87 -2
- package/dist/Components/Table/Types/DataRepository/TableDataRepository.svelte.js +74 -1
- package/dist/Components/Table/Types/ExpandedPanel.d.ts +9 -0
- package/dist/Components/Table/Types/ExpandedPanel.js +10 -1
- package/dist/Components/Table/Types/Filtering/ColumnFiltersState.d.ts +17 -0
- package/dist/Components/Table/Types/Filtering/CustomFilter.d.ts +21 -0
- package/dist/Components/Table/Types/Filtering/CustomFilterType.d.ts +5 -0
- package/dist/Components/Table/Types/Filtering/CustomFilterType.js +6 -1
- package/dist/Components/Table/Types/Filtering/CustomRemoteFilters.d.ts +6 -0
- package/dist/Components/Table/Types/Filtering/FilterFn.d.ts +28 -0
- package/dist/Components/Table/Types/Filtering/FilterMode.d.ts +7 -0
- package/dist/Components/Table/Types/Filtering/FilterType.d.ts +8 -0
- package/dist/Components/Table/Types/Filtering/FilterType.js +9 -1
- package/dist/Components/Table/Types/Filtering/FilterValueType.d.ts +11 -0
- package/dist/Components/Table/Types/Filtering/FilterValueType.js +12 -1
- package/dist/Components/Table/Types/Filtering/HasCustomFilterFunction.d.ts +23 -2
- package/dist/Components/Table/Types/Filtering/NumberDateFilterMode.d.ts +19 -12
- package/dist/Components/Table/Types/Filtering/NumberDateFilterMode.js +18 -14
- package/dist/Components/Table/Types/Filtering/StringFilterMode.d.ts +22 -15
- package/dist/Components/Table/Types/Filtering/StringFilterMode.js +22 -16
- package/dist/Components/Table/Types/Focus/MultiFocusEdge.d.ts +8 -0
- package/dist/Components/Table/Types/Focus/MultiFocusEdge.js +9 -1
- package/dist/Components/Table/Types/Focus/TableFocusDetails.svelte.d.ts +22 -0
- package/dist/Components/Table/Types/Focus/TableFocusDetails.svelte.js +22 -0
- package/dist/Components/Table/Types/Header.d.ts +8 -0
- package/dist/Components/Table/Types/HeaderGroup.d.ts +7 -0
- package/dist/Components/Table/Types/Layout/CellPinning.d.ts +1 -0
- package/dist/Components/Table/Types/Layout/CellPinning.js +8 -0
- package/dist/Components/Table/Types/OnChangeFn.d.ts +11 -0
- package/dist/Components/Table/Types/Pagination/PaginationState.d.ts +9 -0
- package/dist/Components/Table/Types/Pagination/PaginationType.d.ts +10 -0
- package/dist/Components/Table/Types/Pagination/PaginationType.js +11 -1
- package/dist/Components/Table/Types/Public/AnyEditEvent.d.ts +30 -0
- package/dist/Components/Table/Types/Public/AnyEditEvent.js +1 -0
- package/dist/Components/Table/Types/Public/BaseColumnOptions.d.ts +44 -0
- package/dist/Components/Table/Types/Public/BaseColumnOptions.js +1 -0
- package/dist/Components/Table/Types/Public/ColumnFactory.d.ts +35 -0
- package/dist/Components/Table/Types/Public/ColumnFactory.js +1 -0
- package/dist/Components/Table/Types/Public/ColumnOptions.d.ts +238 -0
- package/dist/Components/Table/Types/Public/ColumnOptions.js +1 -0
- package/dist/Components/Table/Types/Public/ColumnSpec.d.ts +39 -0
- package/dist/Components/Table/Types/Public/ColumnSpec.js +1 -0
- package/dist/Components/Table/Types/Public/CreateTableOptions.d.ts +87 -0
- package/dist/Components/Table/Types/Public/CreateTableOptions.js +1 -0
- package/dist/Components/Table/Types/Public/KeyConstraints.d.ts +42 -0
- package/dist/Components/Table/Types/Public/KeyConstraints.js +22 -0
- package/dist/Components/Table/Types/Public/RowSource.d.ts +87 -0
- package/dist/Components/Table/Types/Public/RowSource.js +1 -0
- package/dist/Components/Table/Types/Public/SelectionOptions.d.ts +26 -0
- package/dist/Components/Table/Types/Public/SelectionOptions.js +1 -0
- package/dist/Components/Table/Types/Public/Table.d.ts +39 -0
- package/dist/Components/Table/Types/Public/Table.js +1 -0
- package/dist/Components/Table/Types/Public/TableInitialState.d.ts +26 -0
- package/dist/Components/Table/Types/Public/TableInitialState.js +1 -0
- package/dist/Components/Table/Types/Public/TablePersistence.d.ts +38 -0
- package/dist/Components/Table/Types/Public/TablePersistence.js +1 -0
- package/dist/Components/Table/Types/Public/TableSubApis.d.ts +157 -0
- package/dist/Components/Table/Types/Public/TableSubApis.js +1 -0
- package/dist/Components/Table/Types/Public/index.d.ts +20 -0
- package/dist/Components/Table/Types/Public/index.js +8 -0
- package/dist/Components/Table/Types/Toolbar/ToolbarPosition.d.ts +4 -0
- package/dist/Components/Table/Types/Toolbar/ToolbarPosition.js +5 -1
- package/dist/Components/Table/createTable.svelte.d.ts +53 -0
- package/dist/Components/Table/createTable.svelte.js +269 -0
- package/dist/Components/TextArea.svelte +37 -18
- package/dist/Components/TextAreaProps.d.ts +37 -0
- package/dist/Components/TextInput.svelte +41 -22
- package/dist/Components/TextInputProps.d.ts +58 -1
- package/dist/Components/ThreeStateRadio.svelte +61 -64
- package/dist/Components/ThreeStateRadioProps.d.ts +29 -1
- package/dist/Components/Touch/BoolCard.svelte +8 -15
- package/dist/Components/Touch/BoolCard.svelte.d.ts +1 -10
- package/dist/Components/Touch/BoolCardProps.d.ts +21 -0
- package/dist/Components/Touch/BoolCardProps.js +1 -0
- package/dist/Components/Touch/DateModal.svelte +17 -25
- package/dist/Components/Touch/DateModal.svelte.d.ts +1 -17
- package/dist/Components/Touch/DateModalProps.d.ts +36 -0
- package/dist/Components/Touch/DateModalProps.js +1 -0
- package/dist/Components/Touch/EditCard.svelte +10 -3
- package/dist/Components/Touch/EditCardProps.d.ts +21 -0
- package/dist/Components/Touch/InfoCard.svelte +14 -7
- package/dist/Components/Touch/InfoCardProps.d.ts +9 -0
- package/dist/Components/Touch/InfoTextCard.svelte +9 -2
- package/dist/Components/Touch/InfoTextCardProps.d.ts +8 -0
- package/dist/Components/Touch/ModalExplanation.svelte +9 -12
- package/dist/Components/Touch/ModalExplanation.svelte.d.ts +1 -6
- package/dist/Components/Touch/ModalExplanationProps.d.ts +22 -0
- package/dist/Components/Touch/ModalExplanationProps.js +1 -0
- package/dist/Components/Touch/NumberKeyboard.svelte +62 -105
- package/dist/Components/Touch/NumberKeyboardProps.d.ts +19 -0
- package/dist/Components/Touch/NumberModal.svelte +16 -6
- package/dist/Components/Touch/NumberModalProps.d.ts +23 -1
- package/dist/Components/Touch/PlusMinusCard.svelte +12 -16
- package/dist/Components/Touch/PlusMinusCard.svelte.d.ts +1 -6
- package/dist/Components/Touch/PlusMinusCardProps.d.ts +18 -0
- package/dist/Components/Touch/PlusMinusCardProps.js +1 -0
- package/dist/Components/Touch/SelectModal.svelte +33 -15
- package/dist/Components/Touch/SelectModalProps.d.ts +22 -1
- package/dist/Components/Touch/SummaryCard.svelte +56 -14
- package/dist/Components/Touch/SummaryCardProps.d.ts +16 -3
- package/dist/Components/Touch/TextAreaModal.svelte +18 -9
- package/dist/Components/Touch/TextAreaModalProps.d.ts +21 -0
- package/dist/Components/Touch/TextModal.svelte +15 -32
- package/dist/Components/Touch/TextModalProps.d.ts +28 -1
- package/dist/Components/Touch/TouchCard.svelte +9 -47
- package/dist/Components/Touch/TouchCardProps.d.ts +21 -0
- package/dist/Components/Touch/TouchModal.svelte +105 -99
- package/dist/Components/Touch/TouchModalProps.d.ts +35 -1
- package/dist/Components/Touch/UtilityButton.svelte +36 -18
- package/dist/Components/Touch/UtilityButtonProps.d.ts +16 -0
- package/dist/Components/VerticalTabGroup.svelte +18 -40
- package/dist/Components/VerticalTabGroupButton.svelte +11 -50
- package/dist/Components/VerticalTabGroupProps.d.ts +15 -2
- package/dist/Contexts/AlertContext.svelte.d.ts +92 -8
- package/dist/Contexts/AlertContext.svelte.js +69 -6
- package/dist/Contexts/ContextMenuContext.svelte.d.ts +54 -8
- package/dist/Contexts/ContextMenuContext.svelte.js +48 -2
- package/dist/Contexts/TestContext.svelte.d.ts +27 -1
- package/dist/Contexts/TestContext.svelte.js +29 -1
- package/dist/Contexts/ToastContext.svelte.d.ts +29 -1
- package/dist/Contexts/ToastContext.svelte.js +93 -24
- package/dist/Contexts/TooltipContext.svelte.d.ts +68 -1
- package/dist/Contexts/TooltipContext.svelte.js +70 -7
- package/dist/Contexts/UntypedInputContext.svelte.d.ts +54 -5
- package/dist/Contexts/UntypedInputContext.svelte.js +87 -34
- package/dist/Delay/Delay.js +1 -1
- package/dist/Helpers/AsyncFlag.svelte.d.ts +39 -0
- package/dist/Helpers/AsyncFlag.svelte.js +72 -0
- package/dist/Helpers/Datamatrix.d.ts +10 -1
- package/dist/Helpers/Datamatrix.js +290 -1
- package/dist/Helpers/Helpers.svelte.d.ts +252 -18
- package/dist/Helpers/Helpers.svelte.js +271 -75
- package/dist/Helpers/INamed.d.ts +6 -0
- package/dist/Helpers/Storage.d.ts +67 -0
- package/dist/Helpers/Storage.js +138 -0
- package/dist/Helpers/dropdownPortal.d.ts +52 -0
- package/dist/Helpers/dropdownPortal.js +232 -0
- package/dist/Helpers/dropdownPortal.svelte.d.ts +2 -0
- package/dist/Helpers/dropdownPortal.svelte.js +5 -0
- package/dist/Helpers/memoiseByRow.d.ts +45 -0
- package/dist/Helpers/memoiseByRow.js +78 -0
- package/dist/Helpers/prefersReducedMotion.svelte.d.ts +27 -0
- package/dist/Helpers/prefersReducedMotion.svelte.js +18 -0
- package/dist/Helpers/useTooltip.svelte.d.ts +53 -0
- package/dist/Helpers/useTooltip.svelte.js +62 -0
- package/dist/Types/Examples/ExampleModal.svelte +2 -1
- package/dist/Types/Examples/ExampleSelectEnum.js +1 -1
- package/dist/Types/Internal/AsyncFlag.d.ts +7 -0
- package/dist/Types/Internal/AsyncFlag.js +1 -0
- package/dist/Types/Internal/BigRadioOption.d.ts +8 -0
- package/dist/Types/Internal/ButtonProp.d.ts +24 -2
- package/dist/Types/Internal/CallbackButton.d.ts +12 -0
- package/dist/Types/Internal/DateChange.d.ts +8 -0
- package/dist/Types/Internal/DatePickerType.d.ts +5 -0
- package/dist/Types/Internal/DatePickerType.js +6 -1
- package/dist/Types/Internal/IdentifiableToastMessage.d.ts +8 -0
- package/dist/Types/Internal/InputVariant.d.ts +5 -0
- package/dist/Types/Internal/InputVariant.js +6 -1
- package/dist/Types/Internal/Misc.d.ts +91 -0
- package/dist/Types/Internal/RefWrapper.d.ts +6 -0
- package/dist/Types/Internal/SelectOption.d.ts +8 -0
- package/dist/Types/Internal/Shape.d.ts +1 -0
- package/dist/Types/Internal/Shape.js +2 -1
- package/dist/Types/Internal/Side.d.ts +1 -0
- package/dist/Types/Internal/Side.js +2 -1
- package/dist/Types/Internal/Size.d.ts +5 -0
- package/dist/Types/Internal/Size.js +6 -1
- package/dist/Types/Internal/TabOption.d.ts +15 -5
- package/dist/Types/Internal/Ternary.d.ts +6 -0
- package/dist/Types/Internal/Ternary.js +7 -1
- package/dist/Types/Internal/ToastMessage.d.ts +28 -0
- package/dist/Types/Internal/Validity.d.ts +6 -0
- package/dist/Types/Internal/Validity.js +7 -1
- package/dist/Types/Internal/ValidityWrapper.d.ts +8 -0
- package/dist/Types/Internal/Variant.d.ts +5 -0
- package/dist/Types/Internal/Variant.js +6 -1
- package/dist/index.d.ts +27 -82
- package/dist/index.js +24 -62
- package/dist/scss/_mixins.scss +451 -167
- package/dist/scss/_motion.scss +57 -0
- package/dist/scss/_sizing.scss +16 -0
- package/dist/scss/colours.js +2 -2
- package/dist/scss/sizing.d.ts +9 -0
- package/dist/scss/sizing.js +10 -1
- package/package.json +35 -31
|
@@ -1,19 +1,44 @@
|
|
|
1
1
|
<svelte:options runes />
|
|
2
2
|
|
|
3
|
-
<!--
|
|
3
|
+
<!--
|
|
4
4
|
@component
|
|
5
|
+
Visual host for `ContextMenuContext`. Renders the fixed-positioned
|
|
6
|
+
`<ul role="menu">` near the `(x, y)` coordinates the context exposes,
|
|
7
|
+
and clamps the position so the menu never spills off the viewport.
|
|
5
8
|
|
|
9
|
+
Mounted exactly once at the app root by `ContextWrapper`; consumers do
|
|
10
|
+
not render `ContextMenu` directly. Open a menu through the context:
|
|
6
11
|
|
|
7
|
-
|
|
12
|
+
```svelte
|
|
13
|
+
<script lang="ts">
|
|
14
|
+
import { ContextMenuContext } from '@lavalogic/scoria';
|
|
15
|
+
import { getContext } from 'svelte';
|
|
16
|
+
|
|
17
|
+
const ctx = getContext<ContextMenuContext>(ContextMenuContext.identifier);
|
|
18
|
+
</script>
|
|
19
|
+
|
|
20
|
+
<button oncontextmenu={(e) => ctx.openContextMenu(e, items)}>
|
|
21
|
+
Right-click me
|
|
22
|
+
</button>
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
### Keyboard
|
|
26
|
+
|
|
27
|
+
`Escape` closes the menu and returns focus to the previously focused
|
|
28
|
+
element; `ArrowUp` / `ArrowDown` cycle focus through the items.
|
|
29
|
+
-->
|
|
8
30
|
<script lang="ts">
|
|
9
31
|
import { ContextMenuContext } from '../../Contexts/ContextMenuContext.svelte.js';
|
|
10
32
|
import { devCatch } from '../../Helpers/Helpers.svelte.js';
|
|
11
33
|
import { getContext, tick, untrack } from 'svelte';
|
|
12
34
|
import { fade } from 'svelte/transition';
|
|
35
|
+
import { usePrefersReducedMotion } from '../../Helpers/prefersReducedMotion.svelte.js';
|
|
13
36
|
import ContextMenuOption from './ContextMenuOption.svelte';
|
|
14
37
|
import type { MaybeFocusable } from './MaybeFocusable.js';
|
|
15
38
|
|
|
16
39
|
const contextMenuContext = getContext<ContextMenuContext>(ContextMenuContext.identifier);
|
|
40
|
+
const reducedMotion = usePrefersReducedMotion();
|
|
41
|
+
const fadeDuration = $derived(reducedMotion.matches ? 0 : 50);
|
|
17
42
|
|
|
18
43
|
let _x: number = $state(0);
|
|
19
44
|
let _y: number = $state(0);
|
|
@@ -72,12 +97,11 @@
|
|
|
72
97
|
return;
|
|
73
98
|
}
|
|
74
99
|
const items = [...menuEl.querySelectorAll<HTMLElement>('[role="menuitem"]')];
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
if (!found) {
|
|
78
|
-
console.warn(`could not find next item`);
|
|
100
|
+
if (items.length === 0) {
|
|
101
|
+
return;
|
|
79
102
|
}
|
|
80
|
-
|
|
103
|
+
const index = items.indexOf(document.activeElement as HTMLElement);
|
|
104
|
+
items.at((index + 1) % items.length)?.focus();
|
|
81
105
|
}
|
|
82
106
|
|
|
83
107
|
function focusPrev() {
|
|
@@ -85,13 +109,11 @@
|
|
|
85
109
|
return;
|
|
86
110
|
}
|
|
87
111
|
const items = [...menuEl.querySelectorAll<HTMLElement>('[role="menuitem"]')];
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
const found = items.at((index - 1 + items.length) % items.length);
|
|
91
|
-
if (!found) {
|
|
92
|
-
console.warn('could not find prev item');
|
|
112
|
+
if (items.length === 0) {
|
|
113
|
+
return;
|
|
93
114
|
}
|
|
94
|
-
|
|
115
|
+
const index = items.indexOf(document.activeElement as HTMLElement);
|
|
116
|
+
items.at((index - 1 + items.length) % items.length)?.focus();
|
|
95
117
|
}
|
|
96
118
|
</script>
|
|
97
119
|
|
|
@@ -99,11 +121,12 @@
|
|
|
99
121
|
|
|
100
122
|
{#if contextMenuContext.showMenu}
|
|
101
123
|
<ul
|
|
102
|
-
transition:fade={{ duration:
|
|
124
|
+
transition:fade={{ duration: fadeDuration }}
|
|
103
125
|
bind:this={menuEl}
|
|
104
126
|
style="top: {_y}px; left: {_x}px;"
|
|
105
127
|
role="menu"
|
|
106
128
|
aria-label="Context menu"
|
|
129
|
+
tabindex="-1"
|
|
107
130
|
onkeydown={(e) => {
|
|
108
131
|
if (e.key === 'Escape') {
|
|
109
132
|
e.stopImmediatePropagation();
|
|
@@ -129,7 +152,7 @@
|
|
|
129
152
|
{index}
|
|
130
153
|
disabled={item.disabled}
|
|
131
154
|
onclick={() => {
|
|
132
|
-
item.callback();
|
|
155
|
+
void item.callback();
|
|
133
156
|
contextMenuContext.closeMenu();
|
|
134
157
|
}}
|
|
135
158
|
text={item.text}
|
|
@@ -138,20 +161,18 @@
|
|
|
138
161
|
</ul>
|
|
139
162
|
{/if}
|
|
140
163
|
|
|
141
|
-
<style>
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
}
|
|
157
|
-
</style>
|
|
164
|
+
<style>ul {
|
|
165
|
+
padding: 0.375rem;
|
|
166
|
+
position: fixed;
|
|
167
|
+
display: grid;
|
|
168
|
+
border: solid 1px #cbd4da;
|
|
169
|
+
box-shadow: 2px 2px 5px 0px rgba(0, 0, 0, 0.13);
|
|
170
|
+
gap: 0.375rem;
|
|
171
|
+
background: #ffffff;
|
|
172
|
+
z-index: 99999;
|
|
173
|
+
line-height: initial;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
ul:focus {
|
|
177
|
+
outline: none;
|
|
178
|
+
}</style>
|
|
@@ -1,3 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Visual host for `ContextMenuContext`. Renders the fixed-positioned
|
|
3
|
+
* `<ul role="menu">` near the `(x, y)` coordinates the context exposes,
|
|
4
|
+
* and clamps the position so the menu never spills off the viewport.
|
|
5
|
+
*
|
|
6
|
+
* Mounted exactly once at the app root by `ContextWrapper`; consumers do
|
|
7
|
+
* not render `ContextMenu` directly. Open a menu through the context:
|
|
8
|
+
*
|
|
9
|
+
* ```svelte
|
|
10
|
+
* <script lang="ts">
|
|
11
|
+
* import { ContextMenuContext } from '@lavalogic/scoria';
|
|
12
|
+
* import { getContext } from 'svelte';
|
|
13
|
+
*
|
|
14
|
+
* const ctx = getContext<ContextMenuContext>(ContextMenuContext.identifier);
|
|
15
|
+
* </script>
|
|
16
|
+
*
|
|
17
|
+
* <button oncontextmenu={(e) => ctx.openContextMenu(e, items)}>
|
|
18
|
+
* Right-click me
|
|
19
|
+
* </button>
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
22
|
+
* ### Keyboard
|
|
23
|
+
*
|
|
24
|
+
* `Escape` closes the menu and returns focus to the previously focused
|
|
25
|
+
* element; `ArrowUp` / `ArrowDown` cycle focus through the items.
|
|
26
|
+
*/
|
|
1
27
|
declare const ContextMenu: import("svelte").Component<Record<string, never>, {}, "">;
|
|
2
28
|
type ContextMenu = ReturnType<typeof ContextMenu>;
|
|
3
29
|
export default ContextMenu;
|
|
@@ -1,11 +1,19 @@
|
|
|
1
1
|
<svelte:options runes />
|
|
2
2
|
|
|
3
|
+
<!--
|
|
4
|
+
@component
|
|
5
|
+
Visual separator for {@link ContextMenu}. Renders a thin horizontal
|
|
6
|
+
rule. The native `<hr>` ARIA mapping is `role="separator"`, which is
|
|
7
|
+
the correct semantic inside a `role="menu"` group, so no explicit
|
|
8
|
+
role is set.
|
|
9
|
+
|
|
10
|
+
Intended for use between groups of `ContextMenuOption` entries inside
|
|
11
|
+
a context menu rendered via the visual host.
|
|
12
|
+
-->
|
|
3
13
|
<hr />
|
|
4
14
|
|
|
5
|
-
<style>
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
}
|
|
11
|
-
</style>
|
|
15
|
+
<style>hr {
|
|
16
|
+
border-top: solid 1px #cbd4da;
|
|
17
|
+
width: 100%;
|
|
18
|
+
margin: 2px 0;
|
|
19
|
+
}</style>
|
|
@@ -3,4 +3,13 @@ type ContextMenuDivider = {
|
|
|
3
3
|
$on?(type: string, callback: (e: any) => void): () => void;
|
|
4
4
|
$set?(props: Partial<Record<string, never>>): void;
|
|
5
5
|
};
|
|
6
|
+
/**
|
|
7
|
+
* Visual separator for {@link ContextMenu}. Renders a thin horizontal
|
|
8
|
+
* rule. The native `<hr>` ARIA mapping is `role="separator"`, which is
|
|
9
|
+
* the correct semantic inside a `role="menu"` group, so no explicit
|
|
10
|
+
* role is set.
|
|
11
|
+
*
|
|
12
|
+
* Intended for use between groups of `ContextMenuOption` entries inside
|
|
13
|
+
* a context menu rendered via the visual host.
|
|
14
|
+
*/
|
|
6
15
|
declare const ContextMenuDivider: import("svelte").Component<Record<string, never>, {}, "">;
|
|
@@ -1,28 +1,35 @@
|
|
|
1
1
|
<svelte:options runes />
|
|
2
2
|
|
|
3
|
+
<!--
|
|
4
|
+
@component
|
|
5
|
+
A single row inside the {@link ContextMenu} host. Renders a
|
|
6
|
+
`<button role="menuitem">` and assigns a roving `tabindex`: the
|
|
7
|
+
first option (index `0`) receives focus on mount and is the only
|
|
8
|
+
tab stop, all subsequent options carry `tabindex="-1"` so arrow-key
|
|
9
|
+
navigation owns focus traversal within the menu.
|
|
10
|
+
|
|
11
|
+
Consumers do not usually mount `ContextMenuOption` directly; the
|
|
12
|
+
visual host iterates over `ContextMenuContext.items` and renders one
|
|
13
|
+
option per entry.
|
|
14
|
+
-->
|
|
3
15
|
<script lang="ts">
|
|
4
16
|
import { devCatch } from '../../Helpers/Helpers.svelte.js';
|
|
5
17
|
import { tick } from 'svelte';
|
|
6
18
|
import type { ContextMenuOptionProps } from './ContextMenuOptionProps.js';
|
|
7
19
|
|
|
8
|
-
let {
|
|
9
|
-
text = $bindable(''),
|
|
10
|
-
index,
|
|
11
|
-
disabled = false,
|
|
12
|
-
onclick,
|
|
13
|
-
children,
|
|
14
|
-
}: ContextMenuOptionProps = $props();
|
|
20
|
+
let { text = '', index, disabled = false, onclick, children }: ContextMenuOptionProps = $props();
|
|
15
21
|
|
|
16
22
|
let element = $state<HTMLButtonElement | undefined>();
|
|
17
23
|
|
|
18
24
|
$effect(() => {
|
|
19
25
|
void element;
|
|
20
|
-
|
|
26
|
+
// Only the first option seeds focus. The check stays inside the
|
|
27
|
+
// effect (rather than gating registration) so Svelte's reactive
|
|
28
|
+
// dependency on `index` is recorded.
|
|
29
|
+
if (index === 0) {
|
|
21
30
|
tick()
|
|
22
31
|
.then(() => {
|
|
23
|
-
|
|
24
|
-
element.focus();
|
|
25
|
-
}
|
|
32
|
+
element?.focus();
|
|
26
33
|
})
|
|
27
34
|
.catch(devCatch);
|
|
28
35
|
}
|
|
@@ -33,13 +40,14 @@
|
|
|
33
40
|
class="context-menu-item"
|
|
34
41
|
role="menuitem"
|
|
35
42
|
class:disabled
|
|
36
|
-
tabindex={index}
|
|
43
|
+
tabindex={index === 0 ? 0 : -1}
|
|
44
|
+
aria-disabled={disabled ? 'true' : undefined}
|
|
37
45
|
bind:this={element}
|
|
38
46
|
onclick={(e) => {
|
|
39
47
|
e.stopImmediatePropagation();
|
|
40
48
|
e.stopPropagation();
|
|
41
49
|
e.preventDefault();
|
|
42
|
-
onclick?.(e);
|
|
50
|
+
void onclick?.(e);
|
|
43
51
|
}}
|
|
44
52
|
>
|
|
45
53
|
{#if text}
|
|
@@ -52,13 +60,14 @@
|
|
|
52
60
|
<style>button {
|
|
53
61
|
background-color: #ffffff;
|
|
54
62
|
border: none;
|
|
55
|
-
padding:
|
|
63
|
+
padding: 0.375rem 0.75rem;
|
|
56
64
|
cursor: default;
|
|
57
|
-
font-size:
|
|
65
|
+
font-size: 0.875rem;
|
|
58
66
|
display: flex;
|
|
59
67
|
align-items: center;
|
|
60
|
-
grid-gap:
|
|
68
|
+
grid-gap: 0.375rem;
|
|
61
69
|
user-select: none;
|
|
70
|
+
color: #3a4952;
|
|
62
71
|
}
|
|
63
72
|
|
|
64
73
|
button:focus,
|
|
@@ -67,11 +76,11 @@ button:focus-within {
|
|
|
67
76
|
}
|
|
68
77
|
|
|
69
78
|
button:hover {
|
|
70
|
-
background:
|
|
79
|
+
background: #e9ecf1;
|
|
71
80
|
}
|
|
72
81
|
|
|
73
82
|
button.disabled {
|
|
74
|
-
color:
|
|
83
|
+
color: #8096a5;
|
|
75
84
|
}
|
|
76
85
|
|
|
77
86
|
button.disabled:hover {
|
|
@@ -1,4 +1,15 @@
|
|
|
1
1
|
import type { ContextMenuOptionProps } from './ContextMenuOptionProps.js';
|
|
2
|
-
|
|
2
|
+
/**
|
|
3
|
+
* A single row inside the {@link ContextMenu} host. Renders a
|
|
4
|
+
* `<button role="menuitem">` and assigns a roving `tabindex`: the
|
|
5
|
+
* first option (index `0`) receives focus on mount and is the only
|
|
6
|
+
* tab stop, all subsequent options carry `tabindex="-1"` so arrow-key
|
|
7
|
+
* navigation owns focus traversal within the menu.
|
|
8
|
+
*
|
|
9
|
+
* Consumers do not usually mount `ContextMenuOption` directly; the
|
|
10
|
+
* visual host iterates over `ContextMenuContext.items` and renders one
|
|
11
|
+
* option per entry.
|
|
12
|
+
*/
|
|
13
|
+
declare const ContextMenuOption: import("svelte").Component<ContextMenuOptionProps, {}, "">;
|
|
3
14
|
type ContextMenuOption = ReturnType<typeof ContextMenuOption>;
|
|
4
15
|
export default ContextMenuOption;
|
|
@@ -1,8 +1,40 @@
|
|
|
1
1
|
import type { Snippet } from 'svelte';
|
|
2
|
+
/**
|
|
3
|
+
* Props for {@link ContextMenuOption}.
|
|
4
|
+
*
|
|
5
|
+
* A single item inside the {@link ContextMenu} host. The host renders
|
|
6
|
+
* one option per entry in `ContextMenuContext.items`; consumers do not
|
|
7
|
+
* usually instantiate this component directly.
|
|
8
|
+
*/
|
|
2
9
|
export interface ContextMenuOptionProps {
|
|
10
|
+
/**
|
|
11
|
+
* Zero-based position of this option in the parent menu. The host
|
|
12
|
+
* uses the value to assign a roving `tabindex` (`0` for the first
|
|
13
|
+
* option, `-1` for the rest) and to seed initial focus.
|
|
14
|
+
*
|
|
15
|
+
* Must be a non-negative integer.
|
|
16
|
+
*/
|
|
3
17
|
index: number;
|
|
18
|
+
/**
|
|
19
|
+
* Plain-text label rendered inside the option button. If both
|
|
20
|
+
* `text` and `children` are supplied, `text` wins; prefer one or
|
|
21
|
+
* the other to keep the rendered output predictable.
|
|
22
|
+
*/
|
|
4
23
|
text?: string;
|
|
5
|
-
|
|
6
|
-
|
|
24
|
+
/**
|
|
25
|
+
* When `true` the option is rendered greyed-out and ignores
|
|
26
|
+
* `onclick`. Hover styles are also suppressed.
|
|
27
|
+
*/
|
|
28
|
+
disabled?: boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Click handler. Receives the underlying `MouseEvent`. The handler
|
|
31
|
+
* may return a `Promise` because the menu host awaits the close
|
|
32
|
+
* sequence after invoking it.
|
|
33
|
+
*/
|
|
34
|
+
onclick?: (e: MouseEvent) => void | Promise<void>;
|
|
35
|
+
/**
|
|
36
|
+
* Snippet alternative to `text` for richer content (icons, key
|
|
37
|
+
* hints). Ignored when `text` is set.
|
|
38
|
+
*/
|
|
7
39
|
children?: Snippet;
|
|
8
40
|
}
|
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
<svelte:options runes />
|
|
2
2
|
|
|
3
|
+
<!--
|
|
4
|
+
@component
|
|
5
|
+
Single toast rendering. Renders a horizontally-sliding pill near the
|
|
6
|
+
bottom-right of the viewport via `ToastContainer`. The severity of the
|
|
7
|
+
underlying toast drives both the colouring and the live-region
|
|
8
|
+
semantics:
|
|
9
|
+
|
|
10
|
+
- `Validity.Invalid` -> `role="alert"`, `aria-live="assertive"`.
|
|
11
|
+
- All other severities -> `role="status"`, `aria-live="polite"`.
|
|
12
|
+
|
|
13
|
+
The slide transition honours `prefers-reduced-motion` through the
|
|
14
|
+
shared `usePrefersReducedMotion` helper; when the user has opted in
|
|
15
|
+
the duration collapses to zero. The copy action is only shown when
|
|
16
|
+
`navigator.clipboard` is present (HTTPS or `localhost`).
|
|
17
|
+
-->
|
|
3
18
|
<script
|
|
4
19
|
lang="ts"
|
|
5
20
|
module
|
|
@@ -14,7 +29,12 @@
|
|
|
14
29
|
</script>
|
|
15
30
|
|
|
16
31
|
<script lang="ts">
|
|
32
|
+
import { usePrefersReducedMotion } from '../../Helpers/prefersReducedMotion.svelte.js';
|
|
33
|
+
|
|
17
34
|
let { toast, copy }: ToastProps = $props();
|
|
35
|
+
|
|
36
|
+
const reducedMotion = usePrefersReducedMotion();
|
|
37
|
+
const slideDuration = $derived(reducedMotion.matches ? 0 : 500);
|
|
18
38
|
</script>
|
|
19
39
|
|
|
20
40
|
<output
|
|
@@ -24,7 +44,7 @@
|
|
|
24
44
|
class:success={toast.result == Validity.Valid}
|
|
25
45
|
class:warning={toast.result == Validity.Warning}
|
|
26
46
|
class:error={toast.result == Validity.Invalid}
|
|
27
|
-
transition:slide={{ axis: 'x', duration:
|
|
47
|
+
transition:slide={{ axis: 'x', duration: slideDuration }}
|
|
28
48
|
>
|
|
29
49
|
<div>
|
|
30
50
|
<div class="noshrink">
|
|
@@ -32,6 +52,7 @@
|
|
|
32
52
|
<Action
|
|
33
53
|
onclick={copy}
|
|
34
54
|
icon={{ name: 'copy' }}
|
|
55
|
+
label="Copy to clipboard"
|
|
35
56
|
size={Size.MediumLarge}
|
|
36
57
|
colourSet={ColourSet.Auxiliary}
|
|
37
58
|
/>
|
|
@@ -48,6 +69,7 @@
|
|
|
48
69
|
<Action
|
|
49
70
|
size={Size.MediumLarge}
|
|
50
71
|
icon={{ name: 'cross' }}
|
|
72
|
+
label="Dismiss"
|
|
51
73
|
onclick={() => {
|
|
52
74
|
toast.close?.();
|
|
53
75
|
}}
|
|
@@ -63,6 +85,7 @@
|
|
|
63
85
|
font-size: 1.125rem;
|
|
64
86
|
padding: 0.75rem;
|
|
65
87
|
border-radius: 4px;
|
|
88
|
+
max-width: var(--toast-max-width, 32rem);
|
|
66
89
|
}
|
|
67
90
|
output.info, output.success {
|
|
68
91
|
color: #ffffff;
|
|
@@ -86,7 +109,8 @@ output > div {
|
|
|
86
109
|
align-items: center;
|
|
87
110
|
}
|
|
88
111
|
output span {
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
112
|
+
word-break: break-word;
|
|
113
|
+
overflow-wrap: anywhere;
|
|
114
|
+
min-width: 0;
|
|
115
|
+
flex: 1 1 auto;
|
|
92
116
|
}</style>
|
|
@@ -1,4 +1,18 @@
|
|
|
1
1
|
import type { ToastProps } from './ToastProps.js';
|
|
2
|
+
/**
|
|
3
|
+
* Single toast rendering. Renders a horizontally-sliding pill near the
|
|
4
|
+
* bottom-right of the viewport via `ToastContainer`. The severity of the
|
|
5
|
+
* underlying toast drives both the colouring and the live-region
|
|
6
|
+
* semantics:
|
|
7
|
+
*
|
|
8
|
+
* - `Validity.Invalid` -> `role="alert"`, `aria-live="assertive"`.
|
|
9
|
+
* - All other severities -> `role="status"`, `aria-live="polite"`.
|
|
10
|
+
*
|
|
11
|
+
* The slide transition honours `prefers-reduced-motion` through the
|
|
12
|
+
* shared `usePrefersReducedMotion` helper; when the user has opted in
|
|
13
|
+
* the duration collapses to zero. The copy action is only shown when
|
|
14
|
+
* `navigator.clipboard` is present (HTTPS or `localhost`).
|
|
15
|
+
*/
|
|
2
16
|
declare const Toast: import("svelte").Component<ToastProps, {}, "">;
|
|
3
17
|
type Toast = ReturnType<typeof Toast>;
|
|
4
18
|
export default Toast;
|
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
<svelte:options runes />
|
|
2
2
|
|
|
3
|
+
<!--
|
|
4
|
+
@component
|
|
5
|
+
Live region for the {@link ToastContext}. Iterates the context's
|
|
6
|
+
queue and renders one `Toast` per message, providing the
|
|
7
|
+
copy-to-clipboard callback (the container owns the clipboard logic
|
|
8
|
+
because the toast itself only knows the message it should copy).
|
|
9
|
+
|
|
10
|
+
The wrapping `<section>` carries `role="region"` plus
|
|
11
|
+
`aria-live="polite"` so multiple toast appearances are announced as
|
|
12
|
+
a single rolling region without interrupting the user; individual
|
|
13
|
+
`Toast` elements override `aria-live` to `assertive` for hard errors.
|
|
14
|
+
|
|
15
|
+
Mounted once at the app root by `ContextWrapper`; consumers should
|
|
16
|
+
not render this directly.
|
|
17
|
+
-->
|
|
3
18
|
<script lang="ts">
|
|
4
19
|
import { ToastContext } from '../../Contexts/ToastContext.svelte.js';
|
|
5
20
|
import { devCatch } from '../../Helpers/Helpers.svelte.js';
|
|
@@ -9,31 +24,35 @@
|
|
|
9
24
|
|
|
10
25
|
const toastContext = getContext<ToastContext>(ToastContext.identifier);
|
|
11
26
|
|
|
12
|
-
function copyDataToClipboard(text: string) {
|
|
13
|
-
//
|
|
27
|
+
function copyDataToClipboard(text: string): void {
|
|
28
|
+
// `navigator.clipboard` is `undefined` on insecure (HTTP)
|
|
29
|
+
// origins and in some embedded WebViews. The compile-time
|
|
30
|
+
// type says it is always defined, hence the eslint disable;
|
|
31
|
+
// the runtime check is the load-bearing one.
|
|
14
32
|
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
15
33
|
if (!navigator.clipboard) {
|
|
16
34
|
toastContext.toast({
|
|
17
35
|
result: Validity.Invalid,
|
|
18
36
|
message: 'Cannot Copy in an Insecure Connection',
|
|
19
|
-
copyable: false
|
|
37
|
+
copyable: false,
|
|
20
38
|
});
|
|
21
39
|
return;
|
|
22
40
|
}
|
|
23
41
|
|
|
24
|
-
// copy plain value
|
|
25
|
-
|
|
26
42
|
navigator.clipboard.writeText(text).catch(devCatch);
|
|
27
43
|
toastContext.toast({
|
|
28
44
|
result: Validity.Info,
|
|
29
45
|
message: 'Message copied to clipboard',
|
|
30
|
-
copyable: false
|
|
46
|
+
copyable: false,
|
|
31
47
|
});
|
|
32
48
|
}
|
|
33
49
|
</script>
|
|
34
50
|
|
|
35
|
-
<section
|
|
36
|
-
|
|
51
|
+
<section
|
|
52
|
+
aria-live="polite"
|
|
53
|
+
aria-label="Notifications"
|
|
54
|
+
>
|
|
55
|
+
{#each toastContext.toasts as toast (toast.id)}
|
|
37
56
|
<Toast
|
|
38
57
|
{toast}
|
|
39
58
|
copy={() => {
|
|
@@ -46,12 +65,12 @@
|
|
|
46
65
|
<style>section {
|
|
47
66
|
user-select: none;
|
|
48
67
|
gap: 0.5rem;
|
|
49
|
-
bottom: 8rem;
|
|
50
|
-
right: 2rem;
|
|
68
|
+
bottom: var(--toast-bottom, 8rem);
|
|
69
|
+
right: var(--toast-right, 2rem);
|
|
51
70
|
display: flex;
|
|
52
71
|
position: fixed;
|
|
53
72
|
flex-flow: column-reverse nowrap;
|
|
54
73
|
justify-content: flex-end;
|
|
55
74
|
align-items: flex-end;
|
|
56
|
-
z-index:
|
|
75
|
+
z-index: 99999;
|
|
57
76
|
}</style>
|
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Live region for the {@link ToastContext}. Iterates the context's
|
|
3
|
+
* queue and renders one `Toast` per message, providing the
|
|
4
|
+
* copy-to-clipboard callback (the container owns the clipboard logic
|
|
5
|
+
* because the toast itself only knows the message it should copy).
|
|
6
|
+
*
|
|
7
|
+
* The wrapping `<section>` carries `role="region"` plus
|
|
8
|
+
* `aria-live="polite"` so multiple toast appearances are announced as
|
|
9
|
+
* a single rolling region without interrupting the user; individual
|
|
10
|
+
* `Toast` elements override `aria-live` to `assertive` for hard errors.
|
|
11
|
+
*
|
|
12
|
+
* Mounted once at the app root by `ContextWrapper`; consumers should
|
|
13
|
+
* not render this directly.
|
|
14
|
+
*/
|
|
1
15
|
declare const ToastContainer: import("svelte").Component<Record<string, never>, {}, "">;
|
|
2
16
|
type ToastContainer = ReturnType<typeof ToastContainer>;
|
|
3
17
|
export default ToastContainer;
|
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
import type { IdentifiableToastMessage } from '../../Types/Internal/IdentifiableToastMessage.js';
|
|
2
|
+
/**
|
|
3
|
+
* Props for {@link Toast}.
|
|
4
|
+
*
|
|
5
|
+
* `Toast` is the per-message renderer used by `ToastContainer`. The
|
|
6
|
+
* container provides the `copy` callback because copy-to-clipboard is
|
|
7
|
+
* a host-level concern (the host knows which message text or verbose
|
|
8
|
+
* representation to write).
|
|
9
|
+
*/
|
|
2
10
|
export interface ToastProps {
|
|
11
|
+
/** The toast message and metadata to render. */
|
|
3
12
|
toast: IdentifiableToastMessage;
|
|
4
|
-
|
|
13
|
+
/**
|
|
14
|
+
* Click handler for the copy action. Allowed to return a promise
|
|
15
|
+
* so callers can await the underlying `navigator.clipboard.writeText`.
|
|
16
|
+
*/
|
|
17
|
+
copy: () => void | Promise<void>;
|
|
5
18
|
}
|
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
<svelte:options runes />
|
|
2
2
|
|
|
3
|
+
<!--
|
|
4
|
+
@component
|
|
5
|
+
Visual host for `TooltipContext`. Renders a fixed-position tooltip at
|
|
6
|
+
the coordinates the context exposes, with a CSS arrow that points
|
|
7
|
+
back toward the anchored element on the configured side.
|
|
8
|
+
|
|
9
|
+
The tooltip just appears and disappears; no transition is applied,
|
|
10
|
+
which is the conservative choice for `prefers-reduced-motion`. Reads
|
|
11
|
+
the context with `getContext` and relies on `ContextWrapper` to have
|
|
12
|
+
set it up at the app root.
|
|
13
|
+
-->
|
|
3
14
|
<script lang="ts">
|
|
4
15
|
import { TooltipContext } from '../../Contexts/TooltipContext.svelte.js';
|
|
5
16
|
import { Side } from '../../Types/Internal/Side.js';
|
|
@@ -25,19 +36,19 @@
|
|
|
25
36
|
|
|
26
37
|
<style>.tooltip-wrapper {
|
|
27
38
|
position: fixed;
|
|
28
|
-
z-index:
|
|
39
|
+
z-index: 99999;
|
|
29
40
|
border-radius: 4px;
|
|
30
|
-
background-color:
|
|
31
|
-
color:
|
|
32
|
-
box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.
|
|
41
|
+
background-color: #3a4952;
|
|
42
|
+
color: #ffffff;
|
|
43
|
+
box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.13);
|
|
33
44
|
border: solid 2px #dae0e5;
|
|
34
45
|
}
|
|
35
46
|
.tooltip-wrapper .tooltip {
|
|
36
47
|
padding: 0.5rem;
|
|
37
|
-
background-color:
|
|
48
|
+
background-color: #3a4952;
|
|
38
49
|
border-radius: 4px;
|
|
39
50
|
font-weight: 500;
|
|
40
|
-
white-space:
|
|
51
|
+
white-space: pre-wrap;
|
|
41
52
|
}
|
|
42
53
|
.tooltip-wrapper.top-arrow {
|
|
43
54
|
left: var(--x, 0);
|
|
@@ -54,7 +65,7 @@
|
|
|
54
65
|
left: 50%;
|
|
55
66
|
translate: -50% -50%;
|
|
56
67
|
transform: rotate(45deg);
|
|
57
|
-
background-color:
|
|
68
|
+
background-color: #3a4952;
|
|
58
69
|
border: solid 2px #dae0e5;
|
|
59
70
|
}
|
|
60
71
|
.tooltip-wrapper.bottom-arrow {
|
|
@@ -72,7 +83,7 @@
|
|
|
72
83
|
left: 50%;
|
|
73
84
|
translate: -50% -50%;
|
|
74
85
|
transform: rotate(45deg);
|
|
75
|
-
background-color:
|
|
86
|
+
background-color: #3a4952;
|
|
76
87
|
border: solid 2px #dae0e5;
|
|
77
88
|
}
|
|
78
89
|
.tooltip-wrapper.left-arrow {
|
|
@@ -90,7 +101,7 @@
|
|
|
90
101
|
left: 0;
|
|
91
102
|
translate: -50% -50%;
|
|
92
103
|
transform: rotate(45deg);
|
|
93
|
-
background-color:
|
|
104
|
+
background-color: #3a4952;
|
|
94
105
|
border: solid 2px #dae0e5;
|
|
95
106
|
}
|
|
96
107
|
.tooltip-wrapper.right-arrow {
|
|
@@ -108,6 +119,6 @@
|
|
|
108
119
|
left: 100%;
|
|
109
120
|
translate: -50% -50%;
|
|
110
121
|
transform: rotate(45deg);
|
|
111
|
-
background-color:
|
|
122
|
+
background-color: #3a4952;
|
|
112
123
|
border: solid 2px #dae0e5;
|
|
113
124
|
}</style>
|
|
@@ -1,3 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Visual host for `TooltipContext`. Renders a fixed-position tooltip at
|
|
3
|
+
* the coordinates the context exposes, with a CSS arrow that points
|
|
4
|
+
* back toward the anchored element on the configured side.
|
|
5
|
+
*
|
|
6
|
+
* The tooltip just appears and disappears; no transition is applied,
|
|
7
|
+
* which is the conservative choice for `prefers-reduced-motion`. Reads
|
|
8
|
+
* the context with `getContext` and relies on `ContextWrapper` to have
|
|
9
|
+
* set it up at the app root.
|
|
10
|
+
*/
|
|
1
11
|
declare const Tooltip: import("svelte").Component<Record<string, never>, {}, "">;
|
|
2
12
|
type Tooltip = ReturnType<typeof Tooltip>;
|
|
3
13
|
export default Tooltip;
|