@placeholderco/placeholder-ui 1.0.12 → 2.0.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/LICENSE +1 -1
- package/README.md +134 -130
- package/dist/app.css +178 -0
- package/dist/bootstrap.min.css +3600 -0
- package/dist/cards/GitCard.svelte +115 -0
- package/dist/cards/GitCard.svelte.d.ts +22 -0
- package/dist/display/Avatar.svelte +29 -17
- package/dist/display/Avatar.svelte.d.ts +12 -2
- package/dist/display/LinkCollection.svelte +40 -18
- package/dist/display/LinkCollection.svelte.d.ts +9 -2
- package/dist/display/Paper.svelte +31 -19
- package/dist/display/Paper.svelte.d.ts +12 -3
- package/dist/display/alert/Alert.svelte +129 -0
- package/dist/display/alert/Alert.svelte.d.ts +15 -0
- package/dist/display/alert/AlertVariant.d.ts +1 -0
- package/dist/display/alert/AlertVariant.js +1 -0
- package/dist/display/filetree/FileTree.svelte +259 -0
- package/dist/display/filetree/FileTree.svelte.d.ts +76 -0
- package/dist/display/filetree/FileTreeItem.svelte +396 -0
- package/dist/display/filetree/FileTreeItem.svelte.d.ts +40 -0
- package/dist/display/filetree/FileTreeNode.d.ts +46 -0
- package/dist/display/filetree/FileTreeNode.js +115 -0
- package/dist/display/filetree/index.d.ts +5 -0
- package/dist/display/filetree/index.js +3 -0
- package/dist/editors/CodeMirror.svelte +306 -0
- package/dist/editors/CodeMirror.svelte.d.ts +31 -0
- package/dist/editors/tiptap/LinkActionMenu.svelte +307 -0
- package/dist/editors/tiptap/LinkActionMenu.svelte.d.ts +8 -0
- package/dist/editors/tiptap/TipTap.svelte +856 -0
- package/dist/editors/tiptap/TipTap.svelte.d.ts +54 -0
- package/dist/editors/tiptap/TipTapBubble.svelte +790 -0
- package/dist/editors/tiptap/TipTapBubble.svelte.d.ts +44 -0
- package/dist/editors/tiptap/collaboration.d.ts +55 -0
- package/dist/editors/tiptap/collaboration.js +1 -0
- package/dist/editors/tiptap/extensions/Alert.d.ts +18 -0
- package/dist/editors/tiptap/extensions/Alert.js +72 -0
- package/dist/editors/tiptap/extensions/CodeBlockEditor.d.ts +21 -0
- package/dist/editors/tiptap/extensions/CodeBlockEditor.js +326 -0
- package/dist/editors/tiptap/extensions/Div.d.ts +19 -0
- package/dist/editors/tiptap/extensions/Div.js +89 -0
- package/dist/editors/tiptap/extensions/Span.d.ts +5 -0
- package/dist/editors/tiptap/extensions/Span.js +56 -0
- package/dist/editors/tiptap/extensions/codeBlockEditor.css +236 -0
- package/dist/editors/tiptap/extensions/codeBlockLanguages.d.ts +17 -0
- package/dist/editors/tiptap/extensions/codeBlockLanguages.js +124 -0
- package/dist/editors/tiptap/extensions/index.d.ts +7 -0
- package/dist/editors/tiptap/extensions/index.js +5 -0
- package/dist/editors/tiptap/toolbar/AlertButton.svelte +261 -0
- package/dist/editors/tiptap/toolbar/AlertButton.svelte.d.ts +7 -0
- package/dist/editors/tiptap/toolbar/AlignCenterButton.svelte +18 -0
- package/dist/editors/tiptap/toolbar/AlignCenterButton.svelte.d.ts +7 -0
- package/dist/editors/tiptap/toolbar/AlignJustifyButton.svelte +18 -0
- package/dist/editors/tiptap/toolbar/AlignJustifyButton.svelte.d.ts +7 -0
- package/dist/editors/tiptap/toolbar/AlignLeftButton.svelte +18 -0
- package/dist/editors/tiptap/toolbar/AlignLeftButton.svelte.d.ts +7 -0
- package/dist/editors/tiptap/toolbar/AlignRightButton.svelte +18 -0
- package/dist/editors/tiptap/toolbar/AlignRightButton.svelte.d.ts +7 -0
- package/dist/editors/tiptap/toolbar/BoldButton.svelte +18 -0
- package/dist/editors/tiptap/toolbar/BoldButton.svelte.d.ts +7 -0
- package/dist/editors/tiptap/toolbar/BulletListButton.svelte +18 -0
- package/dist/editors/tiptap/toolbar/BulletListButton.svelte.d.ts +7 -0
- package/dist/editors/tiptap/toolbar/CodeBlockButton.svelte +18 -0
- package/dist/editors/tiptap/toolbar/CodeBlockButton.svelte.d.ts +7 -0
- package/dist/editors/tiptap/toolbar/CodeButton.svelte +18 -0
- package/dist/editors/tiptap/toolbar/CodeButton.svelte.d.ts +7 -0
- package/dist/editors/tiptap/toolbar/ColorButton.svelte +299 -0
- package/dist/editors/tiptap/toolbar/ColorButton.svelte.d.ts +20 -0
- package/dist/editors/tiptap/toolbar/DocumentButton.svelte +58 -0
- package/dist/editors/tiptap/toolbar/DocumentButton.svelte.d.ts +9 -0
- package/dist/editors/tiptap/toolbar/HeadingButton.svelte +30 -0
- package/dist/editors/tiptap/toolbar/HeadingButton.svelte.d.ts +8 -0
- package/dist/editors/tiptap/toolbar/HtmlButton.svelte +68 -0
- package/dist/editors/tiptap/toolbar/HtmlButton.svelte.d.ts +7 -0
- package/dist/editors/tiptap/toolbar/ImageButton.svelte +54 -0
- package/dist/editors/tiptap/toolbar/ImageButton.svelte.d.ts +8 -0
- package/dist/editors/tiptap/toolbar/ItalicButton.svelte +18 -0
- package/dist/editors/tiptap/toolbar/ItalicButton.svelte.d.ts +7 -0
- package/dist/editors/tiptap/toolbar/LinkButton.svelte +257 -0
- package/dist/editors/tiptap/toolbar/LinkButton.svelte.d.ts +7 -0
- package/dist/editors/tiptap/toolbar/OrderedListButton.svelte +18 -0
- package/dist/editors/tiptap/toolbar/OrderedListButton.svelte.d.ts +7 -0
- package/dist/editors/tiptap/toolbar/RedoButton.svelte +18 -0
- package/dist/editors/tiptap/toolbar/RedoButton.svelte.d.ts +7 -0
- package/dist/editors/tiptap/toolbar/StrikethroughButton.svelte +18 -0
- package/dist/editors/tiptap/toolbar/StrikethroughButton.svelte.d.ts +7 -0
- package/dist/editors/tiptap/toolbar/SubscriptButton.svelte +18 -0
- package/dist/editors/tiptap/toolbar/SubscriptButton.svelte.d.ts +7 -0
- package/dist/editors/tiptap/toolbar/SuperscriptButton.svelte +18 -0
- package/dist/editors/tiptap/toolbar/SuperscriptButton.svelte.d.ts +7 -0
- package/dist/editors/tiptap/toolbar/TableButton.svelte +258 -0
- package/dist/editors/tiptap/toolbar/TableButton.svelte.d.ts +7 -0
- package/dist/editors/tiptap/toolbar/ToolbarButton.svelte +84 -0
- package/dist/editors/tiptap/toolbar/ToolbarButton.svelte.d.ts +10 -0
- package/dist/editors/tiptap/toolbar/UnderlineButton.svelte +18 -0
- package/dist/editors/tiptap/toolbar/UnderlineButton.svelte.d.ts +7 -0
- package/dist/editors/tiptap/toolbar/UndoButton.svelte +18 -0
- package/dist/editors/tiptap/toolbar/UndoButton.svelte.d.ts +7 -0
- package/dist/form/Autocomplete.svelte +86 -135
- package/dist/form/Autocomplete.svelte.d.ts +6 -8
- package/dist/form/AutocompleteMulti.svelte +385 -227
- package/dist/form/AutocompleteMulti.svelte.d.ts +59 -10
- package/dist/form/Checkbox.svelte +59 -54
- package/dist/form/Checkbox.svelte.d.ts +14 -5
- package/dist/form/Chips.svelte +29 -13
- package/dist/form/Chips.svelte.d.ts +16 -2
- package/dist/form/ComboBox.svelte +30 -20
- package/dist/form/ComboBox.svelte.d.ts +1 -1
- package/dist/form/ComboBoxItemBuilder.svelte +161 -188
- package/dist/form/ComboBoxItemBuilder.svelte.d.ts +19 -2
- package/dist/form/ComboBoxMulti.svelte +38 -24
- package/dist/form/ComboBoxMulti.svelte.d.ts +1 -1
- package/dist/form/CronBuilder.svelte +84 -67
- package/dist/form/CronBuilder.svelte.d.ts +16 -3
- package/dist/form/DatePicker.svelte +148 -195
- package/dist/form/DateRangePicker.svelte +101 -98
- package/dist/form/DateTimePicker.svelte +167 -208
- package/dist/form/DateTimePicker.svelte.d.ts +10 -2
- package/dist/form/FormGroup.svelte +33 -10
- package/dist/form/FormGroup.svelte.d.ts +12 -2
- package/dist/form/Number.svelte +70 -47
- package/dist/form/Number.svelte.d.ts +36 -6
- package/dist/form/Radio.svelte +18 -18
- package/dist/form/RadioGroup.svelte +23 -12
- package/dist/form/RadioGroup.svelte.d.ts +13 -2
- package/dist/form/SegmentedControl.svelte +76 -56
- package/dist/form/SegmentedControl.svelte.d.ts +9 -4
- package/dist/form/Select.svelte +150 -233
- package/dist/form/Select.svelte.d.ts +29 -5
- package/dist/form/SelectMulti.svelte +163 -277
- package/dist/form/SelectMulti.svelte.d.ts +36 -7
- package/dist/form/Slider.svelte +183 -269
- package/dist/form/Slider.svelte.d.ts +32 -17
- package/dist/form/StringArrayBuilder.svelte +249 -0
- package/dist/form/StringArrayBuilder.svelte.d.ts +15 -0
- package/dist/form/Switch.svelte +164 -106
- package/dist/form/Switch.svelte.d.ts +22 -3
- package/dist/form/TextArea.svelte +49 -29
- package/dist/form/TextArea.svelte.d.ts +23 -3
- package/dist/form/Textbox.svelte +69 -68
- package/dist/form/Textbox.svelte.d.ts +32 -4
- package/dist/form/TimePicker.svelte +42 -47
- package/dist/form/TimePicker.svelte.d.ts +12 -2
- package/dist/form/comboBoxCore.svelte.d.ts +99 -0
- package/dist/form/comboBoxCore.svelte.js +243 -0
- package/dist/icon/Icon.svelte +8 -3
- package/dist/icon/Icon.svelte.d.ts +8 -3
- package/dist/icon/file-type-bmp.svg +1 -0
- package/dist/icon/file-type-csv.svg +1 -0
- package/dist/icon/file-type-doc.svg +1 -0
- package/dist/icon/file-type-docx.svg +1 -0
- package/dist/icon/file-type-jpg.svg +1 -0
- package/dist/icon/file-type-pdf.svg +1 -0
- package/dist/icon/file-type-png.svg +1 -0
- package/dist/icon/file-type-ppt.svg +1 -0
- package/dist/icon/file-type-svg.svg +1 -0
- package/dist/icon/file-type-txt.svg +1 -0
- package/dist/icon/file-type-xls.svg +1 -0
- package/dist/icon/file-type-zip.svg +1 -0
- package/dist/icon/index.d.ts +166 -151
- package/dist/icon/index.js +166 -152
- package/dist/icon/logo-placeholder.svg +6 -0
- package/dist/icon/source-code.svg +1 -0
- package/dist/icon/sun-moon.svg +1 -0
- package/dist/icon/table.svg +6 -0
- package/dist/index.d.ts +87 -26
- package/dist/index.js +25 -28
- package/dist/layout/AppShell.svelte +12 -162
- package/dist/layout/AppShell.svelte.d.ts +6 -27
- package/dist/layout/CustomNavbar.svelte +9 -7
- package/dist/layout/CustomNavbar.svelte.d.ts +4 -2
- package/dist/layout/Navbar.svelte +161 -129
- package/dist/layout/Navbar.svelte.d.ts +29 -15
- package/dist/layout/NavbarItemDisplay.svelte +2 -2
- package/dist/layout/NavbarItemView.svelte +182 -0
- package/dist/layout/NavbarItemView.svelte.d.ts +10 -0
- package/dist/layout/Sidenav.svelte +280 -341
- package/dist/layout/Sidenav.svelte.d.ts +36 -4
- package/dist/models/ComboBoxItem.d.ts +2 -0
- package/dist/models/Employee.d.ts +53 -0
- package/dist/models/Employee.js +23 -0
- package/dist/models/Hyperlink.d.ts +3 -1
- package/dist/models/LinkCollectionItem.d.ts +3 -1
- package/dist/models/NavbarItem.d.ts +6 -2
- package/dist/theme.svelte.d.ts +0 -1
- package/dist/theme.svelte.js +46 -58
- package/dist/ui/Accordion.svelte +81 -242
- package/dist/ui/Accordion.svelte.d.ts +37 -14
- package/dist/ui/AccordionItem.svelte +303 -0
- package/dist/ui/AccordionItem.svelte.d.ts +21 -0
- package/dist/ui/ActionIcon.svelte +25 -21
- package/dist/ui/ActionIcon.svelte.d.ts +15 -2
- package/dist/ui/Badge.svelte +163 -171
- package/dist/ui/Badge.svelte.d.ts +13 -5
- package/dist/ui/Button.svelte +178 -205
- package/dist/ui/Button.svelte.d.ts +19 -2
- package/dist/ui/ButtonVariant.d.ts +15 -1
- package/dist/ui/ContextMenu.svelte +146 -0
- package/dist/ui/ContextMenu.svelte.d.ts +37 -0
- package/dist/ui/ContextMenuList.svelte +188 -0
- package/dist/ui/ContextMenuList.svelte.d.ts +12 -0
- package/dist/ui/Dialog.svelte +183 -111
- package/dist/ui/Dialog.svelte.d.ts +21 -4
- package/dist/ui/Drawer.svelte +237 -184
- package/dist/ui/Drawer.svelte.d.ts +20 -2
- package/dist/ui/Dropdown.svelte +24 -14
- package/dist/ui/Dropdown.svelte.d.ts +11 -2
- package/dist/ui/Dropzone.svelte +159 -57
- package/dist/ui/Dropzone.svelte.d.ts +29 -2
- package/dist/ui/Link.svelte +12 -4
- package/dist/ui/Link.svelte.d.ts +8 -2
- package/dist/ui/Loader.svelte +23 -18
- package/dist/ui/Loader.svelte.d.ts +5 -2
- package/dist/ui/Logo.svelte +37 -0
- package/dist/ui/Logo.svelte.d.ts +16 -0
- package/dist/ui/MultiSortable.svelte +287 -0
- package/dist/ui/MultiSortable.svelte.d.ts +50 -0
- package/dist/ui/Pagination.svelte +15 -9
- package/dist/ui/Pagination.svelte.d.ts +6 -2
- package/dist/ui/Popover.svelte +43 -65
- package/dist/ui/Popover.svelte.d.ts +14 -5
- package/dist/ui/ProgressBar.svelte +28 -30
- package/dist/ui/ProgressBarVariant.d.ts +7 -1
- package/dist/ui/SegmentedControl.svelte +0 -0
- package/dist/ui/SegmentedControl.svelte.d.ts +26 -0
- package/dist/ui/Sortable.svelte +163 -0
- package/dist/ui/Sortable.svelte.d.ts +47 -0
- package/dist/ui/Table.svelte +383 -80
- package/dist/ui/Table.svelte.d.ts +43 -2
- package/dist/ui/Tabs.svelte +22 -18
- package/dist/ui/Tabs.svelte.d.ts +6 -2
- package/dist/ui/ThemeSwitcher.svelte +26 -7
- package/dist/ui/ThemeSwitcher.svelte.d.ts +4 -2
- package/dist/ui/Tooltip.svelte +312 -180
- package/dist/ui/Tooltip.svelte.d.ts +4 -3
- package/dist/uiTheme.svelte.d.ts +86 -0
- package/dist/uiTheme.svelte.js +214 -0
- package/dist/util/DateFunctions.js +1 -1
- package/dist/util/DragDrop.d.ts +50 -0
- package/dist/util/DragDrop.js +154 -0
- package/dist/util/NavigateTo.js +2 -2
- package/dist/util/dayjs.d.ts +4 -0
- package/dist/util/dayjs.js +15 -0
- package/package.json +66 -26
- package/dist/display/Alert.svelte +0 -179
- package/dist/display/Alert.svelte.d.ts +0 -13
- package/dist/form/FileInput.svelte +0 -235
- package/dist/form/FileInput.svelte.d.ts +0 -23
- package/dist/form/PasswordInput.svelte +0 -253
- package/dist/form/PasswordInput.svelte.d.ts +0 -34
- package/dist/form/Rating.svelte +0 -235
- package/dist/form/Rating.svelte.d.ts +0 -21
- package/dist/styles/components.css +0 -199
- package/dist/styles/dark.css +0 -146
- package/dist/styles/index.css +0 -116
- package/dist/styles/reset.css +0 -110
- package/dist/styles/semantic.css +0 -86
- package/dist/styles/tokens.css +0 -203
- package/dist/styles/utilities.css +0 -523
- package/dist/ui/Breadcrumbs.svelte +0 -131
- package/dist/ui/Breadcrumbs.svelte.d.ts +0 -16
- package/dist/ui/LoadingOverlay.svelte +0 -53
- package/dist/ui/LoadingOverlay.svelte.d.ts +0 -11
- package/dist/ui/Progress.svelte +0 -191
- package/dist/ui/Progress.svelte.d.ts +0 -15
- package/dist/ui/RingProgress.svelte +0 -141
- package/dist/ui/RingProgress.svelte.d.ts +0 -18
- package/dist/ui/Skeleton.svelte +0 -85
- package/dist/ui/Skeleton.svelte.d.ts +0 -12
- package/dist/ui/Stepper.svelte +0 -355
- package/dist/ui/Stepper.svelte.d.ts +0 -24
- package/dist/ui/Timeline.svelte +0 -225
- package/dist/ui/Timeline.svelte.d.ts +0 -23
- /package/dist/{actions → util}/ClickOutside.d.ts +0 -0
- /package/dist/{actions → util}/ClickOutside.js +0 -0
- /package/dist/{transitions → util}/Transitions.d.ts +0 -0
- /package/dist/{transitions → util}/Transitions.js +0 -0
|
@@ -1,13 +1,21 @@
|
|
|
1
|
-
interface
|
|
1
|
+
export interface DateTimePickerProps {
|
|
2
|
+
/** Label text displayed above the picker */
|
|
2
3
|
label?: string;
|
|
4
|
+
/** Disable the date/time picker */
|
|
3
5
|
disabled?: boolean;
|
|
6
|
+
/** Mark field as required (shows asterisk) */
|
|
4
7
|
required?: boolean;
|
|
8
|
+
/** CSS classes for the container element */
|
|
5
9
|
containerClass?: string;
|
|
10
|
+
/** Selected date/time value in ISO format (bindable) */
|
|
6
11
|
value?: string | undefined;
|
|
12
|
+
/** Minimum selectable date/time in ISO format */
|
|
7
13
|
minDate?: string | undefined;
|
|
14
|
+
/** Maximum selectable date/time in ISO format */
|
|
8
15
|
maxDate?: string | undefined;
|
|
16
|
+
/** Callback when selected date/time changes */
|
|
9
17
|
onchange?: (date: string | undefined) => void;
|
|
10
18
|
}
|
|
11
|
-
declare const DateTimePicker: import("svelte").Component<
|
|
19
|
+
declare const DateTimePicker: import("svelte").Component<DateTimePickerProps, {}, "value">;
|
|
12
20
|
type DateTimePicker = ReturnType<typeof DateTimePicker>;
|
|
13
21
|
export default DateTimePicker;
|
|
@@ -1,20 +1,33 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import { Icon, iconInfoCircle } from '../icon/index.js';
|
|
3
|
-
import Tooltip from '../ui/Tooltip.svelte';
|
|
1
|
+
<script module lang="ts">
|
|
4
2
|
import type { Snippet } from 'svelte';
|
|
5
3
|
|
|
6
|
-
interface
|
|
4
|
+
export interface FormGroupProps {
|
|
5
|
+
/** Label text displayed above the form field */
|
|
7
6
|
label: string;
|
|
7
|
+
/** Mark field as required (shows asterisk) */
|
|
8
8
|
required?: boolean;
|
|
9
|
+
/** Custom ID for the form field */
|
|
9
10
|
id?: string;
|
|
11
|
+
/** Additional CSS classes */
|
|
10
12
|
class?: string;
|
|
13
|
+
/** Show error state styling */
|
|
11
14
|
showError?: boolean;
|
|
15
|
+
/** Error message to display */
|
|
12
16
|
errorText?: string;
|
|
17
|
+
/** Rich tooltip content using a Svelte snippet */
|
|
13
18
|
tooltipContent?: Snippet;
|
|
19
|
+
/** Simple tooltip text */
|
|
14
20
|
tooltipText?: string;
|
|
21
|
+
/** Position of the tooltip */
|
|
15
22
|
tooltipLocation?: 'top' | 'bottom' | 'left' | 'right';
|
|
23
|
+
/** Form field content */
|
|
16
24
|
children: Snippet;
|
|
17
25
|
}
|
|
26
|
+
</script>
|
|
27
|
+
|
|
28
|
+
<script lang="ts">
|
|
29
|
+
import { Icon, iconInfoCircle } from '../icon/index.js';
|
|
30
|
+
import Tooltip from '../ui/Tooltip.svelte';
|
|
18
31
|
|
|
19
32
|
let {
|
|
20
33
|
label,
|
|
@@ -27,7 +40,7 @@
|
|
|
27
40
|
tooltipText,
|
|
28
41
|
tooltipLocation = 'top',
|
|
29
42
|
children
|
|
30
|
-
}:
|
|
43
|
+
}: FormGroupProps = $props();
|
|
31
44
|
|
|
32
45
|
const computedId = $derived(id ?? `form-${label}`);
|
|
33
46
|
</script>
|
|
@@ -56,13 +69,23 @@
|
|
|
56
69
|
|
|
57
70
|
<style>
|
|
58
71
|
.label {
|
|
59
|
-
|
|
60
|
-
|
|
72
|
+
display: flex;
|
|
73
|
+
align-items: center;
|
|
74
|
+
gap: 0.25rem;
|
|
75
|
+
font-size: 0.875rem;
|
|
76
|
+
line-height: 1.25rem;
|
|
77
|
+
font-weight: 500;
|
|
78
|
+
margin-bottom: 0.25rem;
|
|
79
|
+
color: var(--label-color, var(--bs-secondary, #6c757d));
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.text-required {
|
|
83
|
+
color: var(--danger-text);
|
|
61
84
|
}
|
|
62
85
|
|
|
63
86
|
.error-text {
|
|
64
|
-
color: var(--
|
|
65
|
-
font-size:
|
|
66
|
-
margin-top:
|
|
87
|
+
color: var(--danger-text);
|
|
88
|
+
font-size: 0.875rem;
|
|
89
|
+
margin-top: 0.25rem;
|
|
67
90
|
}
|
|
68
91
|
</style>
|
|
@@ -1,16 +1,26 @@
|
|
|
1
1
|
import type { Snippet } from 'svelte';
|
|
2
|
-
interface
|
|
2
|
+
export interface FormGroupProps {
|
|
3
|
+
/** Label text displayed above the form field */
|
|
3
4
|
label: string;
|
|
5
|
+
/** Mark field as required (shows asterisk) */
|
|
4
6
|
required?: boolean;
|
|
7
|
+
/** Custom ID for the form field */
|
|
5
8
|
id?: string;
|
|
9
|
+
/** Additional CSS classes */
|
|
6
10
|
class?: string;
|
|
11
|
+
/** Show error state styling */
|
|
7
12
|
showError?: boolean;
|
|
13
|
+
/** Error message to display */
|
|
8
14
|
errorText?: string;
|
|
15
|
+
/** Rich tooltip content using a Svelte snippet */
|
|
9
16
|
tooltipContent?: Snippet;
|
|
17
|
+
/** Simple tooltip text */
|
|
10
18
|
tooltipText?: string;
|
|
19
|
+
/** Position of the tooltip */
|
|
11
20
|
tooltipLocation?: 'top' | 'bottom' | 'left' | 'right';
|
|
21
|
+
/** Form field content */
|
|
12
22
|
children: Snippet;
|
|
13
23
|
}
|
|
14
|
-
declare const FormGroup: import("svelte").Component<
|
|
24
|
+
declare const FormGroup: import("svelte").Component<FormGroupProps, {}, "">;
|
|
15
25
|
type FormGroup = ReturnType<typeof FormGroup>;
|
|
16
26
|
export default FormGroup;
|
package/dist/form/Number.svelte
CHANGED
|
@@ -4,42 +4,72 @@
|
|
|
4
4
|
import Loader from '../ui/Loader.svelte';
|
|
5
5
|
import Icon from '../icon/Icon.svelte';
|
|
6
6
|
|
|
7
|
-
const autoName = `number-${
|
|
7
|
+
const autoName = `number-${crypto.randomUUID()}`;
|
|
8
8
|
|
|
9
|
-
interface
|
|
9
|
+
export interface NumberProps {
|
|
10
10
|
/** HTML name attribute for the input (falls back to label, then auto-generated) */
|
|
11
11
|
name?: string;
|
|
12
|
+
/** Label text displayed above the input */
|
|
12
13
|
label?: string;
|
|
14
|
+
/** Custom ID for the input element */
|
|
13
15
|
inputId?: string;
|
|
16
|
+
/** Placeholder text when input is empty */
|
|
14
17
|
placeholder?: string;
|
|
18
|
+
/** Mark field as required (shows asterisk) */
|
|
15
19
|
required?: boolean;
|
|
20
|
+
/** Auto-focus the input on mount */
|
|
16
21
|
autofocus?: boolean;
|
|
17
|
-
/** HTML autocomplete attribute */
|
|
22
|
+
/** HTML autocomplete attribute for the input */
|
|
18
23
|
autocomplete?: string;
|
|
24
|
+
/** Show loading spinner inside the input */
|
|
19
25
|
loading?: boolean;
|
|
26
|
+
/** CSS classes for the FormGroup wrapper */
|
|
20
27
|
groupClass?: string;
|
|
28
|
+
/** Reference to the input DOM element */
|
|
21
29
|
numberElement?: HTMLElement;
|
|
30
|
+
/** SVG icon displayed on the left side */
|
|
22
31
|
leftIconSvg?: string;
|
|
32
|
+
/** CSS classes for the input element */
|
|
23
33
|
class?: string;
|
|
34
|
+
/** CSS classes for the container element */
|
|
24
35
|
containerClass?: string;
|
|
36
|
+
/** Disable the input */
|
|
25
37
|
disabled?: boolean;
|
|
38
|
+
/** Input value (bindable) */
|
|
26
39
|
value?: number;
|
|
40
|
+
/** Whether the input is currently focused */
|
|
27
41
|
isFocused?: boolean;
|
|
42
|
+
/** Show error state styling */
|
|
28
43
|
showError?: boolean;
|
|
44
|
+
/** Error message to display */
|
|
29
45
|
errorText?: string;
|
|
46
|
+
/** Position of the tooltip */
|
|
30
47
|
tooltipLocation?: 'top' | 'bottom' | 'left' | 'right';
|
|
48
|
+
/** Minimum allowed value */
|
|
31
49
|
min?: number;
|
|
50
|
+
/** Maximum allowed value */
|
|
32
51
|
max?: number;
|
|
52
|
+
/** Increment/decrement step value */
|
|
33
53
|
step?: number;
|
|
34
|
-
|
|
54
|
+
/** Callback when Enter key is pressed */
|
|
55
|
+
onenter?: (value: number) => void;
|
|
56
|
+
/** Callback when value changes */
|
|
35
57
|
onchange?: (e: Event) => void;
|
|
58
|
+
/** Callback on input event */
|
|
36
59
|
oninput?: (e: Event) => void;
|
|
60
|
+
/** Callback on keydown event */
|
|
37
61
|
onkeydown?: (e: KeyboardEvent) => void;
|
|
62
|
+
/** Callback on keypress event */
|
|
38
63
|
onkeypress?: (e: KeyboardEvent) => void;
|
|
64
|
+
/** Callback on keyup event */
|
|
39
65
|
onkeyup?: (e: KeyboardEvent) => void;
|
|
40
|
-
|
|
41
|
-
|
|
66
|
+
/** Callback when input gains focus */
|
|
67
|
+
onfocus?: (value: number | undefined, e: FocusEvent) => void;
|
|
68
|
+
/** Callback when input loses focus */
|
|
69
|
+
onblur?: (value: number | undefined, e: FocusEvent) => void;
|
|
70
|
+
/** Content to render on the right side of the input */
|
|
42
71
|
right?: Snippet;
|
|
72
|
+
/** Additional content below the input */
|
|
43
73
|
children?: Snippet;
|
|
44
74
|
}
|
|
45
75
|
|
|
@@ -76,7 +106,11 @@
|
|
|
76
106
|
onblur = undefined,
|
|
77
107
|
right,
|
|
78
108
|
children
|
|
79
|
-
}:
|
|
109
|
+
}: NumberProps = $props();
|
|
110
|
+
|
|
111
|
+
let resolvedName = $derived(
|
|
112
|
+
(name || label || autoName).replace(/[^a-zA-Z0-9_\-:.]/g, '_')
|
|
113
|
+
);
|
|
80
114
|
|
|
81
115
|
let id = $derived.by(() => {
|
|
82
116
|
if (inputId) return inputId;
|
|
@@ -86,10 +120,6 @@
|
|
|
86
120
|
return Math.random().toString(36).substring(2, 8);
|
|
87
121
|
});
|
|
88
122
|
|
|
89
|
-
const resolvedName = $derived(
|
|
90
|
-
(name || label || autoName).replace(/[^a-zA-Z0-9_\-:.]/g, '_')
|
|
91
|
-
);
|
|
92
|
-
|
|
93
123
|
const extraClasses: string[] = $derived.by(() => {
|
|
94
124
|
const classes = [];
|
|
95
125
|
if (right) classes.push('rounded-r-none');
|
|
@@ -139,16 +169,16 @@
|
|
|
139
169
|
{min}
|
|
140
170
|
{max}
|
|
141
171
|
{step}
|
|
142
|
-
autocomplete={
|
|
172
|
+
autocomplete={autocomplete as any}
|
|
143
173
|
bind:value
|
|
144
174
|
bind:this={numberElement}
|
|
145
|
-
onblur={() => {
|
|
175
|
+
onblur={(e) => {
|
|
146
176
|
isFocused = false;
|
|
147
|
-
onblur?.(
|
|
177
|
+
onblur?.(value, e);
|
|
148
178
|
}}
|
|
149
|
-
onfocus={() => {
|
|
179
|
+
onfocus={(e) => {
|
|
150
180
|
isFocused = true;
|
|
151
|
-
onfocus?.(
|
|
181
|
+
onfocus?.(value, e);
|
|
152
182
|
}}
|
|
153
183
|
onchange={handleChange}
|
|
154
184
|
{oninput}
|
|
@@ -167,7 +197,12 @@
|
|
|
167
197
|
</div>
|
|
168
198
|
{/if}
|
|
169
199
|
{#if loading}
|
|
170
|
-
<div
|
|
200
|
+
<div
|
|
201
|
+
class="absolute
|
|
202
|
+
top-1/2 -translate-y-1/2
|
|
203
|
+
-translate-x-1/2
|
|
204
|
+
{leftIconSvg ? 'left-4' : 'right-0'}"
|
|
205
|
+
>
|
|
171
206
|
<Loader sizeOverride="1.1rem" />
|
|
172
207
|
</div>
|
|
173
208
|
{:else}
|
|
@@ -191,29 +226,30 @@
|
|
|
191
226
|
|
|
192
227
|
.number {
|
|
193
228
|
width: 100%;
|
|
194
|
-
font-size:
|
|
195
|
-
line-height:
|
|
196
|
-
padding:
|
|
197
|
-
border: 1px solid var(--
|
|
198
|
-
background-color: var(--
|
|
199
|
-
color: var(--
|
|
200
|
-
border-radius:
|
|
229
|
+
font-size: 1rem;
|
|
230
|
+
line-height: 1.5rem;
|
|
231
|
+
padding: 0.25rem;
|
|
232
|
+
border: 1px solid var(--border-color);
|
|
233
|
+
background-color: var(--input-bg-color);
|
|
234
|
+
color: var(--text-color);
|
|
235
|
+
border-radius: 0.25rem;
|
|
236
|
+
padding: 0.25rem 0.5rem;
|
|
201
237
|
box-sizing: border-box;
|
|
202
238
|
}
|
|
203
239
|
|
|
204
240
|
.number.disabled {
|
|
205
241
|
opacity: 0.5;
|
|
206
242
|
cursor: not-allowed;
|
|
207
|
-
background: var(--
|
|
243
|
+
background: var(--border-color);
|
|
208
244
|
}
|
|
209
245
|
|
|
210
246
|
.number:focus {
|
|
211
|
-
border-color: var(--
|
|
247
|
+
border-color: var(--accent-color);
|
|
212
248
|
outline: 2px solid transparent;
|
|
213
|
-
outline-offset:
|
|
249
|
+
outline-offset: 2px;
|
|
214
250
|
|
|
215
251
|
& ~ .left-icon {
|
|
216
|
-
color: var(--
|
|
252
|
+
color: var(--accent-color);
|
|
217
253
|
}
|
|
218
254
|
}
|
|
219
255
|
|
|
@@ -223,7 +259,7 @@
|
|
|
223
259
|
}
|
|
224
260
|
|
|
225
261
|
.with-left-icon {
|
|
226
|
-
padding-left:
|
|
262
|
+
padding-left: 2rem;
|
|
227
263
|
}
|
|
228
264
|
|
|
229
265
|
.left-icon {
|
|
@@ -231,28 +267,15 @@
|
|
|
231
267
|
pointer-events: none;
|
|
232
268
|
top: 50%;
|
|
233
269
|
transform: translateY(-40%);
|
|
234
|
-
left:
|
|
235
|
-
color:
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
.loader {
|
|
239
|
-
position: absolute;
|
|
240
|
-
right: var(--pui-spacing-2);
|
|
241
|
-
top: 50%;
|
|
242
|
-
transform: translateY(-50%);
|
|
243
|
-
pointer-events: none;
|
|
244
|
-
}
|
|
245
|
-
|
|
246
|
-
.loader.loader-left {
|
|
247
|
-
right: auto;
|
|
248
|
-
left: var(--pui-spacing-2);
|
|
270
|
+
left: 0.5rem;
|
|
271
|
+
color: rgb(115 115 115);
|
|
249
272
|
}
|
|
250
273
|
|
|
251
274
|
.show-error {
|
|
252
|
-
border-color: var(--
|
|
275
|
+
border-color: var(--danger-text);
|
|
253
276
|
}
|
|
254
277
|
|
|
255
278
|
.text-error {
|
|
256
|
-
color: var(--
|
|
279
|
+
color: var(--danger-text);
|
|
257
280
|
}
|
|
258
|
-
</style>
|
|
281
|
+
</style>
|
|
@@ -1,40 +1,70 @@
|
|
|
1
1
|
import { type Snippet } from 'svelte';
|
|
2
|
-
interface
|
|
2
|
+
export interface NumberProps {
|
|
3
3
|
/** HTML name attribute for the input (falls back to label, then auto-generated) */
|
|
4
4
|
name?: string;
|
|
5
|
+
/** Label text displayed above the input */
|
|
5
6
|
label?: string;
|
|
7
|
+
/** Custom ID for the input element */
|
|
6
8
|
inputId?: string;
|
|
9
|
+
/** Placeholder text when input is empty */
|
|
7
10
|
placeholder?: string;
|
|
11
|
+
/** Mark field as required (shows asterisk) */
|
|
8
12
|
required?: boolean;
|
|
13
|
+
/** Auto-focus the input on mount */
|
|
9
14
|
autofocus?: boolean;
|
|
10
|
-
/** HTML autocomplete attribute */
|
|
15
|
+
/** HTML autocomplete attribute for the input */
|
|
11
16
|
autocomplete?: string;
|
|
17
|
+
/** Show loading spinner inside the input */
|
|
12
18
|
loading?: boolean;
|
|
19
|
+
/** CSS classes for the FormGroup wrapper */
|
|
13
20
|
groupClass?: string;
|
|
21
|
+
/** Reference to the input DOM element */
|
|
14
22
|
numberElement?: HTMLElement;
|
|
23
|
+
/** SVG icon displayed on the left side */
|
|
15
24
|
leftIconSvg?: string;
|
|
25
|
+
/** CSS classes for the input element */
|
|
16
26
|
class?: string;
|
|
27
|
+
/** CSS classes for the container element */
|
|
17
28
|
containerClass?: string;
|
|
29
|
+
/** Disable the input */
|
|
18
30
|
disabled?: boolean;
|
|
31
|
+
/** Input value (bindable) */
|
|
19
32
|
value?: number;
|
|
33
|
+
/** Whether the input is currently focused */
|
|
20
34
|
isFocused?: boolean;
|
|
35
|
+
/** Show error state styling */
|
|
21
36
|
showError?: boolean;
|
|
37
|
+
/** Error message to display */
|
|
22
38
|
errorText?: string;
|
|
39
|
+
/** Position of the tooltip */
|
|
23
40
|
tooltipLocation?: 'top' | 'bottom' | 'left' | 'right';
|
|
41
|
+
/** Minimum allowed value */
|
|
24
42
|
min?: number;
|
|
43
|
+
/** Maximum allowed value */
|
|
25
44
|
max?: number;
|
|
45
|
+
/** Increment/decrement step value */
|
|
26
46
|
step?: number;
|
|
27
|
-
|
|
47
|
+
/** Callback when Enter key is pressed */
|
|
48
|
+
onenter?: (value: number) => void;
|
|
49
|
+
/** Callback when value changes */
|
|
28
50
|
onchange?: (e: Event) => void;
|
|
51
|
+
/** Callback on input event */
|
|
29
52
|
oninput?: (e: Event) => void;
|
|
53
|
+
/** Callback on keydown event */
|
|
30
54
|
onkeydown?: (e: KeyboardEvent) => void;
|
|
55
|
+
/** Callback on keypress event */
|
|
31
56
|
onkeypress?: (e: KeyboardEvent) => void;
|
|
57
|
+
/** Callback on keyup event */
|
|
32
58
|
onkeyup?: (e: KeyboardEvent) => void;
|
|
33
|
-
|
|
34
|
-
|
|
59
|
+
/** Callback when input gains focus */
|
|
60
|
+
onfocus?: (value: number | undefined, e: FocusEvent) => void;
|
|
61
|
+
/** Callback when input loses focus */
|
|
62
|
+
onblur?: (value: number | undefined, e: FocusEvent) => void;
|
|
63
|
+
/** Content to render on the right side of the input */
|
|
35
64
|
right?: Snippet;
|
|
65
|
+
/** Additional content below the input */
|
|
36
66
|
children?: Snippet;
|
|
37
67
|
}
|
|
38
|
-
declare const Number: import("svelte").Component<
|
|
68
|
+
declare const Number: import("svelte").Component<NumberProps, {}, "value" | "numberElement">;
|
|
39
69
|
type Number = ReturnType<typeof Number>;
|
|
40
70
|
export default Number;
|
package/dist/form/Radio.svelte
CHANGED
|
@@ -76,7 +76,7 @@
|
|
|
76
76
|
-webkit-appearance: none;
|
|
77
77
|
-moz-appearance: none;
|
|
78
78
|
appearance: none;
|
|
79
|
-
margin:
|
|
79
|
+
margin: 8px;
|
|
80
80
|
box-sizing: content-box;
|
|
81
81
|
overflow: hidden;
|
|
82
82
|
cursor: pointer;
|
|
@@ -88,29 +88,29 @@
|
|
|
88
88
|
box-sizing: content-box;
|
|
89
89
|
width: 16px;
|
|
90
90
|
height: 16px;
|
|
91
|
-
border: 2px solid
|
|
92
|
-
transition:
|
|
91
|
+
border: 2px solid #ccc;
|
|
92
|
+
transition: 0.2s border-color ease;
|
|
93
93
|
}
|
|
94
94
|
|
|
95
95
|
:global(.dark) input:before {
|
|
96
|
-
border-color:
|
|
96
|
+
border-color: #666;
|
|
97
97
|
}
|
|
98
98
|
input:checked:before {
|
|
99
|
-
border-color: var(--
|
|
100
|
-
transition:
|
|
99
|
+
border-color: var(--ui-primary);
|
|
100
|
+
transition: 0.5s border-color ease;
|
|
101
101
|
}
|
|
102
102
|
:global(.dark) input:checked:before {
|
|
103
|
-
border-color: var(--
|
|
103
|
+
border-color: var(--ui-accent);
|
|
104
104
|
}
|
|
105
105
|
|
|
106
106
|
input:disabled:before {
|
|
107
|
-
border-color:
|
|
108
|
-
background-color:
|
|
107
|
+
border-color: #ccc;
|
|
108
|
+
background-color: #ccc;
|
|
109
109
|
opacity: 0.5;
|
|
110
110
|
}
|
|
111
111
|
:global(.dark) input:disabled:before {
|
|
112
|
-
border-color:
|
|
113
|
-
background-color:
|
|
112
|
+
border-color: #666;
|
|
113
|
+
background-color: #666;
|
|
114
114
|
}
|
|
115
115
|
input:after {
|
|
116
116
|
content: '';
|
|
@@ -120,30 +120,30 @@
|
|
|
120
120
|
top: 50%;
|
|
121
121
|
left: 50%;
|
|
122
122
|
transform-origin: 50% 50%;
|
|
123
|
-
background-color: var(--
|
|
123
|
+
background-color: var(--ui-primary);
|
|
124
124
|
width: 16px;
|
|
125
125
|
height: 16px;
|
|
126
|
-
border-radius:
|
|
126
|
+
border-radius: 100vh;
|
|
127
127
|
transform: translate(-50%, -50%) scale(0);
|
|
128
128
|
}
|
|
129
129
|
input:disabled:after {
|
|
130
130
|
opacity: 0.5;
|
|
131
131
|
}
|
|
132
132
|
:global(.dark) input:after {
|
|
133
|
-
background-color: var(--
|
|
133
|
+
background-color: var(--ui-accent);
|
|
134
134
|
}
|
|
135
135
|
input[type='radio']:before {
|
|
136
|
-
border-radius:
|
|
136
|
+
border-radius: 100vh;
|
|
137
137
|
}
|
|
138
138
|
input[type='radio']:after {
|
|
139
139
|
width: 16px;
|
|
140
140
|
height: 16px;
|
|
141
|
-
border-radius:
|
|
141
|
+
border-radius: 100vh;
|
|
142
142
|
transform: translate(-50%, -50%) scale(0);
|
|
143
143
|
}
|
|
144
144
|
input[type='radio']:checked:after {
|
|
145
|
-
-webkit-animation: toggleOnRadio
|
|
146
|
-
animation: toggleOnRadio
|
|
145
|
+
-webkit-animation: toggleOnRadio 0.2s ease forwards;
|
|
146
|
+
animation: toggleOnRadio 0.2s ease forwards;
|
|
147
147
|
}
|
|
148
148
|
@-webkit-keyframes toggleOnRadio {
|
|
149
149
|
0% {
|
|
@@ -3,23 +3,34 @@
|
|
|
3
3
|
import FormGroup from './FormGroup.svelte';
|
|
4
4
|
import Radio from './Radio.svelte';
|
|
5
5
|
|
|
6
|
-
interface
|
|
6
|
+
export interface RadioGroupProps {
|
|
7
7
|
/** HTML name attribute for the radio group (falls back to label, then auto-generated) */
|
|
8
8
|
name?: string;
|
|
9
|
+
/** Label text displayed above the radio group */
|
|
9
10
|
label: string;
|
|
11
|
+
/** Available radio options */
|
|
10
12
|
options: ComboBoxItem[];
|
|
13
|
+
/** Mark field as required (shows asterisk) */
|
|
11
14
|
required?: boolean;
|
|
15
|
+
/** Show error state styling */
|
|
12
16
|
showError?: boolean;
|
|
17
|
+
/** Error message to display */
|
|
13
18
|
errorText?: string;
|
|
19
|
+
/** Additional CSS classes */
|
|
14
20
|
class?: string;
|
|
21
|
+
/** CSS classes for the container element */
|
|
15
22
|
containerClass?: string;
|
|
23
|
+
/** Disable all radio options */
|
|
16
24
|
disabled?: boolean;
|
|
17
25
|
/** When true, the radio state is controlled externally only. Clicking will call onchange but won't change the value. */
|
|
18
26
|
controlled?: boolean;
|
|
19
27
|
/** Display options vertically instead of horizontally */
|
|
20
28
|
vertical?: boolean;
|
|
29
|
+
/** Currently selected value (bindable) */
|
|
21
30
|
value?: string;
|
|
31
|
+
/** Position of the tooltip */
|
|
22
32
|
tooltipLocation?: 'top' | 'bottom' | 'left' | 'right';
|
|
33
|
+
/** Callback when selection changes */
|
|
23
34
|
onchange?: (e: string | undefined) => void;
|
|
24
35
|
}
|
|
25
36
|
|
|
@@ -32,17 +43,17 @@
|
|
|
32
43
|
errorText = '',
|
|
33
44
|
class: classes = '',
|
|
34
45
|
containerClass = '',
|
|
46
|
+
vertical = false,
|
|
35
47
|
disabled = false,
|
|
36
48
|
controlled = false,
|
|
37
|
-
vertical = false,
|
|
38
49
|
tooltipLocation = 'top',
|
|
39
50
|
value = $bindable(),
|
|
40
51
|
onchange = undefined
|
|
41
|
-
}:
|
|
52
|
+
}: RadioGroupProps = $props();
|
|
42
53
|
|
|
43
|
-
const
|
|
54
|
+
const autoName = `radio-${crypto.randomUUID()}`;
|
|
44
55
|
const resolvedName = $derived(
|
|
45
|
-
(name || label ||
|
|
56
|
+
(name || label || autoName).replace(/[^a-zA-Z0-9_\-:.]/g, '_')
|
|
46
57
|
);
|
|
47
58
|
|
|
48
59
|
function handleChange(option: ComboBoxItem) {
|
|
@@ -86,12 +97,12 @@
|
|
|
86
97
|
<style>
|
|
87
98
|
.radio-options {
|
|
88
99
|
display: flex;
|
|
89
|
-
gap:
|
|
90
|
-
border-radius:
|
|
100
|
+
gap: 0.5rem;
|
|
101
|
+
border-radius: 6px;
|
|
91
102
|
}
|
|
92
103
|
|
|
93
104
|
.radio-vertical.radio-options {
|
|
94
|
-
gap:
|
|
105
|
+
gap: 0.25rem;
|
|
95
106
|
}
|
|
96
107
|
|
|
97
108
|
.radio-vertical {
|
|
@@ -99,15 +110,15 @@
|
|
|
99
110
|
}
|
|
100
111
|
|
|
101
112
|
.radio-required {
|
|
102
|
-
padding:
|
|
113
|
+
padding: 0.25rem;
|
|
103
114
|
}
|
|
104
115
|
|
|
105
116
|
.error {
|
|
106
|
-
border: 1px solid var(--
|
|
117
|
+
border: 1px solid var(--danger-text);
|
|
107
118
|
}
|
|
108
119
|
|
|
109
120
|
.error-text {
|
|
110
|
-
margin-top:
|
|
111
|
-
color: var(--
|
|
121
|
+
margin-top: 0.25rem;
|
|
122
|
+
color: var(--danger-text);
|
|
112
123
|
}
|
|
113
124
|
</style>
|
|
@@ -1,23 +1,34 @@
|
|
|
1
1
|
import type { ComboBoxItem } from '../models/ComboBoxItem.js';
|
|
2
|
-
interface
|
|
2
|
+
export interface RadioGroupProps {
|
|
3
3
|
/** HTML name attribute for the radio group (falls back to label, then auto-generated) */
|
|
4
4
|
name?: string;
|
|
5
|
+
/** Label text displayed above the radio group */
|
|
5
6
|
label: string;
|
|
7
|
+
/** Available radio options */
|
|
6
8
|
options: ComboBoxItem[];
|
|
9
|
+
/** Mark field as required (shows asterisk) */
|
|
7
10
|
required?: boolean;
|
|
11
|
+
/** Show error state styling */
|
|
8
12
|
showError?: boolean;
|
|
13
|
+
/** Error message to display */
|
|
9
14
|
errorText?: string;
|
|
15
|
+
/** Additional CSS classes */
|
|
10
16
|
class?: string;
|
|
17
|
+
/** CSS classes for the container element */
|
|
11
18
|
containerClass?: string;
|
|
19
|
+
/** Disable all radio options */
|
|
12
20
|
disabled?: boolean;
|
|
13
21
|
/** When true, the radio state is controlled externally only. Clicking will call onchange but won't change the value. */
|
|
14
22
|
controlled?: boolean;
|
|
15
23
|
/** Display options vertically instead of horizontally */
|
|
16
24
|
vertical?: boolean;
|
|
25
|
+
/** Currently selected value (bindable) */
|
|
17
26
|
value?: string;
|
|
27
|
+
/** Position of the tooltip */
|
|
18
28
|
tooltipLocation?: 'top' | 'bottom' | 'left' | 'right';
|
|
29
|
+
/** Callback when selection changes */
|
|
19
30
|
onchange?: (e: string | undefined) => void;
|
|
20
31
|
}
|
|
21
|
-
declare const RadioGroup: import("svelte").Component<
|
|
32
|
+
declare const RadioGroup: import("svelte").Component<RadioGroupProps, {}, "value">;
|
|
22
33
|
type RadioGroup = ReturnType<typeof RadioGroup>;
|
|
23
34
|
export default RadioGroup;
|