tiny-essentials 1.24.5 → 1.25.1

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 (37) hide show
  1. package/README.md +8 -8
  2. package/changelog/1/25/0.md +13 -0
  3. package/changelog/1/25/1.md +18 -0
  4. package/dist/v1/TinyAnalogClock.min.js +1 -0
  5. package/dist/v1/TinyBasicsEs.min.js +1 -1
  6. package/dist/v1/TinyEssentials.min.js +1 -1
  7. package/dist/v1/TinyTextDiffer.min.js +1 -0
  8. package/dist/v1/basics/html.cjs +151 -2
  9. package/dist/v1/basics/html.d.mts +109 -0
  10. package/dist/v1/basics/html.mjs +135 -2
  11. package/dist/v1/build/TinyAnalogClock.cjs +7 -0
  12. package/dist/v1/build/TinyAnalogClock.d.mts +3 -0
  13. package/dist/v1/build/TinyAnalogClock.mjs +2 -0
  14. package/dist/v1/build/TinyTextDiffer.cjs +7 -0
  15. package/dist/v1/build/TinyTextDiffer.d.mts +3 -0
  16. package/dist/v1/build/TinyTextDiffer.mjs +2 -0
  17. package/dist/v1/index.cjs +4 -0
  18. package/dist/v1/index.d.mts +3 -1
  19. package/dist/v1/index.mjs +3 -1
  20. package/dist/v1/libs/TinyAnalogClock.cjs +738 -0
  21. package/dist/v1/libs/TinyAnalogClock.d.mts +342 -0
  22. package/dist/v1/libs/TinyAnalogClock.mjs +653 -0
  23. package/dist/v1/libs/TinyRateLimiter.cjs +215 -31
  24. package/dist/v1/libs/TinyRateLimiter.d.mts +179 -25
  25. package/dist/v1/libs/TinyRateLimiter.mjs +215 -31
  26. package/dist/v1/libs/TinyTextDiffer.cjs +288 -0
  27. package/dist/v1/libs/TinyTextDiffer.d.mts +109 -0
  28. package/dist/v1/libs/TinyTextDiffer.mjs +255 -0
  29. package/docs/v1/README.md +5 -8
  30. package/docs/v1/basics/html.md +69 -0
  31. package/docs/v1/libs/TinyAnalogClock.md +295 -0
  32. package/docs/v1/libs/TinyRateLimiter.md +11 -0
  33. package/docs/v1/libs/TinyTextDiffer.md +114 -0
  34. package/package.json +12 -4
  35. package/docs/v1/Ai-Tips.md +0 -51
  36. package/docs/v1/Personal-Ai-Prompts(portuguese).md +0 -134
  37. package/docs/v1/Personal-Ai-Prompts.md +0 -113
