@tanstack/hotkeys-devtools 0.9.0 → 1.1.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.
Files changed (42) hide show
  1. package/README.md +15 -1
  2. package/dist/HotkeysContextProvider.js +1 -2
  3. package/dist/_registrations.js +47 -0
  4. package/dist/components/ActionButtons.js +2 -3
  5. package/dist/components/DetailsPanel.js +317 -325
  6. package/dist/components/HeldKeysTopbar.js +5 -3
  7. package/dist/components/HotkeyList.js +167 -196
  8. package/dist/components/Shell.js +5 -4
  9. package/dist/components/index.js +1 -2
  10. package/dist/core.d.ts +3 -6
  11. package/dist/core.js +1 -2
  12. package/dist/index.d.ts +2 -4
  13. package/dist/index.js +1 -2
  14. package/dist/sequence-progress.js +1 -2
  15. package/dist/styles/tokens.js +1 -2
  16. package/dist/styles/use-styles.js +5 -4
  17. package/package.json +11 -11
  18. package/dist/HotkeysContextProvider.js.map +0 -1
  19. package/dist/components/ActionButtons.js.map +0 -1
  20. package/dist/components/DetailsPanel.js.map +0 -1
  21. package/dist/components/HeldKeysTopbar.js.map +0 -1
  22. package/dist/components/HotkeyList.js.map +0 -1
  23. package/dist/components/Shell.js.map +0 -1
  24. package/dist/components/index.js.map +0 -1
  25. package/dist/core.js.map +0 -1
  26. package/dist/index.js.map +0 -1
  27. package/dist/sequence-progress.js.map +0 -1
  28. package/dist/styles/tokens.js.map +0 -1
  29. package/dist/styles/use-styles.js.map +0 -1
  30. package/src/HotkeysContextProvider.tsx +0 -130
  31. package/src/components/ActionButtons.tsx +0 -38
  32. package/src/components/DetailsPanel.tsx +0 -829
  33. package/src/components/HeldKeysTopbar.tsx +0 -46
  34. package/src/components/HotkeyList.tsx +0 -565
  35. package/src/components/Shell.tsx +0 -171
  36. package/src/components/index.tsx +0 -19
  37. package/src/core.tsx +0 -11
  38. package/src/index.ts +0 -11
  39. package/src/production.ts +0 -5
  40. package/src/sequence-progress.ts +0 -29
  41. package/src/styles/tokens.ts +0 -305
  42. package/src/styles/use-styles.ts +0 -687
