@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
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
groupedOptions: ComboBoxGroup[];
|
|
11
11
|
loading: boolean;
|
|
12
12
|
open: boolean;
|
|
13
|
-
|
|
13
|
+
hideNoResults: boolean;
|
|
14
14
|
loadingText: string;
|
|
15
15
|
onSelection: (value: ComboBoxItem) => void;
|
|
16
16
|
htmlElement?: HTMLElement;
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
groupedOptions = [],
|
|
24
24
|
loading = false,
|
|
25
25
|
open = $bindable(false),
|
|
26
|
-
|
|
26
|
+
hideNoResults = false,
|
|
27
27
|
loadingText = '',
|
|
28
28
|
onSelection,
|
|
29
29
|
htmlElement = $bindable(undefined),
|
|
@@ -90,7 +90,7 @@
|
|
|
90
90
|
{:else if error}
|
|
91
91
|
<div class="p-2">{error}</div>
|
|
92
92
|
{:else if filterString && flattenedOptions?.length === 0}
|
|
93
|
-
{#if
|
|
93
|
+
{#if !hideNoResults}
|
|
94
94
|
<div class="p-2 no-results">No results found</div>
|
|
95
95
|
{/if}
|
|
96
96
|
{:else}
|
|
@@ -132,21 +132,32 @@
|
|
|
132
132
|
{/if}
|
|
133
133
|
|
|
134
134
|
<style>
|
|
135
|
+
/* .item {
|
|
136
|
+
&:hover,
|
|
137
|
+
&.selected {
|
|
138
|
+
@apply bg-main-border;
|
|
139
|
+
@apply text-accent;
|
|
140
|
+
}
|
|
141
|
+
} */
|
|
142
|
+
|
|
135
143
|
.combobox-multi {
|
|
136
144
|
position: absolute;
|
|
137
145
|
width: 100%;
|
|
138
|
-
z-index:
|
|
139
|
-
border-radius:
|
|
146
|
+
z-index: 50;
|
|
147
|
+
border-radius: 0.25rem;
|
|
140
148
|
overflow: hidden;
|
|
141
|
-
border: 1px solid var(--
|
|
142
|
-
background-color: var(--
|
|
149
|
+
border: 1px solid var(--main-border-color);
|
|
150
|
+
background-color: var(--input-bg-color);
|
|
151
|
+
/* absolute w-full z-50 rounded overflow-hidden
|
|
152
|
+
border border-main-border bg-input */
|
|
143
153
|
}
|
|
144
154
|
|
|
145
155
|
.combobox-multi-panel {
|
|
146
156
|
overflow: auto;
|
|
147
157
|
max-height: 20rem;
|
|
148
|
-
border: 1px solid var(--
|
|
158
|
+
border: 1px solid var(--border-color);
|
|
149
159
|
border-top: none;
|
|
160
|
+
/* max-h-80 overflow-auto */
|
|
150
161
|
}
|
|
151
162
|
|
|
152
163
|
.combobox-item {
|
|
@@ -155,43 +166,46 @@
|
|
|
155
166
|
align-items: center;
|
|
156
167
|
text-align: left;
|
|
157
168
|
background-color: transparent;
|
|
158
|
-
color: var(--
|
|
169
|
+
color: var(--text-color);
|
|
159
170
|
border: none;
|
|
160
|
-
font-size:
|
|
171
|
+
font-size: 1rem;
|
|
161
172
|
cursor: pointer;
|
|
162
|
-
gap:
|
|
173
|
+
gap: 0.5rem;
|
|
174
|
+
/* item w-full flex items-center text-left */
|
|
163
175
|
}
|
|
164
176
|
|
|
165
177
|
.p-2 {
|
|
166
|
-
padding:
|
|
178
|
+
padding: 0.5rem;
|
|
167
179
|
}
|
|
168
180
|
|
|
169
181
|
.combobox-item.selected,
|
|
170
182
|
.combobox-item:hover {
|
|
171
|
-
background-color: var(--
|
|
172
|
-
color: var(--
|
|
183
|
+
background-color: var(--border-color);
|
|
184
|
+
color: rgb(var(--accent-color-rgb));
|
|
173
185
|
}
|
|
174
186
|
|
|
175
187
|
.seperator {
|
|
176
188
|
height: 1px;
|
|
177
|
-
background-color: var(--
|
|
178
|
-
margin:
|
|
189
|
+
background-color: var(--border-color);
|
|
190
|
+
margin: 0.5rem 0;
|
|
179
191
|
}
|
|
180
192
|
|
|
181
193
|
.group-label {
|
|
182
|
-
font-weight:
|
|
183
|
-
padding:
|
|
184
|
-
background-color:
|
|
185
|
-
color: var(--
|
|
194
|
+
font-weight: bold;
|
|
195
|
+
padding: 0.5rem;
|
|
196
|
+
background-color: #f6f6f6;
|
|
197
|
+
color: rgb(var(--accent-color-rgb));
|
|
186
198
|
}
|
|
187
199
|
|
|
188
200
|
.no-results {
|
|
189
|
-
color: var(--
|
|
190
|
-
border: 1px solid var(--
|
|
201
|
+
color: var(--text-color);
|
|
202
|
+
border: 1px solid var(--border-color);
|
|
191
203
|
border-top: none;
|
|
192
204
|
}
|
|
193
205
|
|
|
194
|
-
:global(.dark)
|
|
195
|
-
|
|
206
|
+
:global(.dark) {
|
|
207
|
+
.group-label {
|
|
208
|
+
background: black;
|
|
209
|
+
}
|
|
196
210
|
}
|
|
197
211
|
</style>
|
|
@@ -1,27 +1,44 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import
|
|
3
|
-
import Select from './Select.svelte';
|
|
4
|
-
import Number from './Number.svelte';
|
|
5
|
-
import Checkbox from './Checkbox.svelte';
|
|
6
|
-
import type { ComboBoxItem } from '../models/ComboBoxItem.js';
|
|
7
|
-
import { type Snippet, onMount, untrack } from 'svelte';
|
|
8
|
-
import { CronParser } from '../util/CronParser.js';
|
|
1
|
+
<script module lang="ts">
|
|
2
|
+
import type { Snippet } from 'svelte';
|
|
9
3
|
|
|
10
|
-
interface
|
|
4
|
+
export interface CronBuilderProps {
|
|
5
|
+
/** Label text displayed above the builder */
|
|
11
6
|
label?: string;
|
|
7
|
+
/** Cron expression value (bindable) */
|
|
12
8
|
value?: string;
|
|
9
|
+
/** Placeholder text */
|
|
13
10
|
placeholder?: string;
|
|
11
|
+
/** Additional CSS classes */
|
|
14
12
|
class?: string;
|
|
13
|
+
/** CSS classes for the container element */
|
|
15
14
|
containerClass?: string;
|
|
15
|
+
/** Disable the cron builder */
|
|
16
16
|
disabled?: boolean;
|
|
17
|
+
/** Mark field as required (shows asterisk) */
|
|
17
18
|
required?: boolean;
|
|
19
|
+
/** Show error state styling */
|
|
18
20
|
showError?: boolean;
|
|
21
|
+
/** Error message to display */
|
|
19
22
|
errorText?: string;
|
|
23
|
+
/** Rich tooltip content using a Svelte snippet */
|
|
20
24
|
tooltipContent?: Snippet;
|
|
25
|
+
/** Simple tooltip text */
|
|
21
26
|
tooltipText?: string;
|
|
27
|
+
/** Position of the tooltip */
|
|
22
28
|
tooltipLocation?: 'top' | 'bottom' | 'left' | 'right';
|
|
29
|
+
/** Callback when cron expression changes */
|
|
23
30
|
onchange?: (expression: string) => void;
|
|
24
31
|
}
|
|
32
|
+
</script>
|
|
33
|
+
|
|
34
|
+
<script lang="ts">
|
|
35
|
+
import FormGroup from './FormGroup.svelte';
|
|
36
|
+
import Select from './Select.svelte';
|
|
37
|
+
import Number from './Number.svelte';
|
|
38
|
+
import Checkbox from './Checkbox.svelte';
|
|
39
|
+
import type { ComboBoxItem } from '../models/ComboBoxItem.js';
|
|
40
|
+
import { onMount, untrack } from 'svelte';
|
|
41
|
+
import { CronParser } from '../util/CronParser.js';
|
|
25
42
|
|
|
26
43
|
let {
|
|
27
44
|
label = 'Schedule',
|
|
@@ -37,7 +54,7 @@
|
|
|
37
54
|
tooltipText,
|
|
38
55
|
tooltipLocation = 'top',
|
|
39
56
|
onchange
|
|
40
|
-
}:
|
|
57
|
+
}: CronBuilderProps = $props();
|
|
41
58
|
|
|
42
59
|
type FrequencyType = 'minute' | 'hourly' | 'daily' | 'weekly' | 'monthly' | 'yearly' | 'custom';
|
|
43
60
|
|
|
@@ -520,7 +537,7 @@
|
|
|
520
537
|
.cron-builder {
|
|
521
538
|
display: flex;
|
|
522
539
|
flex-direction: column;
|
|
523
|
-
gap:
|
|
540
|
+
gap: 1rem;
|
|
524
541
|
}
|
|
525
542
|
|
|
526
543
|
.cron-builder.disabled {
|
|
@@ -535,7 +552,7 @@
|
|
|
535
552
|
.cron-settings {
|
|
536
553
|
display: grid;
|
|
537
554
|
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
|
|
538
|
-
gap:
|
|
555
|
+
gap: 1rem;
|
|
539
556
|
}
|
|
540
557
|
|
|
541
558
|
.weekday-selector {
|
|
@@ -544,39 +561,39 @@
|
|
|
544
561
|
|
|
545
562
|
.weekday-label {
|
|
546
563
|
display: block;
|
|
547
|
-
font-size:
|
|
548
|
-
font-weight:
|
|
549
|
-
color: var(--
|
|
550
|
-
margin-bottom:
|
|
564
|
+
font-size: 0.875rem;
|
|
565
|
+
font-weight: 600;
|
|
566
|
+
color: var(--text-color);
|
|
567
|
+
margin-bottom: 0.5rem;
|
|
551
568
|
}
|
|
552
569
|
|
|
553
570
|
.weekday-buttons {
|
|
554
571
|
display: flex;
|
|
555
|
-
gap:
|
|
572
|
+
gap: 0.5rem;
|
|
556
573
|
flex-wrap: wrap;
|
|
557
574
|
}
|
|
558
575
|
|
|
559
576
|
.weekday-btn {
|
|
560
|
-
padding:
|
|
561
|
-
border: 1px solid var(--
|
|
562
|
-
background: var(--
|
|
563
|
-
color: var(--
|
|
564
|
-
border-radius:
|
|
577
|
+
padding: 0.5rem 1rem;
|
|
578
|
+
border: 1px solid var(--border-color);
|
|
579
|
+
background: var(--input-bg);
|
|
580
|
+
color: var(--text-color);
|
|
581
|
+
border-radius: 0.375rem;
|
|
565
582
|
cursor: pointer;
|
|
566
|
-
font-size:
|
|
567
|
-
font-weight:
|
|
568
|
-
transition: all
|
|
583
|
+
font-size: 0.875rem;
|
|
584
|
+
font-weight: 500;
|
|
585
|
+
transition: all 0.2s;
|
|
569
586
|
}
|
|
570
587
|
|
|
571
588
|
.weekday-btn:hover:not(:disabled) {
|
|
572
|
-
background: var(--
|
|
573
|
-
border-color: var(--
|
|
589
|
+
background: rgba(var(--ui-primary-rgbc), 0.05);
|
|
590
|
+
border-color: var(--ui-primary);
|
|
574
591
|
}
|
|
575
592
|
|
|
576
593
|
.weekday-btn.selected {
|
|
577
|
-
background: var(--
|
|
578
|
-
color:
|
|
579
|
-
border-color: var(--
|
|
594
|
+
background: var(--ui-primary);
|
|
595
|
+
color: white;
|
|
596
|
+
border-color: var(--ui-primary);
|
|
580
597
|
}
|
|
581
598
|
|
|
582
599
|
.weekday-btn:disabled {
|
|
@@ -586,23 +603,23 @@
|
|
|
586
603
|
.custom-inputs {
|
|
587
604
|
display: grid;
|
|
588
605
|
grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
|
|
589
|
-
gap:
|
|
606
|
+
gap: 1rem;
|
|
590
607
|
grid-column: 1 / -1;
|
|
591
608
|
}
|
|
592
609
|
|
|
593
610
|
.form-control {
|
|
594
611
|
width: 100%;
|
|
595
|
-
padding:
|
|
596
|
-
border: 1px solid var(--
|
|
597
|
-
border-radius:
|
|
598
|
-
background: var(--
|
|
599
|
-
color: var(--
|
|
600
|
-
font-size:
|
|
612
|
+
padding: 0.5rem;
|
|
613
|
+
border: 1px solid var(--border-color);
|
|
614
|
+
border-radius: 0.375rem;
|
|
615
|
+
background: var(--input-bg);
|
|
616
|
+
color: var(--text-color);
|
|
617
|
+
font-size: 0.875rem;
|
|
601
618
|
}
|
|
602
619
|
|
|
603
620
|
.form-control:focus {
|
|
604
621
|
outline: none;
|
|
605
|
-
border-color: var(--
|
|
622
|
+
border-color: var(--ui-primary);
|
|
606
623
|
}
|
|
607
624
|
|
|
608
625
|
.form-control:disabled {
|
|
@@ -613,11 +630,11 @@
|
|
|
613
630
|
.cron-output {
|
|
614
631
|
display: grid;
|
|
615
632
|
grid-template-columns: 1fr 1fr 1fr;
|
|
616
|
-
gap:
|
|
617
|
-
padding:
|
|
618
|
-
background: var(--
|
|
619
|
-
border-radius:
|
|
620
|
-
border: 1px solid var(--
|
|
633
|
+
gap: 1rem;
|
|
634
|
+
padding: 1rem;
|
|
635
|
+
background: rgba(var(--ui-primary-rgbc), 0.05);
|
|
636
|
+
border-radius: 0.375rem;
|
|
637
|
+
border: 1px solid var(--border-color);
|
|
621
638
|
}
|
|
622
639
|
|
|
623
640
|
.cron-expression,
|
|
@@ -625,55 +642,55 @@
|
|
|
625
642
|
.cron-next-run {
|
|
626
643
|
display: flex;
|
|
627
644
|
flex-direction: column;
|
|
628
|
-
gap:
|
|
645
|
+
gap: 0.5rem;
|
|
629
646
|
}
|
|
630
647
|
|
|
631
648
|
.cron-output .cron-label {
|
|
632
|
-
font-size:
|
|
633
|
-
font-weight:
|
|
634
|
-
color: var(--
|
|
649
|
+
font-size: 0.75rem;
|
|
650
|
+
font-weight: 600;
|
|
651
|
+
color: var(--text-muted);
|
|
635
652
|
text-transform: uppercase;
|
|
636
653
|
letter-spacing: 0.05em;
|
|
637
654
|
}
|
|
638
655
|
|
|
639
656
|
.cron-expression code {
|
|
640
657
|
font-family: 'Courier New', monospace;
|
|
641
|
-
font-size:
|
|
642
|
-
padding:
|
|
643
|
-
background: var(--
|
|
644
|
-
border: 1px solid var(--
|
|
645
|
-
border-radius:
|
|
646
|
-
color: var(--
|
|
647
|
-
font-weight:
|
|
658
|
+
font-size: 0.875rem;
|
|
659
|
+
padding: 0.5rem;
|
|
660
|
+
background: var(--input-bg);
|
|
661
|
+
border: 1px solid var(--border-color);
|
|
662
|
+
border-radius: 0.25rem;
|
|
663
|
+
color: var(--ui-primary);
|
|
664
|
+
font-weight: 600;
|
|
648
665
|
}
|
|
649
666
|
|
|
650
667
|
.readable-text,
|
|
651
668
|
.next-run-text {
|
|
652
|
-
font-size:
|
|
653
|
-
color: var(--
|
|
654
|
-
padding:
|
|
655
|
-
background: var(--
|
|
656
|
-
border: 1px solid var(--
|
|
657
|
-
border-radius:
|
|
669
|
+
font-size: 0.875rem;
|
|
670
|
+
color: var(--text-color);
|
|
671
|
+
padding: 0.5rem;
|
|
672
|
+
background: var(--input-bg);
|
|
673
|
+
border: 1px solid var(--border-color);
|
|
674
|
+
border-radius: 0.25rem;
|
|
658
675
|
}
|
|
659
676
|
|
|
660
677
|
:global(.dark) .weekday-btn:hover:not(:disabled) {
|
|
661
|
-
background: var(--
|
|
662
|
-
border-color: var(--
|
|
678
|
+
background: rgba(var(--ui-accent-rgbc), 0.1);
|
|
679
|
+
border-color: var(--ui-accent);
|
|
663
680
|
}
|
|
664
681
|
|
|
665
682
|
:global(.dark) .weekday-btn.selected {
|
|
666
|
-
background: var(--
|
|
667
|
-
color: var(--
|
|
668
|
-
border-color: var(--
|
|
683
|
+
background: var(--ui-accent);
|
|
684
|
+
color: var(--ui-primary);
|
|
685
|
+
border-color: var(--ui-accent);
|
|
669
686
|
}
|
|
670
687
|
|
|
671
688
|
:global(.dark) .cron-output {
|
|
672
|
-
background: var(--
|
|
689
|
+
background: rgba(var(--ui-accent-rgbc), 0.05);
|
|
673
690
|
}
|
|
674
691
|
|
|
675
692
|
:global(.dark) .cron-expression code {
|
|
676
|
-
color: var(--
|
|
693
|
+
color: var(--ui-accent);
|
|
677
694
|
}
|
|
678
695
|
|
|
679
696
|
@media (max-width: 1024px) {
|
|
@@ -1,19 +1,32 @@
|
|
|
1
|
-
import {
|
|
2
|
-
interface
|
|
1
|
+
import type { Snippet } from 'svelte';
|
|
2
|
+
export interface CronBuilderProps {
|
|
3
|
+
/** Label text displayed above the builder */
|
|
3
4
|
label?: string;
|
|
5
|
+
/** Cron expression value (bindable) */
|
|
4
6
|
value?: string;
|
|
7
|
+
/** Placeholder text */
|
|
5
8
|
placeholder?: string;
|
|
9
|
+
/** Additional CSS classes */
|
|
6
10
|
class?: string;
|
|
11
|
+
/** CSS classes for the container element */
|
|
7
12
|
containerClass?: string;
|
|
13
|
+
/** Disable the cron builder */
|
|
8
14
|
disabled?: boolean;
|
|
15
|
+
/** Mark field as required (shows asterisk) */
|
|
9
16
|
required?: boolean;
|
|
17
|
+
/** Show error state styling */
|
|
10
18
|
showError?: boolean;
|
|
19
|
+
/** Error message to display */
|
|
11
20
|
errorText?: string;
|
|
21
|
+
/** Rich tooltip content using a Svelte snippet */
|
|
12
22
|
tooltipContent?: Snippet;
|
|
23
|
+
/** Simple tooltip text */
|
|
13
24
|
tooltipText?: string;
|
|
25
|
+
/** Position of the tooltip */
|
|
14
26
|
tooltipLocation?: 'top' | 'bottom' | 'left' | 'right';
|
|
27
|
+
/** Callback when cron expression changes */
|
|
15
28
|
onchange?: (expression: string) => void;
|
|
16
29
|
}
|
|
17
|
-
declare const CronBuilder: import("svelte").Component<
|
|
30
|
+
declare const CronBuilder: import("svelte").Component<CronBuilderProps, {}, "value">;
|
|
18
31
|
type CronBuilder = ReturnType<typeof CronBuilder>;
|
|
19
32
|
export default CronBuilder;
|