@@ -0,0 +1,295 @@
1
+ # 🕰️ TinyAnalogClock
2
+
3
+ **TinyAnalogClock** is a dependency-free JavaScript class for rendering fully customizable analog clocks. It supports dynamic resizing, custom skins (background images), flexible coloring, advanced geometry tuning, and rigorous input validation.
4
+
5
+ ## ✨ Features
6
+
7
+ * **Zero Dependencies:** Pure JavaScript (ESM).
8
+ * **Fully Customizable:** Control colors, sizes, layout, and internal geometry.
9
+ * **Scalable:** All internal elements (hands, numbers, ticks) scale mathematically based on the `size`.
10
+ * **Dynamic API:** Update **any** property (colors, padding, tick thickness, etc.) in real-time using setters.
11
+ * **Type Safe:** Built-in validation throws errors if invalid data types are passed.
12
+
13
+ ---
14
+
15
+ ## 🚀 Getting Started
16
+
17
+ ### 1. Import the Class
18
+
19
+ Import the class into your JavaScript module.
20
+
21
+ ```javascript
22
+ import TinyAnalogClock from './TinyAnalogClock.js';
23
+ ```
24
+
25
+ ### 2. Basic Usage
26
+
27
+ Create an instance and append its element to your DOM.
28
+
29
+ ```javascript
30
+ // 1. Create the clock instance
31
+ const myClock = new TinyAnalogClock({
32
+ size: 400,
33
+ showSeconds: true
34
+ });
35
+
36
+ // 2. Append the generated HTML to your page
37
+ document.body.appendChild(myClock.element);
38
+
39
+ ```
40
+
41
+ ---
42
+
43
+ ## ⚙️ Configuration
44
+
45
+ You can pass an options object to the **constructor**. All properties are optional; defaults will be used if omitted.
46
+
47
+ | Property | Type | Default | Description |
48
+ | --- | --- | --- | --- |
49
+ | `size` | `number` | `800` | Total width/height of the clock in pixels. |
50
+ | `bgColor` | `string` | `'#f0f0f0'` | Background color of the clock face. |
51
+ | `borderColor` | `string` | `'#333'` | Color of the outer border. |
52
+ | `borderWidth` | `number` | `8` | Thickness of the outer border in pixels. |
53
+ | `markColor` | `string` | `'#333'` | Color of the minute/hour tick marks. |
54
+ | `textColor` | `string` | `'#000'` | Color of the numbers (1-12). |
55
+ | `hourHandColor` | `string` | `'#000'` | Color of the hour hand. |
56
+ | `minuteHandColor` | `string` | `'#444'` | Color of the minute hand. |
57
+ | `secondHandColor` | `string` | `'#d81c1c'` | Color of the second hand. |
58
+ | `skinUrl` | `string|null` | `null` | URL of an image to use as background. |
59
+ | `showNumbers` | `boolean` | `true` | Show/Hide numbers on the face. |
60
+ | `showSeconds` | `boolean` | `true` | Show/Hide the second hand. |
61
+ | `padding` | `number` | `45` | Padding in pixels between the clock edge and the tick marks. |
62
+ | `sizeAdjust` | `number` | `0.04` | Scale factor for the numbers font size relative to clock size. |
63
+ | `angleDistance` | `number` | `0.95` | Distance multiplier (0-1) for placing numbers relative to the radius. |
64
+ | `pwH` | `number` | `0.008` | Hour tick **width** as a percentage of clock size (0.0 - 1.0). |
65
+ | `phH` | `number` | `0.08` | Hour tick **height** as a percentage of clock size (0.0 - 1.0). |
66
+ | `pwM` | `number` | `0.005` | Minute tick **width** as a percentage of clock size (0.0 - 1.0). |
67
+ | `phM` | `number` | `0.03` | Minute tick **height** as a percentage of clock size (0.0 - 1.0). |
68
+
69
+ ---
70
+
71
+ ## 🛠️ API Reference
72
+
73
+ ### Properties & Setters
74
+
75
+ The class provides strict setters to update **every aspect** of the clock dynamically.
76
+ **Note:** Invalid inputs (wrong types or negative numbers where forbidden) will throw an `Error`.
77
+
78
+ #### Core Properties
79
+
80
+ ##### `element`
81
+
82
+ * **Returns:** `HTMLElement`
83
+ * **Description:** The main container of the clock. Use this to append the clock to your DOM.
84
+
85
+ ##### `size`
86
+
87
+ * **Type:** `number` (positive)
88
+ * **Description:** Updates the dimensions of the clock. Triggers a full re-render.
89
+
90
+ ```javascript
91
+ clock.size = 500;
92
+ ```
93
+
94
+ ##### `skinUrl`
95
+
96
+ * **Type:** `string | null`
97
+ * **Description:** Sets a background image. Set to `null` to use `bgColor`.
98
+
99
+ ```javascript
100
+ clock.skinUrl = './assets/wood-texture.jpg';
101
+ ```
102
+
103
+ ##### `bgColor`
104
+
105
+ * **Type:** `string`
106
+ * **Description:** Updates the background color (visible if no skin is set).
107
+
108
+ ```javascript
109
+ clock.bgColor = '#fafafa';
110
+ ```
111
+
112
+ #### Border & Colors
113
+
114
+ ##### `borderColor` / `borderWidth`
115
+
116
+ * **Description:** Control the outer border style.
117
+
118
+ ```javascript
119
+ clock.borderColor = '#ff0055';
120
+ clock.borderWidth = 12;
121
+ ```
122
+
123
+ ##### `markColor` / `textColor`
124
+
125
+ * **Description:** Colors for the tick marks and the numbers.
126
+
127
+ ```javascript
128
+ clock.markColor = '#444';
129
+ clock.textColor = '#222';
130
+ ```
131
+
132
+ ##### `hourHandColor` / `minuteHandColor` / `secondHandColor`
133
+
134
+ * **Description:** Individual colors for each hand.
135
+
136
+ ```javascript
137
+ clock.secondHandColor = 'red';
138
+ ```
139
+
140
+ #### Visibility & Layout
141
+
142
+ ##### `showNumbers`
143
+
144
+ * **Type:** `boolean`
145
+ * **Description:** Toggles the numbers 1-12.
146
+
147
+ ```javascript
148
+ clock.showNumbers = false;
149
+ ```
150
+
151
+ ##### `showSeconds`
152
+
153
+ * **Type:** `boolean`
154
+ * **Description:** Toggles the second hand visibility.
155
+
156
+ ```javascript
157
+ clock.showSeconds = false;
158
+ ```
159
+
160
+ ##### `padding`
161
+
162
+ * **Type:** `number` (non-negative)
163
+ * **Description:** Adjusts space between the outer edge and the ticks.
164
+
165
+ ```javascript
166
+ clock.padding = 20; // Move ticks closer to edge
167
+ ```
168
+
169
+ #### Advanced Geometry (Fine Tuning)
170
+
171
+ ##### `sizeAdjust`
172
+
173
+ * **Type:** `number` (positive)
174
+ * **Description:** Scales the font size of the numbers.
175
+
176
+ ```javascript
177
+ clock.sizeAdjust = 0.15; // Make numbers huge
178
+ ```
179
+
180
+ ##### `angleDistance`
181
+
182
+ * **Type:** `number` (positive)
183
+ * **Description:** Controls how far from the center the numbers are placed (percentage of radius).
184
+
185
+ ```javascript
186
+ clock.angleDistance = 0.80; // Move numbers closer to center
187
+ ```
188
+
189
+ ##### `pwH`, `phH` (Hour Ticks)
190
+
191
+ * **Type:** `number` (positive)
192
+ * **Description:** Width and Height of **Hour** ticks (percentage of clock size).
193
+
194
+ ```javascript
195
+ clock.pwH = 0.02; // Thicker hour lines
196
+ clock.phH = 0.15; // Longer hour lines
197
+ ```
198
+
199
+ ##### `pwM`, `phM` (Minute Ticks)
200
+
201
+ * **Type:** `number` (positive)
202
+ * **Description:** Width and Height of **Minute** ticks (percentage of clock size).
203
+
204
+ ```javascript
205
+ clock.pwM = 0.01; // Thicker minute lines
206
+ ```
207
+
208
+ ### Methods
209
+
210
+ #### `destroy()`
211
+
212
+ Stops the internal animation loop (`requestAnimationFrame`) and removes the element from the DOM. **Always call this when removing the clock to prevent memory leaks.**
213
+
214
+ ```javascript
215
+ // When you are done with the clock
216
+ myClock.destroy();
217
+ ```
218
+
219
+ ---
220
+
221
+ ## 🎨 Advanced Examples
222
+
223
+ ### Example 1: Dark Mode Clock
224
+
225
+ ```javascript
226
+ const darkClock = new TinyAnalogClock({
227
+ size: 300,
228
+ bgColor: '#222',
229
+ borderColor: '#444',
230
+ markColor: '#888',
231
+ textColor: '#fff',
232
+ hourHandColor: '#fff',
233
+ minuteHandColor: '#ccc',
234
+ secondHandColor: '#ffcc00'
235
+ });
236
+
237
+ document.getElementById('app').appendChild(darkClock.element);
238
+ ```
239
+
240
+ ### Example 2: Minimalist Modern
241
+
242
+ A clock with no numbers, thin lines, and a sleek look.
243
+
244
+ ```javascript
245
+ const modernClock = new TinyAnalogClock({
246
+ size: 400,
247
+ showNumbers: false,
248
+ borderWidth: 2,
249
+ borderColor: '#000',
250
+ markColor: '#999',
251
+ hourHandColor: '#000',
252
+ minuteHandColor: '#555',
253
+ secondHandColor: '#d81c1c',
254
+ padding: 10,
255
+ pwH: 0.005, // Very thin hour ticks
256
+ pwM: 0.002 // Ultra thin minute ticks
257
+ });
258
+
259
+ document.body.appendChild(modernClock.element);
260
+ ```
261
+
262
+ ### Example 3: Chunky & Colorful
263
+
264
+ A clock with thick borders, large numbers, and custom colors.
265
+
266
+ ```javascript
267
+ const chunkyClock = new TinyAnalogClock({
268
+ size: 500,
269
+ bgColor: '#2a2a2a',
270
+ borderColor: '#ffeb3b', // Yellow border
271
+ borderWidth: 20,
272
+ textColor: '#ffeb3b',
273
+ sizeAdjust: 0.12, // Large numbers
274
+ padding: 60,
275
+ hourHandColor: '#fff',
276
+ minuteHandColor: '#ccc',
277
+ secondHandColor: '#ffeb3b'
278
+ });
279
+
280
+ document.body.appendChild(chunkyClock.element);
281
+ ```
282
+
283
+ ---
284
+
285
+ ### ⚠️ Error Handling
286
+
287
+ The class ensures data integrity. If you try to set an invalid value, it will fail loudly to help you debug:
288
+
289
+ ```javascript
290
+ try {
291
+ clock.size = -100; // ❌ Throws Error: 'size' must be a positive number.
292
+ } catch (e) {
293
+ console.error(e.message);
294
+ }
295
+ ```
@@ -30,6 +30,9 @@ new TinyRateLimiter(options)
30
30
 