@@ -1,171 +0,0 @@
1
- import {
2
- createEffect,
3
- createMemo,
4
- createSignal,
5
- onCleanup,
6
- onMount,
7
- } from 'solid-js'
8
- import { Header, HeaderLogo, MainPanel } from '@tanstack/devtools-ui'
9
- import { useStyles } from '../styles/use-styles'
10
- import { useHotkeysDevtoolsState } from '../HotkeysContextProvider'
11
- import { HeldKeysBar } from './HeldKeysTopbar'
12
- import { HotkeyList } from './HotkeyList'
13
- import { DetailsPanel } from './DetailsPanel'
14
-
15
- function readResizeObserverBlockSize(entry: ResizeObserverEntry): number {
16
- const [box] = entry.borderBoxSize
17
- if (box !== undefined) return box.blockSize
18
- return entry.contentRect.height
19
- }
20
-
21
- /** TanStack devtools plugin pane; percentage heights break without this. */
22
- function resolvePluginHost(el: HTMLElement): HTMLElement | null {
23
- const found = el.closest('[id^="plugin-container-"]')
24
- if (found instanceof HTMLElement) return found
25
- let n: HTMLElement | null = el
26
- for (let i = 0; i < 3 && n; i++) {
27
- n = n.parentElement
28
- }
29
- return n
30
- }
31
-
32
- export function Shell() {
33
- const styles = useStyles()
34
- const state = useHotkeysDevtoolsState()
35
- const [selectedId, setSelectedId] = createSignal<string | null>(null)
36
- const [leftPanelWidth, setLeftPanelWidth] = createSignal(300)
37
- const [isDragging, setIsDragging] = createSignal(false)
38
- const [shellRootEl, setShellRootEl] = createSignal<HTMLElement | null>(null)
39
- const [slotHeightPx, setSlotHeightPx] = createSignal<number | undefined>(
40
- undefined,
41
- )
42
-
43
- const selectedRegistration = createMemo(() => {
44
- const id = selectedId()
45
- if (!id) return null
46
- const hotkey = state.registrations().find((r) => r.id === id)
47
- if (hotkey) return hotkey
48
- const sequence = state.sequenceRegistrations().find((r) => r.id === id)
49
- return sequence ?? null
50
- })
51
-
52
- let dragStartX = 0
53
- let dragStartWidth = 0
54
-
55
- const handleMouseDown = (e: MouseEvent) => {
56
- e.preventDefault()
57
- e.stopPropagation()
58
- setIsDragging(true)
59
- document.body.style.cursor = 'col-resize'
60
- document.body.style.userSelect = 'none'
61
- dragStartX = e.clientX
62
- dragStartWidth = leftPanelWidth()
63
- }
64
-
65
- const handleMouseMove = (e: MouseEvent) => {
66
- if (!isDragging()) return
67
-
68
- e.preventDefault()
69
- const deltaX = e.clientX - dragStartX
70
- const newWidth = Math.max(150, Math.min(800, dragStartWidth + deltaX))
71
- setLeftPanelWidth(newWidth)
72
- }
73
-
74
- const handleMouseUp = () => {
75
- setIsDragging(false)
76
- document.body.style.cursor = ''
77
- document.body.style.userSelect = ''
78
- }
79
-
80
- onMount(() => {
81
- document.addEventListener('mousemove', handleMouseMove)
82
- document.addEventListener('mouseup', handleMouseUp)
83
- })
84
-
85
- onCleanup(() => {
86
- document.removeEventListener('mousemove', handleMouseMove)
87
- document.removeEventListener('mouseup', handleMouseUp)
88
- })
89
-
90
- createEffect(() => {
91
- const el = shellRootEl()
92
- if (!el || typeof ResizeObserver === 'undefined') return
93
- const pluginHost = resolvePluginHost(el)
94
- if (!pluginHost) return
95
-
96
- const applyHeight = (entry?: ResizeObserverEntry) => {
97
- const clientH = pluginHost.clientHeight
98
- const fromObserver =
99
- entry !== undefined ? readResizeObserverBlockSize(entry) : 0
100
- const h = clientH > 0 ? clientH : fromObserver
101
- if (h > 0) setSlotHeightPx(Math.round(h))
102
- }
103
-
104
- applyHeight()
105
- const ro = new ResizeObserver((entries) => {
106
- applyHeight(entries[0])
107
- })
108
- ro.observe(pluginHost)
109
- onCleanup(() => ro.disconnect())
110
- })
111
-
112
- return (
113
- <div
114
- ref={(el) => setShellRootEl(el)}
115
- class={styles().shellRoot}
116
- style={{
117
- ...(slotHeightPx() !== undefined
118
- ? {
119
- height: `${slotHeightPx()}px`,
120
- 'max-height': `${slotHeightPx()}px`,
121
- }
122
- : {}),
123
- }}
124
- >
125
- <MainPanel class={styles().mainPanelShell}>
126
- <Header>
127
- <HeaderLogo
128
- flavor={{
129
- light: 'oklch(51.4% 0.222 16.935)',
130
- dark: 'oklch(58.6% 0.253 17.585)',
131
- }}
132
- >
133
- TanStack Hotkeys
134
- </HeaderLogo>
135
- </Header>
136
-
137
- <div class={styles().mainContainer}>
138
- <HeldKeysBar />
139
-
140
- <div class={styles().panelsContainer}>
141
- <div
142
- class={styles().leftPanel}
143
- style={{
144
- width: `${leftPanelWidth()}px`,
145
- 'min-width': '150px',
146
- 'max-width': '800px',
147
- }}
148
- >
149
- <div class={styles().leftPanelScroll}>
150
- <HotkeyList
151
- selectedId={selectedId}
152
- setSelectedId={setSelectedId}
153
- />
154
- </div>
155
- </div>
156
-
157
- <div
158
- class={`${styles().dragHandle} ${isDragging() ? 'dragging' : ''}`}
159
- onMouseDown={handleMouseDown}
160
- />
161
-
162
- <div class={styles().rightPanel} style={{ flex: 1 }}>
163
- <div class={styles().panelHeader}>Details</div>
164
- <DetailsPanel selectedRegistration={selectedRegistration} />
165
- </div>
166
- </div>
167
- </div>
168
- </MainPanel>
169
- </div>
170
- )
171
- }
@@ -1,19 +0,0 @@
1
- import { ThemeContextProvider } from '@tanstack/devtools-ui'
2
- import { HotkeysContextProvider } from '../HotkeysContextProvider'
3
- import { Shell } from './Shell'
4
-
5
- import type { TanStackDevtoolsTheme } from '@tanstack/devtools-ui'
6
-
7
- interface DevtoolsProps {
8
- theme: TanStackDevtoolsTheme
9
- }
10
-
11
- export default function HotkeysDevtools(props: DevtoolsProps) {
12
- return (
13
- <ThemeContextProvider theme={props.theme}>
14
- <HotkeysContextProvider>
15
- <Shell />
16
- </HotkeysContextProvider>
17
- </ThemeContextProvider>
18
- )
19
- }
package/src/core.tsx DELETED
@@ -1,11 +0,0 @@
1
- import { constructCoreClass } from '@tanstack/devtools-utils/solid'
2
- import type { ClassType } from '@tanstack/devtools-utils/solid'
3
-
4
- const loadComponent = () => import('./components/index')
5
-
6
- export interface HotkeysDevtoolsInit {}
7
-
8
- const coreClasses = constructCoreClass(loadComponent)
9
-
10
- export const HotkeysDevtoolsCore: ClassType = coreClasses[0]
11
- export const HotkeysDevtoolsCoreNoOp: ClassType = coreClasses[1]
package/src/index.ts DELETED
@@ -1,11 +0,0 @@
1
- 'use client'
2
-
3
- import * as Devtools from './core'
4
- import type { ClassType } from '@tanstack/devtools-utils/solid'
5
-
6
- export const HotkeysDevtoolsCore: ClassType =
7
- process.env.NODE_ENV !== 'development'
8
- ? Devtools.HotkeysDevtoolsCoreNoOp
9
- : Devtools.HotkeysDevtoolsCore
10
-
11
- export type { HotkeysDevtoolsInit } from './core'
package/src/production.ts DELETED
@@ -1,5 +0,0 @@
1
- 'use client'
2
-
3
- export { HotkeysDevtoolsCore } from './core'
4
-
5
- export type { HotkeysDevtoolsInit } from './core'
@@ -1,29 +0,0 @@
1
- import { DEFAULT_SEQUENCE_TIMEOUT } from '@tanstack/hotkeys'
2
- import type { SequenceRegistrationView } from '@tanstack/hotkeys'
3
-
4
- /**
5
- * Matched step count for UI, accounting for inter-key timeout even if the
6
- * manager has not processed another event yet.
7
- */
8
- export function effectiveSequenceMatchedSteps(
9
- reg: SequenceRegistrationView,
10
- now: number,
11
- ): number {
12
- const timeout = reg.options.timeout ?? DEFAULT_SEQUENCE_TIMEOUT
13
- if (
14
- reg.matchedStepCount <= 0 ||
15
- reg.partialMatchLastKeyTime <= 0 ||
16
- now - reg.partialMatchLastKeyTime > timeout
17
- ) {
18
- return 0
19
- }
20
- return reg.matchedStepCount
21
- }
22
-
23
- /** Whether the devtools should run a short interval to refresh sequence progress UI. */
24
- export function needsSequenceProgressClock(
25
- regs: Array<SequenceRegistrationView>,
26
- now: number,
27
- ): boolean {
28
- return regs.some((reg) => effectiveSequenceMatchedSteps(reg, now) > 0)
29
- }
@@ -1,305 +0,0 @@
1
- export const tokens = {
2
- colors: {
3
- inherit: 'inherit',
4
- current: 'currentColor',
5
- transparent: 'transparent',
6
- black: '#000000',
7
- white: '#ffffff',
8
- neutral: {
9
- 50: '#f9fafb',
10
- 100: '#f2f4f7',
11
- 200: '#eaecf0',
12
- 300: '#d0d5dd',
13
- 400: '#98a2b3',
14
- 500: '#667085',
15
- 600: '#475467',
16
- 700: '#344054',
17
- 800: '#1d2939',
18
- 900: '#101828',
19
- },
20
- darkGray: {
21
- 50: '#525c7a',
22
- 100: '#49536e',
23
- 200: '#414962',
24
- 300: '#394056',
25
- 400: '#313749',
26
- 500: '#292e3d',
27
- 600: '#212530',
28
- 700: '#191c24',
29
- 800: '#111318',
30
- 900: '#0b0d10',
31
- },
32
- gray: {
33
- 50: '#f9fafb',
34
- 100: '#f2f4f7',
35
- 200: '#eaecf0',
36
- 300: '#d0d5dd',
37
- 400: '#98a2b3',
38
- 500: '#667085',
39
- 600: '#475467',
40
- 700: '#344054',
41
- 800: '#1d2939',
42
- 900: '#101828',
43
- },
44
- blue: {
45
- 25: '#F5FAFF',
46
- 50: '#EFF8FF',
47
- 100: '#D1E9FF',
48
- 200: '#B2DDFF',
49
- 300: '#84CAFF',
50
- 400: '#53B1FD',
51
- 500: '#2E90FA',
52
- 600: '#1570EF',
53
- 700: '#175CD3',
54
- 800: '#1849A9',
55
- 900: '#194185',
56
- },
57
- green: {
58
- 25: '#F6FEF9',
59
- 50: '#ECFDF3',
60
- 100: '#D1FADF',
61
- 200: '#A6F4C5',
62
- 300: '#6CE9A6',
63
- 400: '#32D583',
64
- 500: '#12B76A',
65
- 600: '#039855',
66
- 700: '#027A48',
67
- 800: '#05603A',
68
- 900: '#054F31',
69
- },
70
- red: {
71
- 50: '#fef2f2',
72
- 100: '#fee2e2',
73
- 200: '#fecaca',
74
- 300: '#fca5a5',
75
- 400: '#f87171',
76
- 500: '#ef4444',
77
- 600: '#dc2626',
78
- 700: '#b91c1c',
79
- 800: '#991b1b',
80
- 900: '#7f1d1d',
81
- 950: '#450a0a',
82
- },
83
- yellow: {
84
- 25: '#FFFCF5',
85
- 50: '#FFFAEB',
86
- 100: '#FEF0C7',
87
- 200: '#FEDF89',
88
- 300: '#FEC84B',
89
- 400: '#FDB022',
90
- 500: '#F79009',
91
- 600: '#DC6803',
92
- 700: '#B54708',
93
- 800: '#93370D',
94
- 900: '#7A2E0E',
95
- },
96
- purple: {
97
- 25: '#FAFAFF',
98
- 50: '#F4F3FF',
99
- 100: '#EBE9FE',
100
- 200: '#D9D6FE',
101
- 300: '#BDB4FE',
102
- 400: '#9B8AFB',
103
- 500: '#7A5AF8',
104
- 600: '#6938EF',
105
- 700: '#5925DC',
106
- 800: '#4A1FB8',
107
- 900: '#3E1C96',
108
- },
109
- teal: {
110
- 25: '#F6FEFC',
111
- 50: '#F0FDF9',
112
- 100: '#CCFBEF',
113
- 200: '#99F6E0',
114
- 300: '#5FE9D0',
115
- 400: '#2ED3B7',
116
- 500: '#15B79E',
117
- 600: '#0E9384',
118
- 700: '#107569',
119
- 800: '#125D56',
120
- 900: '#134E48',
121
- },
122
- pink: {
123
- 25: '#fdf2f8',
124
- 50: '#fce7f3',
125
- 100: '#fbcfe8',
126
- 200: '#f9a8d4',
127
- 300: '#f472b6',
128
- 400: '#ec4899',
129
- 500: '#db2777',
130
- 600: '#be185d',
131
- 700: '#9d174d',
132
- 800: '#831843',
133
- 900: '#500724',
134
- },
135
- cyan: {
136
- 25: '#ecfeff',
137
- 50: '#cffafe',
138
- 100: '#a5f3fc',
139
- 200: '#67e8f9',
140
- 300: '#22d3ee',
141
- 400: '#06b6d4',
142
- 500: '#0891b2',
143
- 600: '#0e7490',
144
- 700: '#155e75',
145
- 800: '#164e63',
146
- 900: '#083344',
147
- },
148
- },
149
- alpha: {
150
- 100: 'ff',
151
- 90: 'e5',
152
- 80: 'cc',
153
- 70: 'b3',
154
- 60: '99',
155
- 50: '80',
156
- 40: '66',
157
- 30: '4d',
158
- 20: '33',
159
- 10: '1a',
160
- 0: '00',
161
- },
162
- font: {
163
- size: {
164
- '2xs': 'calc(var(--tsrd-font-size) * 0.625)',
165
- xs: 'calc(var(--tsrd-font-size) * 0.75)',
166
- sm: 'calc(var(--tsrd-font-size) * 0.875)',
167
- md: 'var(--tsrd-font-size)',
168
- lg: 'calc(var(--tsrd-font-size) * 1.125)',
169
- xl: 'calc(var(--tsrd-font-size) * 1.25)',
170
- '2xl': 'calc(var(--tsrd-font-size) * 1.5)',
171
- '3xl': 'calc(var(--tsrd-font-size) * 1.875)',
172
- '4xl': 'calc(var(--tsrd-font-size) * 2.25)',
173
- '5xl': 'calc(var(--tsrd-font-size) * 3)',
174
- '6xl': 'calc(var(--tsrd-font-size) * 3.75)',
175
- '7xl': 'calc(var(--tsrd-font-size) * 4.5)',
176
- '8xl': 'calc(var(--tsrd-font-size) * 6)',
177
- '9xl': 'calc(var(--tsrd-font-size) * 8)',
178
- },
179
- lineHeight: {
180
- '3xs': 'calc(var(--tsrd-font-size) * 0.75)',
181
- '2xs': 'calc(var(--tsrd-font-size) * 0.875)',
182
- xs: 'calc(var(--tsrd-font-size) * 1)',
183
- sm: 'calc(var(--tsrd-font-size) * 1.25)',
184
- md: 'calc(var(--tsrd-font-size) * 1.5)',
185
- lg: 'calc(var(--tsrd-font-size) * 1.75)',
186
- xl: 'calc(var(--tsrd-font-size) * 2)',
187
- '2xl': 'calc(var(--tsrd-font-size) * 2.25)',
188
- '3xl': 'calc(var(--tsrd-font-size) * 2.5)',
189
- '4xl': 'calc(var(--tsrd-font-size) * 2.75)',
190
- '5xl': 'calc(var(--tsrd-font-size) * 3)',
191
- '6xl': 'calc(var(--tsrd-font-size) * 3.25)',
192
- '7xl': 'calc(var(--tsrd-font-size) * 3.5)',
193
- '8xl': 'calc(var(--tsrd-font-size) * 3.75)',
194
- '9xl': 'calc(var(--tsrd-font-size) * 4)',
195
- },
196
- weight: {
197
- thin: '100',
198
- extralight: '200',
199
- light: '300',
200
- normal: '400',
201
- medium: '500',
202
- semibold: '600',
203
- bold: '700',
204
- extrabold: '800',
205
- black: '900',
206
- },
207
- fontFamily: {
208
- sans: 'ui-sans-serif, Inter, system-ui, sans-serif, sans-serif',
209
- mono: `ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace`,
210
- },
211
- },
212
- breakpoints: {
213
- xs: '320px',
214
- sm: '640px',
215
- md: '768px',
216
- lg: '1024px',
217
- xl: '1280px',
218
- '2xl': '1536px',
219
- },
220
- border: {
221
- radius: {
222
- none: '0px',
223
- xs: 'calc(var(--tsrd-font-size) * 0.125)',
224
- sm: 'calc(var(--tsrd-font-size) * 0.25)',
225
- md: 'calc(var(--tsrd-font-size) * 0.375)',
226
- lg: 'calc(var(--tsrd-font-size) * 0.5)',
227
- xl: 'calc(var(--tsrd-font-size) * 0.75)',
228
- '2xl': 'calc(var(--tsrd-font-size) * 1)',
229
- '3xl': 'calc(var(--tsrd-font-size) * 1.5)',
230
- full: '9999px',
231
- },
232
- },
233
- size: {
234
- 0: '0px',
235
- 0.25: 'calc(var(--tsrd-font-size) * 0.0625)',
236
- 0.5: 'calc(var(--tsrd-font-size) * 0.125)',
237
- 1: 'calc(var(--tsrd-font-size) * 0.25)',
238
- 1.5: 'calc(var(--tsrd-font-size) * 0.375)',
239
- 2: 'calc(var(--tsrd-font-size) * 0.5)',
240
- 2.5: 'calc(var(--tsrd-font-size) * 0.625)',
241
- 3: 'calc(var(--tsrd-font-size) * 0.75)',
242
- 3.5: 'calc(var(--tsrd-font-size) * 0.875)',
243
- 4: 'calc(var(--tsrd-font-size) * 1)',
244
- 4.5: 'calc(var(--tsrd-font-size) * 1.125)',
245
- 5: 'calc(var(--tsrd-font-size) * 1.25)',
246
- 5.5: 'calc(var(--tsrd-font-size) * 1.375)',
247
- 6: 'calc(var(--tsrd-font-size) * 1.5)',
248
- 6.5: 'calc(var(--tsrd-font-size) * 1.625)',
249
- 7: 'calc(var(--tsrd-font-size) * 1.75)',
250
- 8: 'calc(var(--tsrd-font-size) * 2)',
251
- 9: 'calc(var(--tsrd-font-size) * 2.25)',
252
- 10: 'calc(var(--tsrd-font-size) * 2.5)',
253
- 11: 'calc(var(--tsrd-font-size) * 2.75)',
254
- 12: 'calc(var(--tsrd-font-size) * 3)',
255
- 14: 'calc(var(--tsrd-font-size) * 3.5)',
256
- 16: 'calc(var(--tsrd-font-size) * 4)',
257
- 20: 'calc(var(--tsrd-font-size) * 5)',
258
- 24: 'calc(var(--tsrd-font-size) * 6)',
259
- 28: 'calc(var(--tsrd-font-size) * 7)',
260
- 32: 'calc(var(--tsrd-font-size) * 8)',
261
- 36: 'calc(var(--tsrd-font-size) * 9)',
262
- 40: 'calc(var(--tsrd-font-size) * 10)',
263
- 44: 'calc(var(--tsrd-font-size) * 11)',
264
- 48: 'calc(var(--tsrd-font-size) * 12)',
265
- 52: 'calc(var(--tsrd-font-size) * 13)',
266
- 56: 'calc(var(--tsrd-font-size) * 14)',
267
- 60: 'calc(var(--tsrd-font-size) * 15)',
268
- 64: 'calc(var(--tsrd-font-size) * 16)',
269
- 72: 'calc(var(--tsrd-font-size) * 18)',
270
- 80: 'calc(var(--tsrd-font-size) * 20)',
271
- 96: 'calc(var(--tsrd-font-size) * 24)',
272
- },
273
- shadow: {
274
- xs: (_: string = 'rgb(0 0 0 / 0.1)') =>
275
- `0 1px 2px 0 rgb(0 0 0 / 0.05)` as const,
276
- sm: (color: string = 'rgb(0 0 0 / 0.1)') =>
277
- `0 1px 3px 0 ${color}, 0 1px 2px -1px ${color}` as const,
278
- md: (color: string = 'rgb(0 0 0 / 0.1)') =>
279
- `0 4px 6px -1px ${color}, 0 2px 4px -2px ${color}` as const,
280
- lg: (color: string = 'rgb(0 0 0 / 0.1)') =>
281
- `0 10px 15px -3px ${color}, 0 4px 6px -4px ${color}` as const,
282
- xl: (color: string = 'rgb(0 0 0 / 0.1)') =>
283
- `0 20px 25px -5px ${color}, 0 8px 10px -6px ${color}` as const,
284
- '2xl': (color: string = 'rgb(0 0 0 / 0.25)') =>
285
- `0 25px 50px -12px ${color}` as const,
286
- inner: (color: string = 'rgb(0 0 0 / 0.05)') =>
287
- `inset 0 2px 4px 0 ${color}` as const,
288
- none: () => `none` as const,
289
- },
290
- zIndices: {
291
- hide: -1,
292
- auto: 'auto',
293
- base: 0,
294
- docked: 10,
295
- dropdown: 1000,
296
- sticky: 1100,
297
- banner: 1200,
298
- overlay: 1300,
299
- modal: 1400,
300
- popover: 1500,
301
- skipLink: 1600,
302
- toast: 1700,
303
- tooltip: 1800,
304
- },
305
- } as const