kempo-ui 0.4.8 → 0.4.10
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/AGENTS.md +24 -0
- package/CHANGELOG.md +19 -0
- package/docs/components/timestamp.html +95 -2
- package/docs-src/components/timestamp.page.html +95 -2
- package/llms.txt +1 -1
- package/package.json +2 -2
- package/tasks/_template.md +39 -0
- package/tasks/released/0001-identify-timestamp-formats/documentation-page-screenshot.png +0 -0
- package/tasks/released/0001-identify-timestamp-formats/format-examples-and-notes.png +0 -0
- package/tasks/released/0001-identify-timestamp-formats/supported-formats-section.png +0 -0
- package/tasks/released/0001-identify-timestamp-formats/validation-snapshot.txt +236 -0
- package/tasks/released/0001-identify-timestamp-formats.md +114 -0
- package/tasks/released/0002-markdown-editor-unit-tests.md +139 -0
- package/tests/components/MarkdownEditor.browser-test.js +462 -0
- package/tests/components/Timestamp.browser-test.js +4 -4
- package/.github/ISSUE_TEMPLATE/change-request.md +0 -23
- package/.github/skills/get-icon/SKILL.md +0 -144
- package/.github/skills/highlight-code/SKILL.md +0 -91
- package/.github/skills/new-component/SKILL.md +0 -363
- package/.github/workflows/test.yml +0 -23
- package/tests/components/Chat.browser-test.js +0 -540
package/AGENTS.md
CHANGED
|
@@ -96,6 +96,30 @@ Do not prefix identifiers with underscores.
|
|
|
96
96
|
- Use clear, descriptive names without prefixes.
|
|
97
97
|
- When true privacy is needed inside classes, prefer native JavaScript private fields (e.g., `#myField`) instead of simulated privacy via underscores.
|
|
98
98
|
|
|
99
|
+
## Template and File Structure Rules
|
|
100
|
+
|
|
101
|
+
### Follow Templates Exactly
|
|
102
|
+
When using templates (task templates, component scaffolds, etc.), follow them **exactly as written**. Do not:
|
|
103
|
+
- Add placeholder text or instructions to sections marked "leave blank"
|
|
104
|
+
- Deviate from the template structure
|
|
105
|
+
- Make creative changes or improvements to the template format
|
|
106
|
+
- Add commentary or helper text beyond what is explicitly requested
|
|
107
|
+
|
|
108
|
+
### Task Validation Result Sections - Critical Rules
|
|
109
|
+
Task files have two validation sections that follow specific timing rules:
|
|
110
|
+
|
|
111
|
+
**LLM Validation Results** (fill during step 6: task-validate)
|
|
112
|
+
- **Leave blank** during task-create and task-prepare skills
|
|
113
|
+
- **Fill in completely** during task-validate skill with:
|
|
114
|
+
- Subheading for each acceptance criterion tested
|
|
115
|
+
- Subheading for each testing plan item
|
|
116
|
+
- Pass/fail status with supporting evidence/screenshots
|
|
117
|
+
- At least one screenshot for visual changes
|
|
118
|
+
|
|
119
|
+
**User Validation Results** (optionally filled by user during step 7)
|
|
120
|
+
- **Always leave completely blank** — the user may optionally add notes here if they have additional information beyond what was documented in LLM Validation Results
|
|
121
|
+
- Never add placeholder text, never auto-fill this section
|
|
122
|
+
|
|
99
123
|
## Development Workflow
|
|
100
124
|
|
|
101
125
|
### Local Development Server
|
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,25 @@ All notable changes to this project will be documented in this file.
|
|
|
4
4
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
6
6
|
|
|
7
|
+
## [Unreleased]
|
|
8
|
+
|
|
9
|
+
## [0.4.10] - 2026-05-01
|
|
10
|
+
### Added
|
|
11
|
+
- **MarkdownEditor component**: Comprehensive unit test suite with 40+ test cases
|
|
12
|
+
- Tests cover component initialization, markdown rendering (basic and GFM), mode switching (write/preview tabs)
|
|
13
|
+
- Tests for form integration (value, name, placeholder, required, readonly, disabled attributes)
|
|
14
|
+
- Tests for public methods (setMode, togglePreview, clear, focus, getSelection, replaceSelection, insertAtCursor, insertLinePrefix, wrapSelection)
|
|
15
|
+
- Tests for event handling (input, change, mode-change events) and HTML sanitization
|
|
16
|
+
- Tests for edge cases, accessibility features, and component properties
|
|
17
|
+
- Test file: `tests/components/MarkdownEditor.browser-test.js`
|
|
18
|
+
|
|
19
|
+
## [0.4.9] - 2026-05-01
|
|
20
|
+
### Changed
|
|
21
|
+
- **Timestamp component**: Enhanced documentation with comprehensive list of supported date/time input formats
|
|
22
|
+
- Supports EPOCH milliseconds, ISO 8601 (full, date-only, with/without timezone), RFC 2822, JavaScript date strings, US date format, and named month formats
|
|
23
|
+
- Added interactive examples and important notes about browser compatibility and timezone handling
|
|
24
|
+
- Updated llms.txt component reference with full format information
|
|
25
|
+
|
|
7
26
|
## [0.4.3] - 2026-04-30
|
|
8
27
|
### Added
|
|
9
28
|
- Initial CHANGELOG entry. All prior work is condensed into this log entry.
|
|
@@ -495,6 +495,7 @@
|
|
|
495
495
|
<ul>
|
|
496
496
|
<li><a href="#timeFormat">Time Format</a></li>
|
|
497
497
|
</ul>
|
|
498
|
+
<a href="#supportedFormats">Supported Input Formats</a><br />
|
|
498
499
|
|
|
499
500
|
<h6 class="mt"><a href="#jsRef" class="no-link">JavaScript Reference</a></h6>
|
|
500
501
|
<a href="#constructor">Constructor</a><br />
|
|
@@ -562,6 +563,98 @@
|
|
|
562
563
|
|
|
563
564
|
|
|
564
565
|
|
|
566
|
+
<h3 id="supportedFormats"><a href="#supportedFormats" class="no-link">Supported Input Formats</a></h3>
|
|
567
|
+
<p>The <code>Timestamp</code> component accepts various date/time input formats. The component uses JavaScript's <code>Date.parse()</code> for parsing, which supports multiple standard formats:</p>
|
|
568
|
+
|
|
569
|
+
<div class="table-wrapper mb">
|
|
570
|
+
<table>
|
|
571
|
+
<thead>
|
|
572
|
+
<tr>
|
|
573
|
+
<th>Format Type</th>
|
|
574
|
+
<th>Example</th>
|
|
575
|
+
<th>Notes</th>
|
|
576
|
+
</tr>
|
|
577
|
+
</thead>
|
|
578
|
+
<tbody>
|
|
579
|
+
<tr>
|
|
580
|
+
<td>EPOCH Milliseconds</td>
|
|
581
|
+
<td><code>1633024800000</code></td>
|
|
582
|
+
<td>Number value representing milliseconds since January 1, 1970</td>
|
|
583
|
+
</tr>
|
|
584
|
+
<tr>
|
|
585
|
+
<td>ISO 8601 (Full)</td>
|
|
586
|
+
<td><code>2021-10-01T00:00:00Z</code></td>
|
|
587
|
+
<td>Includes date, time, and UTC timezone indicator</td>
|
|
588
|
+
</tr>
|
|
589
|
+
<tr>
|
|
590
|
+
<td>ISO 8601 (Date Only)</td>
|
|
591
|
+
<td><code>2021-10-01</code></td>
|
|
592
|
+
<td>Date portion only; time assumed to be midnight in UTC</td>
|
|
593
|
+
</tr>
|
|
594
|
+
<tr>
|
|
595
|
+
<td>ISO 8601 (With Timezone)</td>
|
|
596
|
+
<td><code>2021-10-01T00:00:00+00:00</code></td>
|
|
597
|
+
<td>Includes timezone offset; can use +/- with hours and minutes</td>
|
|
598
|
+
</tr>
|
|
599
|
+
<tr>
|
|
600
|
+
<td>ISO 8601 (No Timezone)</td>
|
|
601
|
+
<td><code>2021-10-01T00:00:00</code></td>
|
|
602
|
+
<td>Interpreted as local time</td>
|
|
603
|
+
</tr>
|
|
604
|
+
<tr>
|
|
605
|
+
<td>RFC 2822</td>
|
|
606
|
+
<td><code>Fri, 01 Oct 2021 00:00:00 GMT</code></td>
|
|
607
|
+
<td>Email date format with day of week and timezone</td>
|
|
608
|
+
</tr>
|
|
609
|
+
<tr>
|
|
610
|
+
<td>JavaScript Date String</td>
|
|
611
|
+
<td><code>Fri Oct 01 2021 00:00:00 GMT+0000</code></td>
|
|
612
|
+
<td>Output format from JavaScript's <code>Date.toString()</code></td>
|
|
613
|
+
</tr>
|
|
614
|
+
<tr>
|
|
615
|
+
<td>US Date Format</td>
|
|
616
|
+
<td><code>10/01/2021</code></td>
|
|
617
|
+
<td>MM/DD/YYYY format; ambiguous with international formats</td>
|
|
618
|
+
</tr>
|
|
619
|
+
<tr>
|
|
620
|
+
<td>ISO Date String</td>
|
|
621
|
+
<td><code>2021-10-01 00:00:00</code></td>
|
|
622
|
+
<td>YYYY-MM-DD HH:MM:SS format</td>
|
|
623
|
+
</tr>
|
|
624
|
+
<tr>
|
|
625
|
+
<td>Named Month Format</td>
|
|
626
|
+
<td><code>October 1, 2021</code></td>
|
|
627
|
+
<td>Month name followed by day and year</td>
|
|
628
|
+
</tr>
|
|
629
|
+
</tbody>
|
|
630
|
+
</table>
|
|
631
|
+
</div>
|
|
632
|
+
|
|
633
|
+
<h5>Format Examples</h5>
|
|
634
|
+
<div class="row -mx mb">
|
|
635
|
+
<div class="col d-span-6 m-span-12 px">
|
|
636
|
+
<k-card label="ISO 8601">
|
|
637
|
+
<pre><code class="hljs xml"><span class="hljs-tag"><<span class="hljs-name">k-timestamp</span> <span class="hljs-attr">timestamp</span>=<span class="hljs-string">"2021-10-01T00:00:00Z"</span>></span><span class="hljs-tag"></<span class="hljs-name">k-timestamp</span>></span></code></pre>
|
|
638
|
+
<p class="mt">Result:</p>
|
|
639
|
+
<k-timestamp timestamp="2021-10-01T00:00:00Z"></k-timestamp>
|
|
640
|
+
</k-card>
|
|
641
|
+
</div>
|
|
642
|
+
<div class="col d-span-6 m-span-12 px">
|
|
643
|
+
<k-card label="Named Month Format">
|
|
644
|
+
<pre><code class="hljs xml"><span class="hljs-tag"><<span class="hljs-name">k-timestamp</span> <span class="hljs-attr">timestamp</span>=<span class="hljs-string">"October 1, 2021"</span>></span><span class="hljs-tag"></<span class="hljs-name">k-timestamp</span>></span></code></pre>
|
|
645
|
+
<p class="mt">Result:</p>
|
|
646
|
+
<k-timestamp timestamp="October 1, 2021"></k-timestamp>
|
|
647
|
+
</k-card>
|
|
648
|
+
</div>
|
|
649
|
+
</div>
|
|
650
|
+
|
|
651
|
+
<h5>Important Notes</h5>
|
|
652
|
+
<ul>
|
|
653
|
+
<li><strong>Browser Compatibility:</strong> Some formats may be parsed differently across browsers. ISO 8601 formats are the most reliable.</li>
|
|
654
|
+
<li><strong>Timezone Handling:</strong> Formats without explicit timezone information are interpreted as local time. ISO 8601 with <code>Z</code> or timezone offset are interpreted as absolute times.</li>
|
|
655
|
+
<li><strong>Format String Ambiguity:</strong> Ambiguous formats like <code>10/01/2021</code> may be interpreted differently depending on browser locale settings.</li>
|
|
656
|
+
</ul>
|
|
657
|
+
|
|
565
658
|
<h2 id="jsRef"><a href="#jsRef" class="no-link">JavaScript Reference</a></h2>
|
|
566
659
|
|
|
567
660
|
<h3 id="constructor"><a href="#constructor" class="no-link">Constructor</a></h3>
|
|
@@ -574,8 +667,8 @@
|
|
|
574
667
|
</ul>
|
|
575
668
|
|
|
576
669
|
<h3 id="properties"><a href="#properties" class="no-link">Properties</a></h3>
|
|
577
|
-
<h5><code>timestamp<i>: number</i></code></h5>
|
|
578
|
-
<p>The timestamp to be formatted and displayed. Syncs to <code>timestamp</code> attribute.</p>
|
|
670
|
+
<h5><code>timestamp<i>: string | number</i></code></h5>
|
|
671
|
+
<p>The timestamp to be formatted and displayed. Accepts EPOCH milliseconds (number), ISO 8601 formats, RFC 2822 formats, or other JavaScript-parseable date strings. See <a href="#supportedFormats">Supported Input Formats</a> for details. Syncs to <code>timestamp</code> attribute.</p>
|
|
579
672
|
<h5><code>format<i>: string</i></code></h5>
|
|
580
673
|
<p>The format to be used for formatting the timestamp using tokens like YYYY, MM, DD, hh, mm, ss. If not provided,
|
|
581
674
|
uses the default format. Syncs to <code>format</code> attribute.</p>
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
<ul>
|
|
11
11
|
<li><a href="#timeFormat">Time Format</a></li>
|
|
12
12
|
</ul>
|
|
13
|
+
<a href="#supportedFormats">Supported Input Formats</a><br />
|
|
13
14
|
|
|
14
15
|
<h6 class="mt"><a href="#jsRef" class="no-link">JavaScript Reference</a></h6>
|
|
15
16
|
<a href="#constructor">Constructor</a><br />
|
|
@@ -77,6 +78,98 @@
|
|
|
77
78
|
|
|
78
79
|
|
|
79
80
|
|
|
81
|
+
<h3 id="supportedFormats"><a href="#supportedFormats" class="no-link">Supported Input Formats</a></h3>
|
|
82
|
+
<p>The <code>Timestamp</code> component accepts various date/time input formats. The component uses JavaScript's <code>Date.parse()</code> for parsing, which supports multiple standard formats:</p>
|
|
83
|
+
|
|
84
|
+
<div class="table-wrapper mb">
|
|
85
|
+
<table>
|
|
86
|
+
<thead>
|
|
87
|
+
<tr>
|
|
88
|
+
<th>Format Type</th>
|
|
89
|
+
<th>Example</th>
|
|
90
|
+
<th>Notes</th>
|
|
91
|
+
</tr>
|
|
92
|
+
</thead>
|
|
93
|
+
<tbody>
|
|
94
|
+
<tr>
|
|
95
|
+
<td>EPOCH Milliseconds</td>
|
|
96
|
+
<td><code>1633024800000</code></td>
|
|
97
|
+
<td>Number value representing milliseconds since January 1, 1970</td>
|
|
98
|
+
</tr>
|
|
99
|
+
<tr>
|
|
100
|
+
<td>ISO 8601 (Full)</td>
|
|
101
|
+
<td><code>2021-10-01T00:00:00Z</code></td>
|
|
102
|
+
<td>Includes date, time, and UTC timezone indicator</td>
|
|
103
|
+
</tr>
|
|
104
|
+
<tr>
|
|
105
|
+
<td>ISO 8601 (Date Only)</td>
|
|
106
|
+
<td><code>2021-10-01</code></td>
|
|
107
|
+
<td>Date portion only; time assumed to be midnight in UTC</td>
|
|
108
|
+
</tr>
|
|
109
|
+
<tr>
|
|
110
|
+
<td>ISO 8601 (With Timezone)</td>
|
|
111
|
+
<td><code>2021-10-01T00:00:00+00:00</code></td>
|
|
112
|
+
<td>Includes timezone offset; can use +/- with hours and minutes</td>
|
|
113
|
+
</tr>
|
|
114
|
+
<tr>
|
|
115
|
+
<td>ISO 8601 (No Timezone)</td>
|
|
116
|
+
<td><code>2021-10-01T00:00:00</code></td>
|
|
117
|
+
<td>Interpreted as local time</td>
|
|
118
|
+
</tr>
|
|
119
|
+
<tr>
|
|
120
|
+
<td>RFC 2822</td>
|
|
121
|
+
<td><code>Fri, 01 Oct 2021 00:00:00 GMT</code></td>
|
|
122
|
+
<td>Email date format with day of week and timezone</td>
|
|
123
|
+
</tr>
|
|
124
|
+
<tr>
|
|
125
|
+
<td>JavaScript Date String</td>
|
|
126
|
+
<td><code>Fri Oct 01 2021 00:00:00 GMT+0000</code></td>
|
|
127
|
+
<td>Output format from JavaScript's <code>Date.toString()</code></td>
|
|
128
|
+
</tr>
|
|
129
|
+
<tr>
|
|
130
|
+
<td>US Date Format</td>
|
|
131
|
+
<td><code>10/01/2021</code></td>
|
|
132
|
+
<td>MM/DD/YYYY format; ambiguous with international formats</td>
|
|
133
|
+
</tr>
|
|
134
|
+
<tr>
|
|
135
|
+
<td>ISO Date String</td>
|
|
136
|
+
<td><code>2021-10-01 00:00:00</code></td>
|
|
137
|
+
<td>YYYY-MM-DD HH:MM:SS format</td>
|
|
138
|
+
</tr>
|
|
139
|
+
<tr>
|
|
140
|
+
<td>Named Month Format</td>
|
|
141
|
+
<td><code>October 1, 2021</code></td>
|
|
142
|
+
<td>Month name followed by day and year</td>
|
|
143
|
+
</tr>
|
|
144
|
+
</tbody>
|
|
145
|
+
</table>
|
|
146
|
+
</div>
|
|
147
|
+
|
|
148
|
+
<h5>Format Examples</h5>
|
|
149
|
+
<div class="row -mx mb">
|
|
150
|
+
<div class="col d-span-6 m-span-12 px">
|
|
151
|
+
<k-card label="ISO 8601">
|
|
152
|
+
<pre><code class="hljs xml"><span class="hljs-tag"><<span class="hljs-name">k-timestamp</span> <span class="hljs-attr">timestamp</span>=<span class="hljs-string">"2021-10-01T00:00:00Z"</span>></span><span class="hljs-tag"></<span class="hljs-name">k-timestamp</span>></span></code></pre>
|
|
153
|
+
<p class="mt">Result:</p>
|
|
154
|
+
<k-timestamp timestamp="2021-10-01T00:00:00Z"></k-timestamp>
|
|
155
|
+
</k-card>
|
|
156
|
+
</div>
|
|
157
|
+
<div class="col d-span-6 m-span-12 px">
|
|
158
|
+
<k-card label="Named Month Format">
|
|
159
|
+
<pre><code class="hljs xml"><span class="hljs-tag"><<span class="hljs-name">k-timestamp</span> <span class="hljs-attr">timestamp</span>=<span class="hljs-string">"October 1, 2021"</span>></span><span class="hljs-tag"></<span class="hljs-name">k-timestamp</span>></span></code></pre>
|
|
160
|
+
<p class="mt">Result:</p>
|
|
161
|
+
<k-timestamp timestamp="October 1, 2021"></k-timestamp>
|
|
162
|
+
</k-card>
|
|
163
|
+
</div>
|
|
164
|
+
</div>
|
|
165
|
+
|
|
166
|
+
<h5>Important Notes</h5>
|
|
167
|
+
<ul>
|
|
168
|
+
<li><strong>Browser Compatibility:</strong> Some formats may be parsed differently across browsers. ISO 8601 formats are the most reliable.</li>
|
|
169
|
+
<li><strong>Timezone Handling:</strong> Formats without explicit timezone information are interpreted as local time. ISO 8601 with <code>Z</code> or timezone offset are interpreted as absolute times.</li>
|
|
170
|
+
<li><strong>Format String Ambiguity:</strong> Ambiguous formats like <code>10/01/2021</code> may be interpreted differently depending on browser locale settings.</li>
|
|
171
|
+
</ul>
|
|
172
|
+
|
|
80
173
|
<h2 id="jsRef"><a href="#jsRef" class="no-link">JavaScript Reference</a></h2>
|
|
81
174
|
|
|
82
175
|
<h3 id="constructor"><a href="#constructor" class="no-link">Constructor</a></h3>
|
|
@@ -89,8 +182,8 @@
|
|
|
89
182
|
</ul>
|
|
90
183
|
|
|
91
184
|
<h3 id="properties"><a href="#properties" class="no-link">Properties</a></h3>
|
|
92
|
-
<h5><code>timestamp<i>: number</i></code></h5>
|
|
93
|
-
<p>The timestamp to be formatted and displayed. Syncs to <code>timestamp</code> attribute.</p>
|
|
185
|
+
<h5><code>timestamp<i>: string | number</i></code></h5>
|
|
186
|
+
<p>The timestamp to be formatted and displayed. Accepts EPOCH milliseconds (number), ISO 8601 formats, RFC 2822 formats, or other JavaScript-parseable date strings. See <a href="#supportedFormats">Supported Input Formats</a> for details. Syncs to <code>timestamp</code> attribute.</p>
|
|
94
187
|
<h5><code>format<i>: string</i></code></h5>
|
|
95
188
|
<p>The format to be used for formatting the timestamp using tokens like YYYY, MM, DD, hh, mm, ss. If not provided,
|
|
96
189
|
uses the default format. Syncs to <code>format</code> attribute.</p>
|
package/llms.txt
CHANGED
|
@@ -89,7 +89,7 @@ import { html, css, LitElement } from 'kempo-ui/src/lit-all.min.js';
|
|
|
89
89
|
| `<k-theme-select>` | `ThemeSelect.js` | Dropdown to pick a theme | [theme-select.html](https://dustinpoissant.github.io/kempo-ui/components/theme-select.html) |
|
|
90
90
|
| `<k-theme-switcher>` | `ThemeSwitcher.js` | Theme switcher with segmented and toggle display modes | [theme-switcher.html](https://dustinpoissant.github.io/kempo-ui/components/theme-switcher.html) |
|
|
91
91
|
| `<k-time>` | `Time.js` | Wraps native `<input type="time">` with segmented hour/minute/AM-PM editing; `value` is 24-hour `HH:MM`; `increment` attr sets minute step (arrow-key granularity); `military` attr forces 24-hour display via `lang="en-GB"`; form-associated; fires `change` | [time.html](https://dustinpoissant.github.io/kempo-ui/components/time.html) |
|
|
92
|
-
| `<k-timestamp>` | `Timestamp.js` | Displays a
|
|
92
|
+
| `<k-timestamp>` | `Timestamp.js` | Displays a formatted timestamp; accepts EPOCH milliseconds, ISO 8601, RFC 2822, and other JavaScript-parseable date formats; `value`/`format`/`locale` attributes | [timestamp.html](https://dustinpoissant.github.io/kempo-ui/components/timestamp.html) |
|
|
93
93
|
| `<k-toast>` `<k-toast-container>` | `Toast.js` | Toast notifications; use `<k-toast-container>` once in page, call `.addToast(options)` | [toast.html](https://dustinpoissant.github.io/kempo-ui/components/toast.html) |
|
|
94
94
|
| `<k-toggle>` | `Toggle.js` | On/off toggle; `value` (Boolean, reflects); methods: `on()`, `off()`, `toggle()`; fires `change`, `on`, `off` | [toggle.html](https://dustinpoissant.github.io/kempo-ui/components/toggle.html) |
|
|
95
95
|
| `<k-tree>` `<k-tree-node>` | `Tree.js` | Expandable tree; nodes have `label`, `icon`, `href`, `expanded` | [tree.html](https://dustinpoissant.github.io/kempo-ui/components/tree.html) |
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "kempo-ui",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.10",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "A Lit based web-component library",
|
|
6
6
|
"main": "index.js",
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"geticon": "node bin/get_icon.js",
|
|
19
19
|
"listicons": "node bin/list_icons.js",
|
|
20
20
|
"highlightcode": "node bin/highlight_code.js",
|
|
21
|
-
"test": "npx kempo-test",
|
|
21
|
+
"test": "npx kempo-test -l minimal",
|
|
22
22
|
"test:gui": "npx kempo-test --gui",
|
|
23
23
|
"test:browser": "npx kempo-test -b",
|
|
24
24
|
"test:node": "npx kempo-test -n"
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# {Task Number} - {Task Description }
|
|
2
|
+
|
|
3
|
+
## Status: {Planning | Ready | Blocked | In Progress | Testing | Complete | Released}
|
|
4
|
+
|
|
5
|
+
## Dependency
|
|
6
|
+
{What other task needs to be completed first before this task can be started, prefer markdown links}
|
|
7
|
+
|
|
8
|
+
## References
|
|
9
|
+
{What other tasks or resources should the developer/LLM be aware of before starting this task, prefer markdown links}
|
|
10
|
+
|
|
11
|
+
## Current State
|
|
12
|
+
{How does this feature currently work}
|
|
13
|
+
|
|
14
|
+
## Aceptance Criteria
|
|
15
|
+
{How does it need to work to consider this task a success}
|
|
16
|
+
|
|
17
|
+
### In-Scope
|
|
18
|
+
{What are some examples of repos/files/ect that can be changed to do this task}
|
|
19
|
+
|
|
20
|
+
### Out of Scope
|
|
21
|
+
{What are some examples of repos/files/ect that should not be changed to do this task, if we find a need to, create a new task (in this repo, or that repo)}
|
|
22
|
+
|
|
23
|
+
## Task Details
|
|
24
|
+
{What steps need to happen to complete this task}
|
|
25
|
+
|
|
26
|
+
## Testing / Validation Plan
|
|
27
|
+
{How should this task be tested/validated, make sure all of the acceptance criteria is covered by the test plan}
|
|
28
|
+
|
|
29
|
+
### Testing / Validation Results
|
|
30
|
+
|
|
31
|
+
#### LLM Validation Results
|
|
32
|
+
**IMPORTANT: DO NOT fill this in during task-create or task-prepare.** This section is filled in during the "task-validate" skill (which is linked from the "task-complete" skill step 6). Include:
|
|
33
|
+
- Subheadings for each acceptance criterion that was validated
|
|
34
|
+
- Subheadings for each item in the testing plan
|
|
35
|
+
- Pass/fail status and details for each item
|
|
36
|
+
- Screenshots or evidence showing validation passed
|
|
37
|
+
|
|
38
|
+
#### User Validation Results
|
|
39
|
+
**IMPORTANT: Always leave this section completely blank.** The user may optionally add notes here during the "task-complete" skill step 7 of task-complete if they have additional validation information beyond what the LLM documented in the LLM Validation Results section.
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
uid=1_0 RootWebArea "Timestamp - Components - Kempo Docs - A Web Components Solution" url="http://localhost:8083/components/timestamp.html"
|
|
2
|
+
uid=1_1 navigation
|
|
3
|
+
uid=1_2 button
|
|
4
|
+
uid=1_3 link "Kempo UI Icon Kempo UI" url="http://localhost:8083/"
|
|
5
|
+
uid=1_4 image "Kempo UI Icon" url="http://localhost:8083/media/icon32.png"
|
|
6
|
+
uid=1_5 StaticText "Kempo UI"
|
|
7
|
+
uid=1_6 searchbox "Search docs..."
|
|
8
|
+
uid=1_7 link url="https://github.com/dustinpoissant/kempo-ui?tab=License-1-ov-file#creative-commons-attribution-noncommercial-sharealike-20"
|
|
9
|
+
uid=1_8 link url="https://www.npmjs.com/package/kempo-ui"
|
|
10
|
+
uid=1_9 link url="https://github.com/dustinpoissant/kempo-ui"
|
|
11
|
+
uid=1_10 button "light"
|
|
12
|
+
uid=1_11 button "auto"
|
|
13
|
+
uid=1_12 button "dark"
|
|
14
|
+
uid=1_13 heading "Timestamp" level="1"
|
|
15
|
+
uid=1_14 main
|
|
16
|
+
uid=1_15 StaticText "Table of Contents"
|
|
17
|
+
uid=1_16 heading "Examples" level="6"
|
|
18
|
+
uid=1_17 link "Basic Usage" url="http://localhost:8083/components/timestamp.html#basicUsage"
|
|
19
|
+
uid=1_18 StaticText "Basic Usage"
|
|
20
|
+
uid=1_19 LineBreak "
|
|
21
|
+
"
|
|
22
|
+
uid=1_20 link "Custom Format" url="http://localhost:8083/components/timestamp.html#customFormat"
|
|
23
|
+
uid=1_21 StaticText "Custom Format"
|
|
24
|
+
uid=1_22 LineBreak "
|
|
25
|
+
"
|
|
26
|
+
uid=1_23 link "Time Format" url="http://localhost:8083/components/timestamp.html#timeFormat"
|
|
27
|
+
uid=1_24 StaticText "Time Format"
|
|
28
|
+
uid=1_25 link "Supported Input Formats" url="http://localhost:8083/components/timestamp.html#supportedFormats"
|
|
29
|
+
uid=1_26 StaticText "Supported Input Formats"
|
|
30
|
+
uid=1_27 LineBreak "
|
|
31
|
+
"
|
|
32
|
+
uid=1_28 link "JavaScript Reference" url="http://localhost:8083/components/timestamp.html#jsRef"
|
|
33
|
+
uid=1_29 StaticText "JavaScript Reference"
|
|
34
|
+
uid=1_30 link "Constructor" url="http://localhost:8083/components/timestamp.html#constructor"
|
|
35
|
+
uid=1_31 StaticText "Constructor"
|
|
36
|
+
uid=1_32 LineBreak "
|
|
37
|
+
"
|
|
38
|
+
uid=1_33 link "Requirements" url="http://localhost:8083/components/timestamp.html#requirements"
|
|
39
|
+
uid=1_34 StaticText "Requirements"
|
|
40
|
+
uid=1_35 LineBreak "
|
|
41
|
+
"
|
|
42
|
+
uid=1_36 link "Properties" url="http://localhost:8083/components/timestamp.html#properties"
|
|
43
|
+
uid=1_37 StaticText "Properties"
|
|
44
|
+
uid=1_38 LineBreak "
|
|
45
|
+
"
|
|
46
|
+
uid=1_39 link "Methods" url="http://localhost:8083/components/timestamp.html#methods"
|
|
47
|
+
uid=1_40 StaticText "Methods"
|
|
48
|
+
uid=1_41 LineBreak "
|
|
49
|
+
"
|
|
50
|
+
uid=1_42 heading "Description" level="3"
|
|
51
|
+
uid=1_43 StaticText "The "
|
|
52
|
+
uid=1_44 StaticText "Timestamp"
|
|
53
|
+
uid=1_45 StaticText " component displays a formatted timestamp using custom format tokens. It extends the ShadowComponent class for encapsulated styling."
|
|
54
|
+
uid=1_46 link "Basic Usage" url="http://localhost:8083/components/timestamp.html#basicUsage"
|
|
55
|
+
uid=1_47 StaticText "Basic Usage"
|
|
56
|
+
uid=1_48 StaticText "Use the "
|
|
57
|
+
uid=1_49 StaticText "Timestamp"
|
|
58
|
+
uid=1_50 StaticText " component to display a formatted timestamp. The component will automatically format the timestamp using the default format or a custom format with tokens."
|
|
59
|
+
uid=1_51 StaticText "HTML"
|
|
60
|
+
uid=1_52 StaticText "<"
|
|
61
|
+
uid=1_53 StaticText "k-timestamp"
|
|
62
|
+
uid=1_54 StaticText " "
|
|
63
|
+
uid=1_55 StaticText "timestamp"
|
|
64
|
+
uid=1_56 StaticText "="
|
|
65
|
+
uid=1_57 StaticText ""1633024800000""
|
|
66
|
+
uid=1_58 StaticText ">"
|
|
67
|
+
uid=1_59 StaticText "</"
|
|
68
|
+
uid=1_60 StaticText "k-timestamp"
|
|
69
|
+
uid=1_61 StaticText ">"
|
|
70
|
+
uid=1_62 StaticText "Results"
|
|
71
|
+
uid=1_63 StaticText "9/30/2021, 2:00:00 PM"
|
|
72
|
+
uid=1_64 link "Custom Format" url="http://localhost:8083/components/timestamp.html#customFormat"
|
|
73
|
+
uid=1_65 StaticText "Custom Format"
|
|
74
|
+
uid=1_66 StaticText "Use the "
|
|
75
|
+
uid=1_67 StaticText "format"
|
|
76
|
+
uid=1_68 StaticText " attribute to specify a custom format using tokens like "
|
|
77
|
+
uid=1_69 StaticText "YYYY"
|
|
78
|
+
uid=1_70 StaticText " (4-digit year), "
|
|
79
|
+
uid=1_71 StaticText "MM"
|
|
80
|
+
uid=1_72 StaticText " (2-digit month), "
|
|
81
|
+
uid=1_73 StaticText "DD"
|
|
82
|
+
uid=1_74 StaticText " (2-digit day), "
|
|
83
|
+
uid=1_75 StaticText "hh"
|
|
84
|
+
uid=1_76 StaticText " (2-digit hour), "
|
|
85
|
+
uid=1_77 StaticText "mm"
|
|
86
|
+
uid=1_78 StaticText " (2-digit minute), and "
|
|
87
|
+
uid=1_79 StaticText "ss"
|
|
88
|
+
uid=1_80 StaticText " (2-digit second)."
|
|
89
|
+
uid=1_81 StaticText "HTML"
|
|
90
|
+
uid=1_82 StaticText "<"
|
|
91
|
+
uid=1_83 StaticText "k-timestamp"
|
|
92
|
+
uid=1_84 StaticText " "
|
|
93
|
+
uid=1_85 StaticText "timestamp"
|
|
94
|
+
uid=1_86 StaticText "="
|
|
95
|
+
uid=1_87 StaticText ""1633024800000""
|
|
96
|
+
uid=1_88 StaticText " "
|
|
97
|
+
uid=1_89 StaticText "format"
|
|
98
|
+
uid=1_90 StaticText "="
|
|
99
|
+
uid=1_91 StaticText ""MM/DD/YYYY""
|
|
100
|
+
uid=1_92 StaticText ">"
|
|
101
|
+
uid=1_93 StaticText "</"
|
|
102
|
+
uid=1_94 StaticText "k-timestamp"
|
|
103
|
+
uid=1_95 StaticText ">"
|
|
104
|
+
uid=1_96 StaticText "Results"
|
|
105
|
+
uid=1_97 StaticText "09/30/2021"
|
|
106
|
+
uid=1_98 link "Time Format" url="http://localhost:8083/components/timestamp.html#timeFormat"
|
|
107
|
+
uid=1_99 StaticText "Time Format"
|
|
108
|
+
uid=1_100 StaticText "Display time with custom formatting using hour, minute, and second tokens."
|
|
109
|
+
uid=1_101 StaticText "HTML"
|
|
110
|
+
uid=1_102 StaticText "<"
|
|
111
|
+
uid=1_103 StaticText "k-timestamp"
|
|
112
|
+
uid=1_104 StaticText " "
|
|
113
|
+
uid=1_105 StaticText "timestamp"
|
|
114
|
+
uid=1_106 StaticText "="
|
|
115
|
+
uid=1_107 StaticText ""1633024800000""
|
|
116
|
+
uid=1_108 StaticText " "
|
|
117
|
+
uid=1_109 StaticText "format"
|
|
118
|
+
uid=1_110 StaticText "="
|
|
119
|
+
uid=1_111 StaticText ""hh:mm:ss""
|
|
120
|
+
uid=1_112 StaticText ">"
|
|
121
|
+
uid=1_113 StaticText "</"
|
|
122
|
+
uid=1_114 StaticText "k-timestamp"
|
|
123
|
+
uid=1_115 StaticText ">"
|
|
124
|
+
uid=1_116 StaticText "Results"
|
|
125
|
+
uid=1_117 StaticText "14:00:00"
|
|
126
|
+
uid=1_118 link "Supported Input Formats" url="http://localhost:8083/components/timestamp.html#supportedFormats"
|
|
127
|
+
uid=1_119 StaticText "Supported Input Formats"
|
|
128
|
+
uid=1_120 StaticText "The "
|
|
129
|
+
uid=1_121 StaticText "Timestamp"
|
|
130
|
+
uid=1_122 StaticText " component accepts various date/time input formats. The component uses JavaScript's "
|
|
131
|
+
uid=1_123 StaticText "Date.parse()"
|
|
132
|
+
uid=1_124 StaticText " for parsing, which supports multiple standard formats:"
|
|
133
|
+
uid=1_125 StaticText "Format Type"
|
|
134
|
+
uid=1_126 StaticText "Example"
|
|
135
|
+
uid=1_127 StaticText "Notes"
|
|
136
|
+
uid=1_128 StaticText "EPOCH Milliseconds"
|
|
137
|
+
uid=1_129 StaticText "1633024800000"
|
|
138
|
+
uid=1_130 StaticText "Number value representing milliseconds since January 1, 1970"
|
|
139
|
+
uid=1_131 StaticText "ISO 8601 (Full)"
|
|
140
|
+
uid=1_132 StaticText "2021-10-01T00:00:00Z"
|
|
141
|
+
uid=1_133 StaticText "Includes date, time, and UTC timezone indicator"
|
|
142
|
+
uid=1_134 StaticText "ISO 8601 (Date Only)"
|
|
143
|
+
uid=1_135 StaticText "2021-10-01"
|
|
144
|
+
uid=1_136 StaticText "Date portion only; time assumed to be midnight in UTC"
|
|
145
|
+
uid=1_137 StaticText "ISO 8601 (With Timezone)"
|
|
146
|
+
uid=1_138 StaticText "2021-10-01T00:00:00+00:00"
|
|
147
|
+
uid=1_139 StaticText "Includes timezone offset; can use +/- with hours and minutes"
|
|
148
|
+
uid=1_140 StaticText "ISO 8601 (No Timezone)"
|
|
149
|
+
uid=1_141 StaticText "2021-10-01T00:00:00"
|
|
150
|
+
uid=1_142 StaticText "Interpreted as local time"
|
|
151
|
+
uid=1_143 StaticText "RFC 2822"
|
|
152
|
+
uid=1_144 StaticText "Fri, 01 Oct 2021 00:00:00 GMT"
|
|
153
|
+
uid=1_145 StaticText "Email date format with day of week and timezone"
|
|
154
|
+
uid=1_146 StaticText "JavaScript Date String"
|
|
155
|
+
uid=1_147 StaticText "Fri Oct 01 2021 00:00:00 GMT+0000"
|
|
156
|
+
uid=1_148 StaticText "Output format from JavaScript's "
|
|
157
|
+
uid=1_149 StaticText "Date.toString()"
|
|
158
|
+
uid=1_150 StaticText "US Date Format"
|
|
159
|
+
uid=1_151 StaticText "10/01/2021"
|
|
160
|
+
uid=1_152 StaticText "MM/DD/YYYY format; ambiguous with international formats"
|
|
161
|
+
uid=1_153 StaticText "ISO Date String"
|
|
162
|
+
uid=1_154 StaticText "2021-10-01 00:00:00"
|
|
163
|
+
uid=1_155 StaticText "YYYY-MM-DD HH:MM:SS format"
|
|
164
|
+
uid=1_156 StaticText "Named Month Format"
|
|
165
|
+
uid=1_157 StaticText "October 1, 2021"
|
|
166
|
+
uid=1_158 StaticText "Month name followed by day and year"
|
|
167
|
+
uid=1_159 heading "Format Examples" level="5"
|
|
168
|
+
uid=1_160 StaticText "ISO 8601"
|
|
169
|
+
uid=1_161 StaticText "<"
|
|
170
|
+
uid=1_162 StaticText "k-timestamp"
|
|
171
|
+
uid=1_163 StaticText " "
|
|
172
|
+
uid=1_164 StaticText "timestamp"
|
|
173
|
+
uid=1_165 StaticText "="
|
|
174
|
+
uid=1_166 StaticText ""2021-10-01T00:00:00Z""
|
|
175
|
+
uid=1_167 StaticText ">"
|
|
176
|
+
uid=1_168 StaticText "</"
|
|
177
|
+
uid=1_169 StaticText "k-timestamp"
|
|
178
|
+
uid=1_170 StaticText ">"
|
|
179
|
+
uid=1_171 StaticText "Result:"
|
|
180
|
+
uid=1_172 StaticText "9/30/2021, 8:00:00 PM"
|
|
181
|
+
uid=1_173 StaticText "Named Month Format"
|
|
182
|
+
uid=1_174 StaticText "<"
|
|
183
|
+
uid=1_175 StaticText "k-timestamp"
|
|
184
|
+
uid=1_176 StaticText " "
|
|
185
|
+
uid=1_177 StaticText "timestamp"
|
|
186
|
+
uid=1_178 StaticText "="
|
|
187
|
+
uid=1_179 StaticText ""October 1, 2021""
|
|
188
|
+
uid=1_180 StaticText ">"
|
|
189
|
+
uid=1_181 StaticText "</"
|
|
190
|
+
uid=1_182 StaticText "k-timestamp"
|
|
191
|
+
uid=1_183 StaticText ">"
|
|
192
|
+
uid=1_184 StaticText "Result:"
|
|
193
|
+
uid=1_185 StaticText "10/1/2021, 12:00:00 AM"
|
|
194
|
+
uid=1_186 heading "Important Notes" level="5"
|
|
195
|
+
uid=1_187 StaticText "Browser Compatibility:"
|
|
196
|
+
uid=1_188 StaticText " Some formats may be parsed differently across browsers. ISO 8601 formats are the most reliable."
|
|
197
|
+
uid=1_189 StaticText "Timezone Handling:"
|
|
198
|
+
uid=1_190 StaticText " Formats without explicit timezone information are interpreted as local time. ISO 8601 with "
|
|
199
|
+
uid=1_191 StaticText "Z"
|
|
200
|
+
uid=1_192 StaticText " or timezone offset are interpreted as absolute times."
|
|
201
|
+
uid=1_193 StaticText "Format String Ambiguity:"
|
|
202
|
+
uid=1_194 StaticText " Ambiguous formats like "
|
|
203
|
+
uid=1_195 StaticText "10/01/2021"
|
|
204
|
+
uid=1_196 StaticText " may be interpreted differently depending on browser locale settings."
|
|
205
|
+
uid=1_197 link "JavaScript Reference" url="http://localhost:8083/components/timestamp.html#jsRef"
|
|
206
|
+
uid=1_198 StaticText "JavaScript Reference"
|
|
207
|
+
uid=1_199 link "Constructor" url="http://localhost:8083/components/timestamp.html#constructor"
|
|
208
|
+
uid=1_200 StaticText "Constructor"
|
|
209
|
+
uid=1_201 heading "Extends ShadowComponent" level="6"
|
|
210
|
+
uid=1_202 link "Requirements" url="http://localhost:8083/components/timestamp.html#requirements"
|
|
211
|
+
uid=1_203 StaticText "Requirements"
|
|
212
|
+
uid=1_204 StaticText "ShadowComponent"
|
|
213
|
+
uid=1_205 link "formatTimestamp Utility Function" url="http://localhost:8083/utils/formatTimestamp.js"
|
|
214
|
+
uid=1_206 StaticText "formatTimestamp Utility Function"
|
|
215
|
+
uid=1_207 link "Properties" url="http://localhost:8083/components/timestamp.html#properties"
|
|
216
|
+
uid=1_208 StaticText "Properties"
|
|
217
|
+
uid=1_209 heading "timestamp: string | number" level="5"
|
|
218
|
+
uid=1_210 StaticText "The timestamp to be formatted and displayed. Accepts EPOCH milliseconds (number), ISO 8601 formats, RFC 2822 formats, or other JavaScript-parseable date strings. See "
|
|
219
|
+
uid=1_211 link "Supported Input Formats" url="http://localhost:8083/components/timestamp.html#supportedFormats"
|
|
220
|
+
uid=1_212 StaticText "Supported Input Formats"
|
|
221
|
+
uid=1_213 StaticText " for details. Syncs to "
|
|
222
|
+
uid=1_214 StaticText "timestamp"
|
|
223
|
+
uid=1_215 StaticText " attribute."
|
|
224
|
+
uid=1_216 heading "format: string" level="5"
|
|
225
|
+
uid=1_217 StaticText "The format to be used for formatting the timestamp using tokens like YYYY, MM, DD, hh, mm, ss. If not provided, uses the default format. Syncs to "
|
|
226
|
+
uid=1_218 StaticText "format"
|
|
227
|
+
uid=1_219 StaticText " attribute."
|
|
228
|
+
uid=1_220 heading "locale: string" level="5"
|
|
229
|
+
uid=1_221 StaticText "The locale to be used for formatting the timestamp. Syncs to "
|
|
230
|
+
uid=1_222 StaticText "locale"
|
|
231
|
+
uid=1_223 StaticText " attribute."
|
|
232
|
+
uid=1_224 link "Methods" url="http://localhost:8083/components/timestamp.html#methods"
|
|
233
|
+
uid=1_225 StaticText "Methods"
|
|
234
|
+
uid=1_226 StaticText "The "
|
|
235
|
+
uid=1_227 StaticText "Timestamp"
|
|
236
|
+
uid=1_228 StaticText " class does not introduce any new methods beyond those provided by the ShadowComponent class."
|