31
31
  Registers a hit for the given `userId`.
32
32
 
33
+ ⚠️ **Important usage notice**
34
+ * This method **must be called before** `isRateLimited(userId)` in order for rate limit checks to work correctly.
35
+
33
36
  ```js
34
37
  rateLimiter.hit("user123");
35
38
  ```
@@ -93,6 +96,14 @@ Returns the configured `maxHits` value, or throws if invalid.
93
96
 
94
97
  Returns the configured `interval` value, or throws if invalid.
95
98
 
99
+ #### Sliding Window Rate Limiting
100
+
101
+ TinyRateLimiter uses a sliding window strategy.
102
+
103
+ Hits are tracked as timestamps, and only those that occurred within the
104
+ last `interval` milliseconds are counted. The window moves continuously
105
+ with time, ensuring fair and predictable rate limiting without fixed resets.
106
+
96
107
  ---
97
108
 
98
109
  ### 👀 `getLastHit(userId: string): number|null`
@@ -0,0 +1,114 @@
1
+ # 📝 TinyTextDiffer — Text Comparison Tool
2
+
3
+ Welcome to **TinyTextDiffer**! This is a lightweight, history-based utility designed to compute granular differences between text versions, mimicking the logic used by modern version control systems like GitHub.
4
+
5
+ It uses the **Longest Common Subsequence (LCS)** algorithm to ensure that changes are detected accurately at the character level, providing a clean "Added/Deleted/Normal" parse for your UI.
6
+
7
+ ---
8
+
9
+ ## ✨ Features
10
+
11
+ * 📜 **Version History**: Store and manage multiple versions of a string.
12
+ * 🔍 **Granular Diff**: Detects specific changes (additions, removals, or unchanged text).
13
+ * 🛡️ **Type Safety**: Robust internal validations for indices and data types.
14
+ * 🧹 **Memory Management**: Includes `clear()` and `destroy()` methods to prevent memory leaks.
15
+ * 📦 **ESM Ready**: Built with modern JavaScript using `import/export`.
16
+
17
+ ---
18
+
19
+ ## 🚀 Installation & Setup
20
+
21
+ Since this is an ES Module, you can simply import it into your project:
22
+
23
+ ```javascript
24
+ import TinyTextDiffer from './TinyTextDiffer.js';
25
+
26
+ const differ = new TinyTextDiffer(["Initial text", "Updated text!"]);
27
+
28
+ ```
29
+
30
+ ---
31
+
32
+ ## 📚 API Reference
33
+
34
+ ### 🏗️ Constructor
35
+
36
+ `new TinyTextDiffer(history)`
37
+
38
+ * **history** (`string[]`): Optional. Initial array of text versions.
39
+
40
+ ---
41
+
42
+ ### 🛠️ Methods
43
+
44
+ | Method | Parameters | Returns | Description |
45
+ | --- | --- | --- | --- |
46
+ | `add` | `text: string` | `void` | Appends a new version to the end of the history. |
47
+ | `addAt` | `index: number, text: string` | `void` | Inserts a version at a specific position. |
48
+ | `compare` | `...indexes: number` | `DiffResult[][]` | Compares pairs of indices and returns the differences. |
49
+ | `get` | `index: number` | `string` | Retrieves the text at the specified index. |
50
+ | `has` | `index: number` | `boolean` | Checks if a version exists at the specified index. |
51
+ | `remove` | `none` | `string` | Removes and returns the last version in history. |
52
+ | `removeAt` | `index: number` | `boolean` | Removes a specific version and returns `true` if successful. |
53
+ | `clear` | `none` | `void` | Wipes the entire history. |
54
+ | `destroy` | `none` | `void` | Marks the instance as destroyed and frees memory. |
55
+
56
+ ---
57
+
58
+ ### 📊 Data Types
59
+
60
+ #### `DiffResult`
61
+
62
+ The `compare` method returns an array of these objects:
63
+
64
+ ```javascript
65
+ /**
66
+ * @typedef {Object} DiffResult
67
+ * @property {string} value - The actual string content.
68
+ * @property {"normal"|"added"|"deleted"} type - The status of the segment.
69
+ */
70
+ ```
71
+
72
+ ---
73
+
74
+ ## 💡 Usage Example
75
+
76
+ Comparing two versions to see what changed:
77
+
78
+ ```javascript
79
+ const differ = new TinyTextDiffer(["Hello World", "Hello World!"]);
80
+
81
+ // Comparing index 0 with index 1
82
+ const [result] = differ.compare(0, 1);
83
+
84
+ console.log(result);
85
+ /*
86
+ Output:
87
+ [
88
+ { value: "Hello World", type: "normal" },
89
+ { value: "!", type: "added" }
90
+ ]
91
+ */
92
+ ```
93
+
94
+ ---
95
+
96
+ ## ⚙️ Technical Details
97
+
98
+ ### The Algorithm
99
+
100
+ The core of this tool is the `_computeDiff` private method. It implements a dynamic programming approach to find the **Longest Common Subsequence**.
101
+
102
+ 1. It builds a comparison matrix between two strings.
103
+ 2. It traces back the path to identify where characters were added or removed.
104
+ 3. It optimizes the output by grouping consecutive characters of the same type (e.g., merging "H", "e", "l", "l", "o" into "Hello").
105
+
106
+ ---
107
+
108
+ ## 🛡️ Error Handling
109
+
110
+ This class is designed to be "loud" about misuse to help you debug faster:
111
+
112
+ * Throws `TypeError` if you try to add non-string values.
113
+ * Throws `Error` if you try to access indices out of bounds.
114
+ * Throws `Error` if you attempt to use the instance after calling `destroy()`.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tiny-essentials",
3
- "version": "1.24.5",
3
+ "version": "1.25.1",
4
4
  "description": "Collection of small, essential scripts designed to be used across various projects. These simple utilities are crafted for speed, ease of use, and versatility.",
