litegui.ts 1.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.
Files changed (113) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +109 -0
  3. package/dist/@types/Inspector/index.d.ts +462 -0
  4. package/dist/@types/Inspector/index.d.ts.map +1 -0
  5. package/dist/@types/globals/index.d.ts +10 -0
  6. package/dist/@types/globals/index.d.ts.map +1 -0
  7. package/dist/Pickr/pickr.es5.min.js +3 -0
  8. package/dist/Pickr/pickr.es5.min.js.map +1 -0
  9. package/dist/Pickr/pickr.min.js +3 -0
  10. package/dist/Pickr/pickr.min.js.map +1 -0
  11. package/dist/Pickr/themes/classic.min.css +2 -0
  12. package/dist/Pickr/themes/monolith.min.css +2 -0
  13. package/dist/Pickr/themes/nano.min.css +2 -0
  14. package/dist/area.d.ts +277 -0
  15. package/dist/area.d.ts.map +1 -0
  16. package/dist/console.d.ts +27 -0
  17. package/dist/console.d.ts.map +1 -0
  18. package/dist/core.d.ts +438 -0
  19. package/dist/core.d.ts.map +1 -0
  20. package/dist/dialog.d.ts +369 -0
  21. package/dist/dialog.d.ts.map +1 -0
  22. package/dist/dragger.d.ts +132 -0
  23. package/dist/dragger.d.ts.map +1 -0
  24. package/dist/index.d.ts +17 -0
  25. package/dist/index.d.ts.map +1 -0
  26. package/dist/inspector/array.d.ts +76 -0
  27. package/dist/inspector/array.d.ts.map +1 -0
  28. package/dist/inspector/button.d.ts +62 -0
  29. package/dist/inspector/button.d.ts.map +1 -0
  30. package/dist/inspector/checkbox.d.ts +50 -0
  31. package/dist/inspector/checkbox.d.ts.map +1 -0
  32. package/dist/inspector/color.d.ts +43 -0
  33. package/dist/inspector/color.d.ts.map +1 -0
  34. package/dist/inspector/combo.d.ts +76 -0
  35. package/dist/inspector/combo.d.ts.map +1 -0
  36. package/dist/inspector/dataTree.d.ts +20 -0
  37. package/dist/inspector/dataTree.d.ts.map +1 -0
  38. package/dist/inspector/file.d.ts +57 -0
  39. package/dist/inspector/file.d.ts.map +1 -0
  40. package/dist/inspector/flag.d.ts +36 -0
  41. package/dist/inspector/flag.d.ts.map +1 -0
  42. package/dist/inspector/icon.d.ts +60 -0
  43. package/dist/inspector/icon.d.ts.map +1 -0
  44. package/dist/inspector/index.d.ts +24 -0
  45. package/dist/inspector/index.d.ts.map +1 -0
  46. package/dist/inspector/info.d.ts +47 -0
  47. package/dist/inspector/info.d.ts.map +1 -0
  48. package/dist/inspector/inspector.d.ts +350 -0
  49. package/dist/inspector/inspector.d.ts.map +1 -0
  50. package/dist/inspector/line.d.ts +20 -0
  51. package/dist/inspector/line.d.ts.map +1 -0
  52. package/dist/inspector/list.d.ts +153 -0
  53. package/dist/inspector/list.d.ts.map +1 -0
  54. package/dist/inspector/number.d.ts +85 -0
  55. package/dist/inspector/number.d.ts.map +1 -0
  56. package/dist/inspector/pad.d.ts +66 -0
  57. package/dist/inspector/pad.d.ts.map +1 -0
  58. package/dist/inspector/seperator.d.ts +15 -0
  59. package/dist/inspector/seperator.d.ts.map +1 -0
  60. package/dist/inspector/slider.d.ts +55 -0
  61. package/dist/inspector/slider.d.ts.map +1 -0
  62. package/dist/inspector/string.d.ts +71 -0
  63. package/dist/inspector/string.d.ts.map +1 -0
  64. package/dist/inspector/stringButton.d.ts +45 -0
  65. package/dist/inspector/stringButton.d.ts.map +1 -0
  66. package/dist/inspector/tags.d.ts +53 -0
  67. package/dist/inspector/tags.d.ts.map +1 -0
  68. package/dist/inspector/textArea.d.ts +48 -0
  69. package/dist/inspector/textArea.d.ts.map +1 -0
  70. package/dist/inspector/tree.d.ts +41 -0
  71. package/dist/inspector/tree.d.ts.map +1 -0
  72. package/dist/inspector/vector.d.ts +64 -0
  73. package/dist/inspector/vector.d.ts.map +1 -0
  74. package/dist/litegui.css +2 -0
  75. package/dist/litegui.css.map +1 -0
  76. package/dist/litegui.d.ts +439 -0
  77. package/dist/litegui.d.ts.map +1 -0
  78. package/dist/litegui.js +11898 -0
  79. package/dist/litegui.js.map +1 -0
  80. package/dist/litegui.mini.js +1 -0
  81. package/dist/menubar.d.ts +279 -0
  82. package/dist/menubar.d.ts.map +1 -0
  83. package/dist/panel.d.ts +124 -0
  84. package/dist/panel.d.ts.map +1 -0
  85. package/dist/table.d.ts +105 -0
  86. package/dist/table.d.ts.map +1 -0
  87. package/dist/tabs.d.ts +426 -0
  88. package/dist/tabs.d.ts.map +1 -0
  89. package/dist/utilities.d.ts +508 -0
  90. package/dist/utilities.d.ts.map +1 -0
  91. package/dist/widgets/button.d.ts +33 -0
  92. package/dist/widgets/button.d.ts.map +1 -0
  93. package/dist/widgets/checkbox.d.ts +36 -0
  94. package/dist/widgets/checkbox.d.ts.map +1 -0
  95. package/dist/widgets/complexList.d.ts +83 -0
  96. package/dist/widgets/complexList.d.ts.map +1 -0
  97. package/dist/widgets/contextMenu.d.ts +97 -0
  98. package/dist/widgets/contextMenu.d.ts.map +1 -0
  99. package/dist/widgets/index.d.ts +10 -0
  100. package/dist/widgets/index.d.ts.map +1 -0
  101. package/dist/widgets/lineEditor.d.ts +112 -0
  102. package/dist/widgets/lineEditor.d.ts.map +1 -0
  103. package/dist/widgets/list.d.ts +59 -0
  104. package/dist/widgets/list.d.ts.map +1 -0
  105. package/dist/widgets/listBox.d.ts +47 -0
  106. package/dist/widgets/listBox.d.ts.map +1 -0
  107. package/dist/widgets/searchBox.d.ts +43 -0
  108. package/dist/widgets/searchBox.d.ts.map +1 -0
  109. package/dist/widgets/slider.d.ts +61 -0
  110. package/dist/widgets/slider.d.ts.map +1 -0
  111. package/dist/widgets/tree.d.ts +348 -0
  112. package/dist/widgets/tree.d.ts.map +1 -0
  113. package/package.json +81 -0
