@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
|
@@ -4,72 +4,33 @@
|
|
|
4
4
|
lang="ts"
|
|
5
5
|
generics="Args"
|
|
6
6
|
>
|
|
7
|
-
import {
|
|
7
|
+
import { useAsyncFlag } from '../Helpers/AsyncFlag.svelte.js';
|
|
8
8
|
import { Colour } from '../scss/colours.js';
|
|
9
9
|
import { Size } from '../Types/Internal/Size.js';
|
|
10
10
|
import Icon from './Icon.svelte';
|
|
11
11
|
import type { TabGroupButtonProps } from './TabGroupButtonProps.js';
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
const { option, selected }: TabGroupButtonProps<Args> = $props();
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
$effect(() => {
|
|
20
|
-
if (typeof option.isValid === 'boolean') {
|
|
21
|
-
isValid = option.isValid;
|
|
22
|
-
} else {
|
|
23
|
-
option.isValid
|
|
24
|
-
?.then((v) => {
|
|
25
|
-
isValid = v;
|
|
26
|
-
})
|
|
27
|
-
.catch(devCatch);
|
|
28
|
-
}
|
|
29
|
-
});
|
|
30
|
-
$effect(() => {
|
|
31
|
-
if (typeof option.disabled === 'boolean') {
|
|
32
|
-
disabled = option.disabled;
|
|
33
|
-
} else if (option.disabled == undefined) {
|
|
34
|
-
disabled = false;
|
|
35
|
-
} else {
|
|
36
|
-
option.disabled
|
|
37
|
-
.then((v) => {
|
|
38
|
-
disabled = v;
|
|
39
|
-
})
|
|
40
|
-
.catch(devCatch);
|
|
41
|
-
}
|
|
42
|
-
});
|
|
43
|
-
|
|
44
|
-
$effect(() => {
|
|
45
|
-
if (typeof option.visible === 'boolean') {
|
|
46
|
-
visible = option.visible;
|
|
47
|
-
} else if (option.visible == undefined) {
|
|
48
|
-
visible = true;
|
|
49
|
-
} else {
|
|
50
|
-
option.visible
|
|
51
|
-
.then((v) => {
|
|
52
|
-
visible = v;
|
|
53
|
-
})
|
|
54
|
-
.catch(devCatch);
|
|
55
|
-
}
|
|
56
|
-
});
|
|
15
|
+
const isValid = useAsyncFlag(() => option.isValid, true);
|
|
16
|
+
const disabled = useAsyncFlag(() => option.disabled, false);
|
|
17
|
+
const visible = useAsyncFlag(() => option.visible, true);
|
|
57
18
|
</script>
|
|
58
19
|
|
|
59
20
|
<button
|
|
60
21
|
class:selected
|
|
61
|
-
{disabled}
|
|
22
|
+
disabled={disabled.value}
|
|
62
23
|
onclick={() => {
|
|
63
24
|
option.onclick();
|
|
64
25
|
}}
|
|
65
26
|
type="button"
|
|
66
27
|
class="tab"
|
|
67
|
-
class:invalid={!isValid}
|
|
68
|
-
class:hidden={!visible}
|
|
28
|
+
class:invalid={!isValid.value}
|
|
29
|
+
class:hidden={!visible.value}
|
|
69
30
|
>
|
|
70
31
|
<div
|
|
71
32
|
class="bordered"
|
|
72
|
-
class:invalid={!isValid}
|
|
33
|
+
class:invalid={!isValid.value}
|
|
73
34
|
>
|
|
74
35
|
{#if option.iconLeft}
|
|
75
36
|
<Icon
|
|
@@ -78,7 +39,7 @@
|
|
|
78
39
|
/>
|
|
79
40
|
{/if}
|
|
80
41
|
{option.label}
|
|
81
|
-
{#if !isValid}
|
|
42
|
+
{#if !isValid.value}
|
|
82
43
|
<Icon
|
|
83
44
|
name="error"
|
|
84
45
|
colour={Colour['$error-border']}
|
|
@@ -123,7 +84,7 @@
|
|
|
123
84
|
.tab .bordered {
|
|
124
85
|
border-radius: 4px;
|
|
125
86
|
padding: 0.5rem 0.75rem;
|
|
126
|
-
margin-bottom: 0.
|
|
87
|
+
margin-bottom: 0.375rem;
|
|
127
88
|
transition: border-color ease-out 0.15s 0s, background-color ease-out 0.15s 0s, color ease-out 0.15s 0s, fill ease-out 0.15s 0s;
|
|
128
89
|
white-space: nowrap;
|
|
129
90
|
display: flex;
|
|
@@ -1,10 +1,23 @@
|
|
|
1
|
+
import type { ScoriaStorageKey } from '../Types/Internal/Misc.js';
|
|
1
2
|
import type { TabOption } from '../Types/Internal/TabOption.js';
|
|
3
|
+
/**
|
|
4
|
+
* Props for VerticalTabGroup, the top-aligned tab strip with content
|
|
5
|
+
* pane below. Supports sessionStorage-backed history when `name` is set.
|
|
6
|
+
*/
|
|
2
7
|
export interface VerticalTabGroupProps<CommonDenominator> {
|
|
3
|
-
|
|
4
|
-
|
|
8
|
+
/** When set, the last selected tab is persisted under
|
|
9
|
+
* `scoria-vertical-tab-group:${name}:active-tab` in sessionStorage. */
|
|
10
|
+
name?: ScoriaStorageKey;
|
|
11
|
+
/** The tabs to render. Keyed by `option.label`. */
|
|
12
|
+
tabs: ReadonlyArray<TabOption<CommonDenominator>>;
|
|
13
|
+
/** Currently selected tab. */
|
|
5
14
|
selected?: TabOption<CommonDenominator>;
|
|
15
|
+
/** Inline style passthrough; consider `style:` directives at call site instead. */
|
|
6
16
|
style?: string;
|
|
17
|
+
/** Disable internal scroll containers. */
|
|
7
18
|
noscroll?: boolean;
|
|
19
|
+
/** Empty-state message shown when no tab is selected. */
|
|
8
20
|
noTabMessage?: string;
|
|
21
|
+
/** Suppress on-mount history restore even when `name` is set. */
|
|
9
22
|
nohistory?: boolean;
|
|
10
23
|
}
|
|
@@ -1,51 +1,135 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Application context driving the global `AlertModal` host.
|
|
3
|
+
*
|
|
4
|
+
* The class exposes two public entry points - {@link AlertContext.alert}
|
|
5
|
+
* and {@link AlertContext.prompt} - each of which configures the modal
|
|
6
|
+
* labels, body and callbacks then flips `showModal` to `true`. The
|
|
7
|
+
* visual host (`Components/Contexts/AlertModal.svelte`, mounted by
|
|
8
|
+
* `Components/Base/ContextWrapper.svelte`) renders the modal and
|
|
9
|
+
* wires the three button callbacks (`onYes`, `onNo`, `onOther`).
|
|
10
|
+
*
|
|
11
|
+
* Conforms to the canonical scoria context pattern:
|
|
12
|
+
* - `static readonly identifier = Symbol()` registered through
|
|
13
|
+
* `setContext`/`getContext`.
|
|
14
|
+
* - Private runes-backed fields (`_x = $state(...)`) exposed via
|
|
15
|
+
* getter / private setter pairs.
|
|
16
|
+
*
|
|
17
|
+
* Note: `onYes`/`onNo`/`onOther` are public arrow-typed class fields.
|
|
18
|
+
* The arrows re-bind `this`, so they may safely reassign
|
|
19
|
+
* `this.showModal = false` via the private setter even when invoked
|
|
20
|
+
* detached from the instance (e.g. as event handlers).
|
|
21
|
+
*/
|
|
1
22
|
export declare class AlertContext {
|
|
23
|
+
/** Stable lookup symbol used by `getContext`/`setContext`. */
|
|
2
24
|
static readonly identifier: unique symbol;
|
|
3
25
|
private _header;
|
|
26
|
+
/** Modal header text. Defaults to `'Confirmation'`. */
|
|
4
27
|
get header(): string;
|
|
5
28
|
private set header(value);
|
|
6
29
|
private _body;
|
|
30
|
+
/** Modal body text. Set by {@link AlertContext.alert} / {@link AlertContext.prompt}. */
|
|
7
31
|
get body(): string;
|
|
8
32
|
private set body(value);
|
|
9
33
|
private _footer;
|
|
34
|
+
/** Optional modal footer. `null` hides the footer slot. */
|
|
10
35
|
get footer(): string | null;
|
|
11
36
|
private set footer(value);
|
|
12
37
|
private _yesLabel;
|
|
38
|
+
/** Confirm-button label. Default is `'Yes'` for prompts, `'Okay'` for alerts. */
|
|
13
39
|
get yesLabel(): string;
|
|
14
40
|
private set yesLabel(value);
|
|
15
41
|
private _noLabel;
|
|
42
|
+
/** Cancel-button label. `null` hides the button (alert-only mode). */
|
|
16
43
|
get noLabel(): string | null;
|
|
17
44
|
private set noLabel(value);
|
|
18
45
|
private _otherLabel;
|
|
46
|
+
/** Tertiary-button label. `null` hides the button. */
|
|
19
47
|
get otherLabel(): string | null;
|
|
20
48
|
private set otherLabel(value);
|
|
21
49
|
private _showModal;
|
|
50
|
+
/** Whether the modal is currently visible. */
|
|
22
51
|
get showModal(): boolean;
|
|
23
52
|
private set showModal(value);
|
|
24
53
|
private _mandatory;
|
|
54
|
+
/**
|
|
55
|
+
* If `true`, the modal cannot be dismissed via Escape or
|
|
56
|
+
* background click. The host must reply through one of the
|
|
57
|
+
* configured buttons.
|
|
58
|
+
*/
|
|
25
59
|
get mandatory(): boolean;
|
|
26
60
|
private set mandatory(value);
|
|
27
61
|
private _onYes;
|
|
62
|
+
/**
|
|
63
|
+
* Click handler for the confirm button. Closes the modal, invokes
|
|
64
|
+
* the consumer-supplied callback if any, then clears the stored
|
|
65
|
+
* callbacks so the closures (and anything they captured) can be
|
|
66
|
+
* garbage-collected. Async consumer callbacks are awaited
|
|
67
|
+
* implicitly via `void`.
|
|
68
|
+
*/
|
|
28
69
|
onYes: () => void;
|
|
29
70
|
private _onNo;
|
|
71
|
+
/** Click handler for the cancel button. See {@link AlertContext.onYes}. */
|
|
30
72
|
onNo: () => void;
|
|
31
73
|
private _onOther;
|
|
74
|
+
/** Click handler for the tertiary button. See {@link AlertContext.onYes}. */
|
|
32
75
|
onOther: () => void;
|
|
33
76
|
private resetState;
|
|
34
|
-
|
|
35
|
-
|
|
77
|
+
/**
|
|
78
|
+
* Shows an alert modal (single confirm button). Resets all prior
|
|
79
|
+
* state, then applies the supplied {@link AlertProps}.
|
|
80
|
+
*/
|
|
81
|
+
alert: (body: string, props?: AlertProps) => void;
|
|
82
|
+
/**
|
|
83
|
+
* Shows a prompt modal (confirm + cancel + optional tertiary).
|
|
84
|
+
* Resets all prior state, then applies the supplied
|
|
85
|
+
* {@link PromptProps}.
|
|
86
|
+
*/
|
|
87
|
+
prompt: (body: string, props: PromptProps) => void;
|
|
36
88
|
}
|
|
37
|
-
|
|
89
|
+
/**
|
|
90
|
+
* Optional configuration for {@link AlertContext.alert}.
|
|
91
|
+
*/
|
|
92
|
+
export interface AlertProps {
|
|
93
|
+
/** Modal header text. Defaults to `'Confirmation'` if omitted. */
|
|
38
94
|
header?: string;
|
|
95
|
+
/** Optional modal footer. */
|
|
39
96
|
footer?: string;
|
|
40
|
-
|
|
97
|
+
/** Callback invoked when the user clicks the confirm button. */
|
|
98
|
+
onYes?: () => void | Promise<void>;
|
|
99
|
+
/** Confirm-button label. Defaults to `'Okay'` if omitted. */
|
|
41
100
|
yesLabel?: string;
|
|
101
|
+
/** If `true`, the modal cannot be dismissed without clicking a button. */
|
|
42
102
|
mandatory?: boolean;
|
|
43
103
|
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
104
|
+
/**
|
|
105
|
+
* Required configuration for {@link AlertContext.prompt}. `onYes`
|
|
106
|
+
* is required (because a prompt without an explicit confirm path is
|
|
107
|
+
* meaningless); the cancel and tertiary buttons are independently
|
|
108
|
+
* optional.
|
|
109
|
+
*/
|
|
110
|
+
export interface PromptProps extends AlertProps {
|
|
111
|
+
/** Required confirm callback. */
|
|
112
|
+
onYes: () => void | Promise<void>;
|
|
113
|
+
/** Optional cancel callback. */
|
|
114
|
+
onNo?: () => void | Promise<void>;
|
|
115
|
+
/** Optional tertiary callback. */
|
|
116
|
+
onOther?: () => void | Promise<void>;
|
|
117
|
+
/** Cancel-button label. Defaults to `'No'` if omitted. */
|
|
48
118
|
noLabel?: string;
|
|
119
|
+
/** Tertiary-button label. The button is hidden when omitted. */
|
|
49
120
|
otherLabel?: string;
|
|
121
|
+
/** If `true`, the modal cannot be dismissed without clicking a button. */
|
|
50
122
|
mandatory?: boolean;
|
|
51
123
|
}
|
|
124
|
+
/**
|
|
125
|
+
* Legacy `I`-prefixed alias for {@link AlertProps}. Prefer
|
|
126
|
+
* `AlertProps` in new code; this re-export is kept for backwards
|
|
127
|
+
* compatibility with existing consumers.
|
|
128
|
+
*/
|
|
129
|
+
export type IAlertProps = AlertProps;
|
|
130
|
+
/**
|
|
131
|
+
* Legacy `I`-prefixed alias for {@link PromptProps}. Prefer
|
|
132
|
+
* `PromptProps` in new code; this re-export is kept for backwards
|
|
133
|
+
* compatibility with existing consumers.
|
|
134
|
+
*/
|
|
135
|
+
export type IPromptProps = PromptProps;
|
|
@@ -1,6 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Application context driving the global `AlertModal` host.
|
|
3
|
+
*
|
|
4
|
+
* The class exposes two public entry points - {@link AlertContext.alert}
|
|
5
|
+
* and {@link AlertContext.prompt} - each of which configures the modal
|
|
6
|
+
* labels, body and callbacks then flips `showModal` to `true`. The
|
|
7
|
+
* visual host (`Components/Contexts/AlertModal.svelte`, mounted by
|
|
8
|
+
* `Components/Base/ContextWrapper.svelte`) renders the modal and
|
|
9
|
+
* wires the three button callbacks (`onYes`, `onNo`, `onOther`).
|
|
10
|
+
*
|
|
11
|
+
* Conforms to the canonical scoria context pattern:
|
|
12
|
+
* - `static readonly identifier = Symbol()` registered through
|
|
13
|
+
* `setContext`/`getContext`.
|
|
14
|
+
* - Private runes-backed fields (`_x = $state(...)`) exposed via
|
|
15
|
+
* getter / private setter pairs.
|
|
16
|
+
*
|
|
17
|
+
* Note: `onYes`/`onNo`/`onOther` are public arrow-typed class fields.
|
|
18
|
+
* The arrows re-bind `this`, so they may safely reassign
|
|
19
|
+
* `this.showModal = false` via the private setter even when invoked
|
|
20
|
+
* detached from the instance (e.g. as event handlers).
|
|
21
|
+
*/
|
|
1
22
|
export class AlertContext {
|
|
23
|
+
/** Stable lookup symbol used by `getContext`/`setContext`. */
|
|
2
24
|
static identifier = Symbol();
|
|
3
25
|
_header = $state('Confirmation');
|
|
26
|
+
/** Modal header text. Defaults to `'Confirmation'`. */
|
|
4
27
|
get header() {
|
|
5
28
|
return this._header;
|
|
6
29
|
}
|
|
@@ -8,6 +31,7 @@ export class AlertContext {
|
|
|
8
31
|
this._header = v;
|
|
9
32
|
}
|
|
10
33
|
_body = $state('');
|
|
34
|
+
/** Modal body text. Set by {@link AlertContext.alert} / {@link AlertContext.prompt}. */
|
|
11
35
|
get body() {
|
|
12
36
|
return this._body;
|
|
13
37
|
}
|
|
@@ -15,6 +39,7 @@ export class AlertContext {
|
|
|
15
39
|
this._body = v;
|
|
16
40
|
}
|
|
17
41
|
_footer = $state(null);
|
|
42
|
+
/** Optional modal footer. `null` hides the footer slot. */
|
|
18
43
|
get footer() {
|
|
19
44
|
return this._footer;
|
|
20
45
|
}
|
|
@@ -22,6 +47,7 @@ export class AlertContext {
|
|
|
22
47
|
this._footer = v;
|
|
23
48
|
}
|
|
24
49
|
_yesLabel = $state('Yes');
|
|
50
|
+
/** Confirm-button label. Default is `'Yes'` for prompts, `'Okay'` for alerts. */
|
|
25
51
|
get yesLabel() {
|
|
26
52
|
return this._yesLabel;
|
|
27
53
|
}
|
|
@@ -29,6 +55,7 @@ export class AlertContext {
|
|
|
29
55
|
this._yesLabel = v;
|
|
30
56
|
}
|
|
31
57
|
_noLabel = $state(null);
|
|
58
|
+
/** Cancel-button label. `null` hides the button (alert-only mode). */
|
|
32
59
|
get noLabel() {
|
|
33
60
|
return this._noLabel;
|
|
34
61
|
}
|
|
@@ -36,6 +63,7 @@ export class AlertContext {
|
|
|
36
63
|
this._noLabel = v;
|
|
37
64
|
}
|
|
38
65
|
_otherLabel = $state(null);
|
|
66
|
+
/** Tertiary-button label. `null` hides the button. */
|
|
39
67
|
get otherLabel() {
|
|
40
68
|
return this._otherLabel;
|
|
41
69
|
}
|
|
@@ -43,6 +71,7 @@ export class AlertContext {
|
|
|
43
71
|
this._otherLabel = v;
|
|
44
72
|
}
|
|
45
73
|
_showModal = $state(false);
|
|
74
|
+
/** Whether the modal is currently visible. */
|
|
46
75
|
get showModal() {
|
|
47
76
|
return this._showModal;
|
|
48
77
|
}
|
|
@@ -50,6 +79,11 @@ export class AlertContext {
|
|
|
50
79
|
this._showModal = v;
|
|
51
80
|
}
|
|
52
81
|
_mandatory = $state(false);
|
|
82
|
+
/**
|
|
83
|
+
* If `true`, the modal cannot be dismissed via Escape or
|
|
84
|
+
* background click. The host must reply through one of the
|
|
85
|
+
* configured buttons.
|
|
86
|
+
*/
|
|
53
87
|
get mandatory() {
|
|
54
88
|
return this._mandatory;
|
|
55
89
|
}
|
|
@@ -57,19 +91,40 @@ export class AlertContext {
|
|
|
57
91
|
this._mandatory = v;
|
|
58
92
|
}
|
|
59
93
|
_onYes = undefined;
|
|
94
|
+
/**
|
|
95
|
+
* Click handler for the confirm button. Closes the modal, invokes
|
|
96
|
+
* the consumer-supplied callback if any, then clears the stored
|
|
97
|
+
* callbacks so the closures (and anything they captured) can be
|
|
98
|
+
* garbage-collected. Async consumer callbacks are awaited
|
|
99
|
+
* implicitly via `void`.
|
|
100
|
+
*/
|
|
60
101
|
onYes = () => {
|
|
61
102
|
this.showModal = false;
|
|
62
|
-
this._onYes
|
|
103
|
+
const cb = this._onYes;
|
|
104
|
+
this._onYes = undefined;
|
|
105
|
+
this._onNo = undefined;
|
|
106
|
+
this._onOther = undefined;
|
|
107
|
+
void cb?.();
|
|
63
108
|
};
|
|
64
109
|
_onNo = undefined;
|
|
110
|
+
/** Click handler for the cancel button. See {@link AlertContext.onYes}. */
|
|
65
111
|
onNo = () => {
|
|
66
112
|
this.showModal = false;
|
|
67
|
-
this._onNo
|
|
113
|
+
const cb = this._onNo;
|
|
114
|
+
this._onYes = undefined;
|
|
115
|
+
this._onNo = undefined;
|
|
116
|
+
this._onOther = undefined;
|
|
117
|
+
void cb?.();
|
|
68
118
|
};
|
|
69
119
|
_onOther = undefined;
|
|
120
|
+
/** Click handler for the tertiary button. See {@link AlertContext.onYes}. */
|
|
70
121
|
onOther = () => {
|
|
71
122
|
this.showModal = false;
|
|
72
|
-
this._onOther
|
|
123
|
+
const cb = this._onOther;
|
|
124
|
+
this._onYes = undefined;
|
|
125
|
+
this._onNo = undefined;
|
|
126
|
+
this._onOther = undefined;
|
|
127
|
+
void cb?.();
|
|
73
128
|
};
|
|
74
129
|
resetState = () => {
|
|
75
130
|
this._body = '';
|
|
@@ -82,8 +137,11 @@ export class AlertContext {
|
|
|
82
137
|
this._onNo = undefined;
|
|
83
138
|
this._onOther = undefined;
|
|
84
139
|
};
|
|
140
|
+
/**
|
|
141
|
+
* Shows an alert modal (single confirm button). Resets all prior
|
|
142
|
+
* state, then applies the supplied {@link AlertProps}.
|
|
143
|
+
*/
|
|
85
144
|
alert = (body, props) => {
|
|
86
|
-
// debugger;
|
|
87
145
|
this.resetState();
|
|
88
146
|
this._body = body;
|
|
89
147
|
if (props) {
|
|
@@ -93,7 +151,7 @@ export class AlertContext {
|
|
|
93
151
|
if (props.footer) {
|
|
94
152
|
this._footer = props.footer;
|
|
95
153
|
}
|
|
96
|
-
this._yesLabel = props.yesLabel
|
|
154
|
+
this._yesLabel = props.yesLabel ?? 'Okay';
|
|
97
155
|
this._onYes = props.onYes;
|
|
98
156
|
}
|
|
99
157
|
else {
|
|
@@ -102,6 +160,11 @@ export class AlertContext {
|
|
|
102
160
|
this.mandatory = props?.mandatory ?? false;
|
|
103
161
|
this.showModal = true;
|
|
104
162
|
};
|
|
163
|
+
/**
|
|
164
|
+
* Shows a prompt modal (confirm + cancel + optional tertiary).
|
|
165
|
+
* Resets all prior state, then applies the supplied
|
|
166
|
+
* {@link PromptProps}.
|
|
167
|
+
*/
|
|
105
168
|
prompt = (body, props) => {
|
|
106
169
|
this.resetState();
|
|
107
170
|
this._body = body;
|
|
@@ -114,7 +177,7 @@ export class AlertContext {
|
|
|
114
177
|
if (props.yesLabel) {
|
|
115
178
|
this._yesLabel = props.yesLabel;
|
|
116
179
|
}
|
|
117
|
-
this._noLabel = props.noLabel
|
|
180
|
+
this._noLabel = props.noLabel ?? 'No';
|
|
118
181
|
if (props.otherLabel) {
|
|
119
182
|
this._otherLabel = props.otherLabel;
|
|
120
183
|
}
|
|
@@ -1,22 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Application context driving the global `ContextMenu` host.
|
|
3
|
+
*
|
|
4
|
+
* The class exposes {@link ContextMenuContext.openContextMenu} and
|
|
5
|
+
* {@link ContextMenuContext.closeMenu} as the only public mutators.
|
|
6
|
+
* Position (`x`, `y`), `items`, and `showMenu` are read-only from
|
|
7
|
+
* outside the class to keep the open-flow centralised.
|
|
8
|
+
*/
|
|
1
9
|
export declare class ContextMenuContext {
|
|
10
|
+
/** Stable lookup symbol used by `getContext`/`setContext`. */
|
|
2
11
|
static readonly identifier: unique symbol;
|
|
12
|
+
/**
|
|
13
|
+
* Monotonically increasing open-count used to bail out of stale
|
|
14
|
+
* {@link ContextMenuContext.openContextMenu} calls when the user
|
|
15
|
+
* opens a second menu before the first one's reopen-delay has
|
|
16
|
+
* elapsed.
|
|
17
|
+
*/
|
|
18
|
+
private openVersion;
|
|
3
19
|
private _x;
|
|
20
|
+
/** Menu x-coordinate in viewport-relative CSS pixels. */
|
|
4
21
|
get x(): number;
|
|
5
|
-
set x(
|
|
22
|
+
private set x(value);
|
|
6
23
|
private _y;
|
|
24
|
+
/** Menu y-coordinate in viewport-relative CSS pixels. */
|
|
7
25
|
get y(): number;
|
|
8
|
-
set y(
|
|
26
|
+
private set y(value);
|
|
9
27
|
private _items;
|
|
10
|
-
|
|
11
|
-
|
|
28
|
+
/** The current menu items. Mutate only via {@link ContextMenuContext.openContextMenu}. */
|
|
29
|
+
get items(): ReadonlyArray<ContextMenuOption>;
|
|
30
|
+
private set items(value);
|
|
12
31
|
private _showMenu;
|
|
32
|
+
/** Whether the menu is currently visible. */
|
|
13
33
|
get showMenu(): boolean;
|
|
14
|
-
set showMenu(
|
|
15
|
-
|
|
34
|
+
private set showMenu(value);
|
|
35
|
+
/**
|
|
36
|
+
* Opens the context menu at the position of the supplied
|
|
37
|
+
* `MouseEvent` (`clientX`/`clientY`). If a menu is already
|
|
38
|
+
* visible, closes it, waits {@link REOPEN_DELAY_MS} for the
|
|
39
|
+
* close animation to play, then opens the new one.
|
|
40
|
+
*
|
|
41
|
+
* Concurrent calls are version-guarded: only the most recent
|
|
42
|
+
* call's open-state survives the post-await write phase.
|
|
43
|
+
*/
|
|
44
|
+
readonly openContextMenu: (e: MouseEvent, options: Array<ContextMenuOption>) => Promise<void>;
|
|
45
|
+
/**
|
|
46
|
+
* Closes the menu and clears the item list. Increments the open
|
|
47
|
+
* version so any in-flight {@link ContextMenuContext.openContextMenu}
|
|
48
|
+
* call resolves to a no-op.
|
|
49
|
+
*/
|
|
16
50
|
closeMenu: () => void;
|
|
17
51
|
}
|
|
18
|
-
|
|
19
|
-
|
|
52
|
+
/**
|
|
53
|
+
* A single context-menu row.
|
|
54
|
+
*/
|
|
55
|
+
export interface ContextMenuOption {
|
|
56
|
+
/** Click handler. May be async; the menu does not await the result. */
|
|
57
|
+
callback: () => void | Promise<void>;
|
|
58
|
+
/** Visible row label. */
|
|
20
59
|
text: string;
|
|
60
|
+
/** When `true`, the row is shown greyed-out and ignores clicks. */
|
|
21
61
|
disabled?: boolean;
|
|
22
62
|
}
|
|
63
|
+
/**
|
|
64
|
+
* Legacy `I`-prefixed alias for {@link ContextMenuOption}. Prefer
|
|
65
|
+
* `ContextMenuOption` in new code; this re-export is kept for
|
|
66
|
+
* backwards compatibility with existing consumers.
|
|
67
|
+
*/
|
|
68
|
+
export type IContextMenuOption = ContextMenuOption;
|
|
@@ -1,6 +1,30 @@
|
|
|
1
|
+
import { asyncSleep } from '../Helpers/Helpers.svelte.js';
|
|
2
|
+
/**
|
|
3
|
+
* Delay in milliseconds that {@link ContextMenuContext.openContextMenu}
|
|
4
|
+
* waits after closing a previous menu before opening the next one,
|
|
5
|
+
* giving the close animation time to complete.
|
|
6
|
+
*/
|
|
7
|
+
const REOPEN_DELAY_MS = 100;
|
|
8
|
+
/**
|
|
9
|
+
* Application context driving the global `ContextMenu` host.
|
|
10
|
+
*
|
|
11
|
+
* The class exposes {@link ContextMenuContext.openContextMenu} and
|
|
12
|
+
* {@link ContextMenuContext.closeMenu} as the only public mutators.
|
|
13
|
+
* Position (`x`, `y`), `items`, and `showMenu` are read-only from
|
|
14
|
+
* outside the class to keep the open-flow centralised.
|
|
15
|
+
*/
|
|
1
16
|
export class ContextMenuContext {
|
|
17
|
+
/** Stable lookup symbol used by `getContext`/`setContext`. */
|
|
2
18
|
static identifier = Symbol();
|
|
19
|
+
/**
|
|
20
|
+
* Monotonically increasing open-count used to bail out of stale
|
|
21
|
+
* {@link ContextMenuContext.openContextMenu} calls when the user
|
|
22
|
+
* opens a second menu before the first one's reopen-delay has
|
|
23
|
+
* elapsed.
|
|
24
|
+
*/
|
|
25
|
+
openVersion = 0;
|
|
3
26
|
_x = $state(0);
|
|
27
|
+
/** Menu x-coordinate in viewport-relative CSS pixels. */
|
|
4
28
|
get x() {
|
|
5
29
|
return this._x;
|
|
6
30
|
}
|
|
@@ -8,6 +32,7 @@ export class ContextMenuContext {
|
|
|
8
32
|
this._x = v;
|
|
9
33
|
}
|
|
10
34
|
_y = $state(0);
|
|
35
|
+
/** Menu y-coordinate in viewport-relative CSS pixels. */
|
|
11
36
|
get y() {
|
|
12
37
|
return this._y;
|
|
13
38
|
}
|
|
@@ -15,30 +40,51 @@ export class ContextMenuContext {
|
|
|
15
40
|
this._y = v;
|
|
16
41
|
}
|
|
17
42
|
_items = $state([]);
|
|
43
|
+
/** The current menu items. Mutate only via {@link ContextMenuContext.openContextMenu}. */
|
|
18
44
|
get items() {
|
|
19
45
|
return this._items;
|
|
20
46
|
}
|
|
21
47
|
set items(v) {
|
|
22
|
-
this._items = v;
|
|
48
|
+
this._items = [...v];
|
|
23
49
|
}
|
|
24
50
|
_showMenu = $state(false);
|
|
51
|
+
/** Whether the menu is currently visible. */
|
|
25
52
|
get showMenu() {
|
|
26
53
|
return this._showMenu;
|
|
27
54
|
}
|
|
28
55
|
set showMenu(v) {
|
|
29
56
|
this._showMenu = v;
|
|
30
57
|
}
|
|
58
|
+
/**
|
|
59
|
+
* Opens the context menu at the position of the supplied
|
|
60
|
+
* `MouseEvent` (`clientX`/`clientY`). If a menu is already
|
|
61
|
+
* visible, closes it, waits {@link REOPEN_DELAY_MS} for the
|
|
62
|
+
* close animation to play, then opens the new one.
|
|
63
|
+
*
|
|
64
|
+
* Concurrent calls are version-guarded: only the most recent
|
|
65
|
+
* call's open-state survives the post-await write phase.
|
|
66
|
+
*/
|
|
31
67
|
openContextMenu = async (e, options) => {
|
|
68
|
+
const version = ++this.openVersion;
|
|
32
69
|
if (this.showMenu) {
|
|
33
70
|
this.closeMenu();
|
|
34
|
-
await
|
|
71
|
+
await asyncSleep(REOPEN_DELAY_MS);
|
|
72
|
+
if (version !== this.openVersion) {
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
35
75
|
}
|
|
36
76
|
this.items = options;
|
|
37
77
|
this.x = e.clientX;
|
|
38
78
|
this.y = e.clientY;
|
|
39
79
|
this.showMenu = true;
|
|
40
80
|
};
|
|
81
|
+
/**
|
|
82
|
+
* Closes the menu and clears the item list. Increments the open
|
|
83
|
+
* version so any in-flight {@link ContextMenuContext.openContextMenu}
|
|
84
|
+
* call resolves to a no-op.
|
|
85
|
+
*/
|
|
41
86
|
closeMenu = () => {
|
|
87
|
+
this.openVersion++;
|
|
42
88
|
this.showMenu = false;
|
|
43
89
|
this.items = [];
|
|
44
90
|
};
|
|
@@ -1,11 +1,37 @@
|
|
|
1
1
|
import type { RefWrapper } from '../Types/Internal/RefWrapper.js';
|
|
2
|
+
/**
|
|
3
|
+
* Test-only fixture context demonstrating the `RefWrapper` +
|
|
4
|
+
* derived-effect pattern used elsewhere in scoria.
|
|
5
|
+
*
|
|
6
|
+
* Not part of the shipped public surface and not mounted by
|
|
7
|
+
* `ContextWrapper`. For a canonical context to copy from, see
|
|
8
|
+
* `AlertContext`, `ToastContext`, or `TooltipContext`.
|
|
9
|
+
*
|
|
10
|
+
* Non-canonical patterns intentionally present:
|
|
11
|
+
* - The `value2` field is initialised via `useTestEffect(value1)`
|
|
12
|
+
* which calls `$effect`. `$effect` requires an active effect
|
|
13
|
+
* scope. In real code, construct the context lazily inside the
|
|
14
|
+
* consuming component (or `$effect.root`).
|
|
15
|
+
* - The setters on `value1`/`value2` are public for test
|
|
16
|
+
* ergonomics. Real contexts keep their setters private.
|
|
17
|
+
*/
|
|
2
18
|
export declare class TestContext {
|
|
19
|
+
/** Stable lookup symbol used by `getContext`/`setContext`. */
|
|
3
20
|
static readonly identifier: unique symbol;
|
|
4
21
|
private _value1;
|
|
22
|
+
/** Test-driver-visible reactive cell. */
|
|
5
23
|
get value1(): RefWrapper<number>;
|
|
6
24
|
set value1(v: RefWrapper<number>);
|
|
7
25
|
private _value2;
|
|
26
|
+
/** Derived counter; accumulates `value1` whenever it is divisible by three. */
|
|
8
27
|
get value2(): RefWrapper<number>;
|
|
9
28
|
set value2(v: RefWrapper<number>);
|
|
10
|
-
|
|
29
|
+
constructor();
|
|
30
|
+
/**
|
|
31
|
+
* Returns a `RefWrapper<number>` that accumulates the input
|
|
32
|
+
* `RefWrapper`'s `value` whenever the input becomes divisible by
|
|
33
|
+
* three. `untrack` keeps the write off the reactive dependency
|
|
34
|
+
* graph so the effect does not self-trigger.
|
|
35
|
+
*/
|
|
36
|
+
private useTestEffect;
|
|
11
37
|
}
|