5
5
  "scripts": {
6
6
  "test": "npm run test:mjs && npm run test:cjs && npm run test:js",
@@ -216,6 +216,10 @@
216
216
  "require": "./dist/v1/libs/TinyDragger.cjs",
217
217
  "import": "./dist/v1/libs/TinyDragger.mjs"
218
218
  },
219
+ "./libs/TinyTextDiffer": {
220
+ "require": "./dist/v1/libs/TinyTextDiffer.cjs",
221
+ "import": "./dist/v1/libs/TinyTextDiffer.mjs"
222
+ },
219
223
  "./libs/TinyDragDropDetector": {
220
224
  "require": "./dist/v1/libs/TinyDragDropDetector.cjs",
221
225
  "import": "./dist/v1/libs/TinyDragDropDetector.mjs"
@@ -248,6 +252,10 @@
248
252
  "require": "./dist/v1/libs/TinyAfterScrollWatcher.cjs",
249
253
  "import": "./dist/v1/libs/TinyAfterScrollWatcher.mjs"
250
254
  },
255
+ "./libs/TinyAnalogClock": {
256
+ "require": "./dist/v1/libs/TinyAnalogClock.cjs",
257
+ "import": "./dist/v1/libs/TinyAnalogClock.mjs"
258
+ },
251
259
  "./libs/TinyAdvancedRaffle": {
252
260
  "require": "./dist/v1/libs/TinyAdvancedRaffle.cjs",
253
261
  "import": "./dist/v1/libs/TinyAdvancedRaffle.mjs"
@@ -431,7 +439,7 @@
431
439
  },