package/dist/tabs.d.ts ADDED
@@ -0,0 +1,426 @@
1
+ import { LiteGUIObject } from "./@types/globals/index";
2
+ /**
3
+ * Interface extending HTMLDivElement to include a reference to the Tabs instance.
4
+ */
5
+ export interface TabsRootDivElement extends HTMLDivElement {
6
+ /**
7
+ * Reference to the Tabs widget instance associated with this element.
8
+ */
9
+ tabs?: Tabs;
10
+ }
11
+ /**
12
+ * Interface extending HTMLLIElement to include tab-specific properties.
13
+ */
14
+ export interface TabInfoLIElement extends HTMLLIElement {
15
+ /**
16
+ * Indicates if this tab is currently selected.
17
+ */
18
+ selected?: boolean;
19
+ /**
20
+ * Options associated with this specific tab.
21
+ */
22
+ options?: TabsOptions;
23
+ /**
24
+ * Reference to the parent Tabs instance.
25
+ */
26
+ tabs?: Tabs;
27
+ /**
28
+ * Reference to the TabInfo object associated with this element.
29
+ */
30
+ info?: TabInfo;
31
+ }
32
+ /**
33
+ * Represents a single tab within the Tabs widget.
34
+ * Stores references to the DOM elements and state of the tab.
35
+ * @class TabInfo
36
+ */
37
+ export declare class TabInfo {
38
+ /**
39
+ * Unique identifier for the tab.
40
+ */
41
+ id: string;
42
+ /**
43
+ * The list item element representing the tab in the tab bar.
44
+ */
45
+ tab: TabInfoLIElement;
46
+ /**
47
+ * The container element for the tab's content.
48
+ */
49
+ content: HTMLDivElement;
50
+ /**
51
+ * The element containing the tab's title text.
52
+ */
53
+ title: Element;
54
+ /**
55
+ * Callback function triggered when the tab is closed.
56
+ */
57
+ onClose?: (tab: TabInfo) => void;
58
+ /**
59
+ * Indicates if the tab is currently selected.
60
+ */
61
+ selected?: boolean;
62
+ /**
63
+ * Creates a new TabInfo instance.
64
+ * @param {string} id Unique identifier for the tab.
65
+ * @param {TabInfoLIElement} tab The list item element.
66
+ * @param {HTMLDivElement} content The content container element.
67
+ * @param {Element} title The title element.
68
+ */
69
+ constructor(id: string, tab: TabInfoLIElement, content: HTMLDivElement, title: Element);
70
+ /**
71
+ * Appends an element to the tab's content area.
72
+ * @param {LiteGUIObject | HTMLElement} element The element to append.
73
+ */
74
+ add(element: LiteGUIObject | HTMLElement): void;
75
+ /**
76
+ * Sets the title of the tab.
77
+ * @param {string} title The new title text.
78
+ */
79
+ setTitle(title: string): void;
80
+ /**
81
+ * Simulates a click on the tab.
82
+ */
83
+ click(): void;
84
+ }
85
+ /**
86
+ * Configuration options for the Tabs widget or individual tabs.
87
+ */
88
+ export interface TabsOptions {
89
+ /**
90
+ * If true, the tab will be initially selected.
91
+ */
92
+ selected?: boolean;
93
+ /**
94
+ * Callback triggered when a tab is closed.
95
+ */
96
+ onClose?: (tab: TabInfo) => void;
97
+ /**
98
+ * Callback triggered when a tab is selected/clicked.
99
+ */
100
+ callback?: (tab: string, event: PointerEvent | boolean) => void;
101
+ /**
102
+ * Callback triggered when leaving a tab.
103
+ */
104
+ onLeave?: (tab: TabInfo) => void;
105
+ /**
106
+ * Callback triggered on right-click (context menu).
107
+ */
108
+ onContextCall?: (tab: TabInfo) => void;
109
+ /**
110
+ * Function to check if a tab can be opened. If it returns false, the tab won't open.
111
+ */
112
+ onCanOpen?: (tab: TabInfoLIElement) => boolean;
113
+ /**
114
+ * Additional CSS class names for the tab content container.
115
+ */
116
+ className?: string;
117
+ /**
118
+ * Parent element to append the tabs widget to.
119
+ */
120
+ parent?: string | HTMLDivElement;
121
+ /**
122
+ * Height of the widget.
123
+ */
124
+ height?: string | number;
125
+ /**
126
+ * Width of the widget.
127
+ */
128
+ width?: string | number;
129
+ /**
130
+ * Index to insert the tab at.
131
+ */
132
+ index?: number;
133
+ /**
134
+ * HTML string for a large icon.
135
+ */
136
+ bigicon?: string;
137
+ /**
138
+ * Title text of the tab.
139
+ */
140
+ title?: string;
141
+ /**
142
+ * If true, events won't be triggered during setup.
143
+ */
144
+ skipCallbacks?: boolean;
145
+ /**
146
+ * Initial HTML content or element for the tab.
147
+ */
148
+ content?: string | HTMLElement;
149
+ /**
150
+ * If true, the tab will have a close button.
151
+ */
152
+ closable?: boolean;
153
+ /**
154
+ * Width of the tab element itself.
155
+ */
156
+ tabWidth?: number | string;
157
+ /**
158
+ * Additional CSS class names for the tab element.
159
+ */
160
+ tabClassName?: string;
161
+ /**
162
+ * ID for the widget or tab.
163
+ */
164
+ id?: string;
165
+ /**
166
+ * Size options (e.g., "full").
167
+ */
168
+ size?: string | number;
169
+ /**
170
+ * Layout mode: "horizontal" or "vertical".
171
+ */
172
+ mode?: "horizontal" | "vertical";
173
+ /**
174
+ * If true, acts as a button rather than a switchable tab.
175
+ */
176
+ button?: boolean;
177
+ /**
178
+ * If true, tabs switch automatically on hover/drag.
179
+ */
180
+ autoswitch?: boolean;
181
+ /**
182
+ * If true, adds a "+" tab for creating new tabs.
183
+ */
184
+ addPlusTab?: boolean;
185
+ /**
186
+ * If true, allows double-clicking the tab title to rename it.
187
+ */
188
+ allowRename?: boolean;
189
+ }
190
+ /**
191
+ * Widget that manages multiple tabs and their associated content.
192
+ * Supports horizontal and vertical modes, dynamic adding/removing of tabs, and various events.
193
+ *
194
+ * @class Tabs
195
+ * @example
196
+ * ```typescript
197
+ * const tabs = new Tabs({ mode: "horizontal", size: "full" });
198
+ * tabs.addTab("Home", { title: "Home", content: "Welcome!" });
199
+ * parent.appendChild(tabs.root);
200
+ * ```
201
+ */
202
+ export declare class Tabs implements LiteGUIObject {
203
+ root: TabsRootDivElement;
204
+ options: TabsOptions;
205
+ mode: "horizontal" | "vertical";
206
+ currentTab: number;
207
+ previousTab: number;
208
+ list: HTMLUListElement;
209
+ tabsRoot: HTMLElement;
210
+ tabs: {
211
+ [key: string]: TabInfo;
212
+ };
213
+ tabsByIndex: TabInfo[];
214
+ selected?: string;
215
+ onchange?: CallableFunction;
216
+ plusTab?: TabInfo;
217
+ plusTabCallbacks: ((tab: string, event: PointerEvent | boolean) => void)[];
218
+ private _timeoutMouseOver?;
219
+ static TABS_WIDTH: number;
220
+ static TABS_HEIGHT: number;
221
+ /**
222
+ * Creates an instance of the Tabs widget.
223
+ * @param {TabsOptions} [options] Configuration options.
224
+ * @param {"horizontal" | "vertical"} [options.mode="horizontal"] Layout mode: "vertical" or "horizontal".
225
+ * @param {string|number} [options.size] Size of the widget (e.g., "full" for 100%).
226
+ * @param {string|number} [options.width] Explicit width.
227
+ * @param {string|number} [options.height] Explicit height.
228
+ * @param {boolean} [options.autoswitch] If true, switches tabs on hover/drag.
229
+ * @param {boolean} [options.addPlusTab] If true, adds a "+" tab for creating new tabs.
230
+ * @param {string|HTMLDivElement} [options.parent] Parent element to attach the widget to.
231
+ */
232
+ constructor(options?: TabsOptions);
233
+ /**
234
+ * Handles mouse wheel events on the tab strings list to scroll hidden tabs.
235
+ * @param {WheelEvent} e The mouse wheel event.
236
+ */
237
+ onMouseWheel(e: WheelEvent): void;
238
+ /**
239
+ * Shows the Tabs widget.
240
+ */
241
+ show(): void;
242
+ /**
243
+ * Hides the Tabs widget.
244
+ */
245
+ hide(): void;
246
+ /**
247
+ * Returns the currently selected tab object.
248
+ * @returns {TabInfoLIElement | undefined} The tab list item element, or undefined if none selected.
249
+ */
250
+ getCurrentTab(): TabInfoLIElement | undefined;
251
+ /**
252
+ * Returns the ID of the currently selected tab.
253
+ * @returns {string | undefined} The ID of the current tab, or undefined if none selected.
254
+ */
255
+ getCurrentTabId(): string | undefined;
256
+ /**
257
+ * Returns the tab that was selected before the current one.
258
+ * @returns {TabInfoLIElement | undefined} The previous tab list item element.
259
+ */
260
+ getPreviousTab(): TabInfoLIElement | undefined;
261
+ /**
262
+ * Appends the Tabs widget to a parent element.
263
+ * @param {HTMLElement | string} parent The parent element or a CSS selector string.
264
+ * @param {boolean} [atFront=false] If true, prepends the widget instead of appending.
265
+ */
266
+ appendTo(parent: HTMLElement | string, atFront?: boolean): void;
267
+ /**
268
+ * Retrieves a TabInfo object by its ID.
269
+ * @param {string} id The ID of the tab.
270
+ * @returns {TabInfo | undefined} The TabInfo object if found.
271
+ */
272
+ getTab(id: string): TabInfo | undefined;
273
+ /**
274
+ * Retrieves a TabInfo object by its numerical index.
275
+ * @param {number} index The index in the tabs array.
276
+ * @returns {TabInfo} The TabInfo object.
277
+ */
278
+ getTabByIndex(index: number): TabInfo;
279
+ /**
280
+ * Returns the total number of tabs.
281
+ * @returns {number} The count of tabs.
282
+ */
283
+ getNumOfTabs(): number;
284
+ /**
285
+ * Retrieves the content element of a specific tab.
286
+ * @param {string} id The ID of the tab.
287
+ * @returns {HTMLDivElement | undefined} The content div element.
288
+ */
289
+ getTabContent(id: string): HTMLDivElement | undefined;
290
+ /**
291
+ * Returns the internal index of a tab given its ID.
292
+ * @param {string} id The ID of the tab.
293
+ * @returns {number} The index of the tab, or -1 if not found.
294
+ */
295
+ getIndexOfTab(id: string): number;
296
+ /**
297
+ * Returns the DOM index of the tab element within its parent container.
298
+ * @param {string} id The ID of the tab.
299
+ * @returns {number} The child node index, or -1 if not found.
300
+ */
301
+ getIndexOfNodeList(id: string): number;
302
+ /**
303
+ * Adds a new tab to the widget.
304
+ *
305
+ * @param {string} id Unique identifier for the tab. If null, a random ID is generated.
306
+ * @param {TabsOptions | Function} options Configuration options for the tab, or a callback function for selection.
307
+ * - If options is a **function**, it is treated as the `callback` property.
308
+ * - If options is an **object**, it configures the tab.
309
+ * @param {string} [options.title] Text to display on the tab.
310
+ * @param {string|HTMLElement} [options.content] HTML content to display when selected.
311
+ * @param {Function} [options.callback] Function called when the tab is clicked. `(tabID, event) => void`.
312
+ * @param {Function} [options.onClose] Function called when the tab is closed. `(tabInfo) => void`.
313
+ * @param {boolean} [options.selected] If true, this tab becomes the active one.
314
+ * @param {boolean} [options.closable] If true, shows a close button.
315
+ * @param {string} [options.bigicon] URL or HTML for a large icon.
316
+ * @param {boolean} [options.button] If true, acts as a button (no content switch).
317
+ * @returns {TabInfo} The created TabInfo object.
318
+ */
319
+ addTab(id: string, options: TabsOptions | ((tab: string, event: PointerEvent | boolean) => void)): TabInfo;
320
+ /**
321
+ * Returns the 'Plus' tab if it exists.
322
+ * @returns {TabInfo | undefined} The plus tab info.
323
+ */
324
+ getPlusTab(): TabInfo | undefined;
325
+ /**
326
+ * Adds a callback function to be executed when the 'Plus' tab is clicked.
327
+ * @param {Function} callback Function receiving tab ID and event: `(tab: string, event: PointerEvent | boolean) => void`.
328
+ */
329
+ addPlusTab(callback: (tab: string, event: PointerEvent | boolean) => void): void;
330
+ /**
331
+ * Creates the 'Plus' tab internally if it doesn't exist.
332
+ */
333
+ createPlusTab(): void;
334
+ /**
335
+ * Registers a callback for the 'Plus' tab click event.
336
+ * @param {Function} callback The callback function: `(tab: string, event: PointerEvent | boolean) => void`.
337
+ */
338
+ addPlusTabCallback(callback: (tab: string, event: PointerEvent | boolean) => void): void;
339
+ /**
340
+ * Removes a previously registered 'Plus' tab callback.
341
+ * @param {Function} callback The callback function to remove.
342
+ */
343
+ removePlusTabCallback(callback: (tab: string, event: PointerEvent | boolean) => void): void;
344
+ /**
345
+ * Handles the click event on the 'Plus' tab.
346
+ * Creates a ghost tab for user input and triggers callbacks.
347
+ * @param {string} tab The tab ID.
348
+ * @param {PointerEvent | boolean} event The event object.
349
+ */
350
+ onPlusTabClick(tab: string, event: PointerEvent | boolean): void;
351
+ /**
352
+ * Creates a temporary "ghost" tab that allows the user to input a name for a new tab.
353
+ */
354
+ createGhostTab(): void;
355
+ /**
356
+ * Adds a tab acting as a button (not user-selectable context switch).
357
+ * @param {string} id Unique identifier.
358
+ * @param {string} title Text to display.
359
+ * @param {Function} callback Function triggered on click.
360
+ * @returns {TabInfo} The created TabInfo object.
361
+ */
362
+ addButtonTab(id: string, title: string, callback: (tab: string, event: PointerEvent | boolean) => void): TabInfo;
363
+ /**
364
+ * Internal handler for tab click events.
365
+ * @private
366
+ * @param {TabInfoLIElement} element The tab element clicked.
367
+ * @param {PointerEvent | boolean} [event] The event triggering the click.
368
+ */
369
+ private _onTabClicked;
370
+ /**
371
+ * Selects a tab by its ID.
372
+ * @param {string} id The ID of the tab to select.
373
+ * @param {boolean} [skipEvents=false] If true, prevents triggering callbacks.
374
+ */
375
+ selectTab(id: string, skipEvents?: boolean): void;
376
+ /**
377
+ * Sets the visibility of a tab and its content.
378
+ * @param {string} id The ID of the tab.
379
+ * @param {boolean} visible True to show, false to hide.
380
+ */
381
+ setTabVisibility(id: string, visible: boolean): void;
382
+ /**
383
+ * Re-indexes the `tabsByIndex` array based on the current DOM order.
384
+ */
385
+ recomputeTabsByIndex(): void;
386
+ /**
387
+ * Removes a tab by its ID.
388
+ * @param {string} id The ID of the tab to remove.
389
+ */
390
+ removeTab(id: string): void;
391
+ /**
392
+ * Removes all tabs.
393
+ * @param {boolean} [keepPlus=false] If true, preserves the 'Plus' tab.
394
+ */
395
+ removeAllTabs(keepPlus?: boolean): void;
396
+ /**
397
+ * Alias for removing all tabs.
398
+ */
399
+ clear(): void;
400
+ /**
401
+ * Hides a specific tab.
402
+ * @param {string} id The ID of the tab to hide.
403
+ */
404
+ hideTab(id: string): void;
405
+ /**
406
+ * Shows a previously hidden tab.
407
+ * @param {string} id The ID of the tab to show.
408
+ */
409
+ showTab(id: string): void;
410
+ /**
411
+ * Transfers a tab from this widget to another Tabs widget.
412
+ * @param {string} id The ID of the tab to transfer.
413
+ * @param {Tabs} targetTabs The destination Tabs widget.
414
+ * @param {number} [index=0] The index to insert the tab at in the target widget.
415
+ */
416
+ transferTab(id: string, targetTabs: Tabs, index?: number): void;
417
+ /**
418
+ * Detaches a tab into a new window.
419
+ * @param {string} id The ID of the tab to detach.
420
+ * @param {Function} [onComplete] Callback triggering when detachment is complete.
421
+ * @param {Function} [onClose] Callback triggering when the new window is closed.
422
+ * @returns {Window | undefined} The new window object.
423
+ */
424
+ detachTab(id: string, onComplete?: () => void, onClose?: () => void): Window | undefined;
425
+ }
426
+ //# sourceMappingURL=tabs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../src/tabs.ts"],"names":[],"mappings":"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"}