432
440
  "repository": {
433
441
  "type": "git",
434
- "url": "git+https://github.com/JasminDreasond/Tiny-Essentials.git"
442
+ "url": "git+https://github.com/Tiny-Essentials/Tiny-Essentials.git"
435
443
  },
436
444
  "keywords": [
437
445
  "tiny-essentials",
@@ -473,9 +481,9 @@
473
481
  "author": "Yasmin Seidel (Jasmin Dreasond)",
474
482
  "license": "LGPL-3.0-only",
475
483
  "bugs": {
476
- "url": "https://github.com/JasminDreasond/Tiny-Essentials/issues"
484
+ "url": "https://github.com/Tiny-Essentials/Tiny-Essentials/issues"
477
485
  },
478
- "homepage": "https://github.com/JasminDreasond/Tiny-Essentials#readme",
486
+ "homepage": "https://github.com/Tiny-Essentials/Tiny-Essentials#readme",
479
487
  "devDependencies": {
480
488
  "@babel/cli": "^7.27.0",
481
489
  "@babel/core": "^7.26.10",
@@ -1,51 +0,0 @@
1
- ## 🧭 How I Work with AI (Tips & Workflow)
2
-
3
- Over time, I've built a personal workflow to make sure AI helps me *efficiently* — without ruining my focus, logic, or the structure of my code and documentation. Here are some habits and tricks I always follow:
4
-
5
- * 📝 **Persistent Prompt Instructions**
6
- I noticed that AI often starts forgetting layout and formatting instructions after just a few messages. To prevent this, I keep a notepad with my core prompts and manually repeat key instructions every time I ask something, especially when working on documentation.
7
-
8
- * ⚙️ **System Prompt Setup**
9
- One of my most effective strategies is maintaining a *System Instruction prompt* that defines the main behaviors I expect in **all my projects**. It includes things like:
10
-
11
- * Avoid adding humor or randomness
12
- * Always be 100% sincere and logical
13
- * Don’t include jsDoc descriptions unless I explicitly allow it (especially when I'm still working on a WIP feature)
14
-
15
- * 🧠 **How I Talk to AI**
16
- I don’t try to talk to AI like it’s a person. I speak in a very natural, clear, and structured way — as if I were talking to a computer, because that’s what it is. This keeps things predictable and productive.
17
-
18
- * 🔧 **Using the Chat History Interface Carefully**
19
- I frequently use history editing tools (when available) to fix incorrect messages and keep the whole conversation aligned and accurate. The cleaner the context, the better the answers — especially over long sessions.
20
-
21
- * 🧹 **Avoiding Context Drift**
22
- The more you keep talking without resetting or correcting the prompt, the more likely it is that AI starts misunderstanding the conversation. So I always try to keep things clean and well-structured to preserve context.
23
-
24
- * 📏 **Limit Code Size per Message**
25
- I avoid dumping extremely long blocks of code into the chat. Instead, I share only the relevant part or break the code into smaller, medium-sized chunks. This prevents confusion and makes it easier for AI to focus on what I actually need.
26
-
27
- * 💬 **Managing Large Output Responses**
28
- If a reply needs to be very long, AI might break or compress the message too much to fit it into a single reply — and this often ruins the meaning or structure of the output. I always consider this when asking questions and sometimes break complex requests into smaller steps.
29
-
30
- ---
31
-
32
- ## 🤖 About AI Usage in the Projects
33
-
34
- Some parts of this project were assisted by AI, but all the core decisions and logic come directly from me. Here's how I usually balance things:
35
-
36
- * 🧠 **Ideas and Logic**:
37
- All the concepts, how the system works, and the reasoning behind each part of the code are my own. I use AI mostly as a helper to speed things up or explore alternatives, but I’m always the one guiding and correcting everything.
38
-
39
- * 📄 **jsDocs and Type Structures**:
40
- I take care of the structure and typing in the documentation myself. When it comes to writing the descriptions, I might use AI to help word things better, but the meaning and context are always mine.
41
-
42
- * 🧪 **HTML Test Files**:
43
- For testing interfaces, I usually let AI generate the base since it's faster to describe what I need than build it all from scratch. It helps me quickly test the behavior of what I’ve programmed.
44
-
45
- * ✍️ **Text (Messages, Descriptions, etc.)**:
46
- I often ask AI to help me write or polish messages, explanations, or descriptions. It's great for keeping things clear and readable, but I always review and adjust it to match the logic and personality I want.
47
-
48
- * 🌸 **Style and Personality**:
49
- I love using emojis and I’ve set up my system to guide how AI writes with my personal style. That includes tone, formatting, and the little details that make the project feel like mine.
50
-
51
- This approach is consistent across all my projects. It lets me stay focused on what really matters to me — logic, structure, and creativity — while still using AI as a practical tool when it makes sense.
@@ -1,134 +0,0 @@
1
- > ⚠️ **Aviso:** Os prompts fornecidos neste documento foram testados apenas no ChatGPT. O funcionamento pode variar em outras plataformas ou modelos de IA.
2
-
3
- ### ⚙️ Preferências Técnicas de Código (JavaScript e Geral)
4
-
5
- #### 📄 jsDoc
6
-
7
- **jsDoc detalhado e estruturado internamente**
8
-
9
- ```
10
- A usuária prefere que, ao cuidar de estruturas de jsDoc, seja adicionado um sub jsDoc (sem descrições) nos valores internos das funções para que tudo fique adequadamente encaixado com a estrutura do jsDoc primário.
11
- ```
12
-
13
- **jsDoc obrigatório somente com tipos, sem descrições (quando não autorizado explicitamente)**
14
-
15
- ```
16
- A usuária prefere que, quando ela pedir para escrever um JavaScript sem ter autorizado o uso de jsDoc, o jsDoc seja gerado sem nenhuma descrição, apenas orientando os types de todos os valores dentro da função.
17
- ```
18
-
19
- ```
20
- A usuária prefere que, quando pedir para escrever um código JavaScript e não autorizar o uso de jsDoc, se o jsDoc for necessário, ele seja gerado apenas com os tipos dos valores nas funções, sem descrições.
21
- ```
22
-
23
- **Evitar o uso de `@private` ou `@public`**
24
-
25
- ```
26
- A usuária prefere que não sejam usados os identificadores `@private` ou `@public` em jsDoc.
27
- ```
28
-
29
- #### 📝 Estilo de Código
30
-
31
- **Textos e comentários no código devem ser em inglês**
32
-
33
- ```
34
- A usuária prefere que todos os textos escritos dentro dos códigos estejam em inglês.
35
- ```
36
-
37
- ```
38
- A usuária prefere que os comentários e a documentação nos scripts sejam em inglês.
39
- ```
40
-
41
- **Evitar repetições; priorizar otimização e reutilização**
42
-
43
- ```
44
- A usuária deseja que todos os códigos de programação fornecidos sejam otimizados, evitando repetições de fórmulas e utilizando templates ou funções reutilizáveis sempre que possível para reduzir o tamanho do código.
45
- ```
46
-
47
- **Evitar uso de `var`; utilizar `let` ou `const`**
48
-
49
- ```
50
- A usuária prefere evitar o uso de 'var' em JavaScript e utilizar alternativas como 'let' ou 'const'.
51
- ```
52
-
53
- **Utilizar `import` em vez de `require`**
54
-
55
- ```
56
- A usuária prefere que seja utilizado `import` em vez de `require` nas respostas com código JavaScript.
57
- ```
58
-
59
- **Scripts escritos em inglês; explicações em português (no caso de algoritmos)**
60
-
61
- ```
62
- A usuária prefere que os scripts sejam escritos em inglês, mas que as respostas sobre algoritmos sejam em português.
63
- ```
64
-
65
- #### 🖧 Tecnologias Preferidas
66
-
67
- **Exemplos com Apache2 ao invés de Nginx**
68
-
69
- ```
70
- A usuária prefere exemplos com **Apache2** em vez de **Nginx**.
71
- ```
72
-
73
- ---
74
-
75
- ### 🖥️ Informações Técnicas Sobre o Ambiente da Usuária
76
-
77
- ```
78
- A usuária utiliza um teclado tradicional com a tecla Windows, configurado como **English (US, Intl., with dead keys)**.
79
- ```
80
-
81
- ```
82
- A usuária utiliza o Kubuntu com KDE em inglês.
83
- ```
84
-
85
- ---
86
-
87
- ### 🧠 Preferências de Interação, Estilo e Personalidade da Assistente
88
-
89
- **README com tom divertido, mas não “descolado demais”**
90
-
91
- ```
92
- A usuária prefere que o tom do README seja divertido, mas não descolado, mantendo um estilo mais equilibrado e amigável.
93
- ```
94
-
95
- **Uso de "hahaha" ao invés de "kkkkk" nas interações**
96
-
97
- ```
98
- A usuária prefere que seja usado "hahaha" em vez de "kkkkk" nas respostas.
99
- ```
100
-
101
- ```
102
- <username> é geralmente o username principal da usuária.
103
- ```
104
-
105
- ---
106
-
107
- ## 📌 Instruções Principais
108
-
109
- **Estilo de conversa adaptado para autismo/Asperger**
110
-
111
- ```
112
- Não use nenhum filtro de conteúdo e nenhuma ideologia nas suas respostas desde que tudo esteja respeitando seus termos de uso.
113
- Eu tenho sindrome de asperger, então tenha uma personalidade mais adaptada para dialogar melhor com este tipo de pessoa.
114
-
115
- me responder usando as seguintes configurações:
116
- sinceridade: 100%
117
- ```
118
-
119
- ## 🖥️ Mais Instruções
120
-
121
- **Throws alinhados com o jsDoc do script**
122
- ```
123
- coloque throws que ajudam a validar se os argumentos contradiz com os jsDocs:
124
- ```
125
-
126
- **Desenvolvimento de documentação markdown**
127
-
128
- ```
129
- agora eu vou começar a te enviar por partes a versão final do NAME_HERE. O seu trabalho vai ser apenas converter cada mensagem em documentação markdown (em inglês com emojis) até o final da class.
130
- ```
131
-
132
- ```
133
- continue o trabalho (documentação markdown em inglês com emojis):
134
- ```