Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
104 commits
Select commit Hold shift + click to select a range
c443bea
wip(datepicker): translate brians work from react
micahjones13 Feb 21, 2025
7462e2c
feat(datepicker): input validation for min and max of datepicker parts
micahjones13 Feb 25, 2025
0788da8
feat(datepicker): copy and paste functions
micahjones13 Feb 25, 2025
96a1774
feat(datepicker, calendar): add days, style calendar, functionality f…
micahjones13 Feb 26, 2025
6ac574b
feat(calendar, day): emit selected event on day click
micahjones13 Feb 28, 2025
19bc673
feat(datepicker): calendar selection is reflected in datepicker input
micahjones13 Mar 3, 2025
021a818
feat(calendar): hook up custom inputs to icons for increment and decr…
micahjones13 Mar 5, 2025
46a1340
Merge branch 'main' into mj.datepicker
micahjones13 Mar 5, 2025
300daf0
feat(calendar): support selections for past and future days
micahjones13 Mar 5, 2025
214447e
fix(calendar, datepicker): datepicker ISO value updates on timepicker…
micahjones13 Mar 6, 2025
3cc84e0
wip(calendar): componentDidLoad lifecylce warning
micahjones13 Mar 6, 2025
1e2f35f
commit
micahjones13 Mar 6, 2025
c409b7a
commit
micahjones13 Mar 6, 2025
5879608
Merge branch 'mj.datepicker' of github.com:RocketCommunicationsInc/as…
micahjones13 Mar 6, 2025
ec87a43
feat(calendar): update compWillLoad with async func, auto select a da…
micahjones13 Mar 6, 2025
c3371b4
fix(calendar): async rux-days loading
micahjones13 Mar 7, 2025
d086e2c
feat(calendar): time inputs now update ISO when typed into, added val…
micahjones13 Mar 10, 2025
ae3ee62
fix(calendar): move from onChange to onInput, prevent invalid characters
micahjones13 Mar 10, 2025
f4744b5
feat(calendar): support for julian dates and cal updates on datepicke…
micahjones13 Mar 17, 2025
c07d692
udpate index
micahjones13 Mar 18, 2025
38c6564
feat(calendar): pasting into datepicker auto selects and updates cale…
micahjones13 Mar 19, 2025
543dcfc
feat(calendar): timepicker styles, timepicker auto focuses next input
micahjones13 Mar 19, 2025
5aaa9f9
refactor(calendar): updated timepicker widths
micahjones13 Mar 19, 2025
0dfa664
refactor(calendar, datepicker): remove incomingDay, Month, Year props…
micahjones13 Mar 25, 2025
598fd72
fix(calendar): update calendar when dp is on julian mode and only day…
micahjones13 Mar 26, 2025
5e70ef2
fix(cal, datepicker): correct translation of time from dp to cal
micahjones13 Mar 26, 2025
75fb6c4
fix(calendar): selections in julian working
micahjones13 Apr 1, 2025
c963d8d
fix(calendar): timepicker auto focus, increment in julian mode
micahjones13 Apr 2, 2025
bd2acc4
chore: remove console logs
micahjones13 Apr 2, 2025
a9bd053
chore: fix build issue
micahjones13 Apr 2, 2025
dd5c86a
fix(calendar): time inputs no longer auto shift focus on keyboard arr…
micahjones13 Apr 4, 2025
04a1868
fix(calendar): when datepicker has a default value, calendar reflects…
micahjones13 Apr 4, 2025
ae1be04
feat(datepicker): emit console warn when value is invalid on render
micahjones13 Apr 7, 2025
ad5fb70
feat(datepicker): update iso validation to include julian
micahjones13 Apr 7, 2025
2ff59c4
test(datetimepicker): add tests structure and test value prop
micahjones13 Apr 8, 2025
606c5ba
fix(calendar): now displays time from datepicker correctly in secodns
micahjones13 Apr 8, 2025
682fb87
feat(datepicker): emit events when datepicker is interacted with, add…
micahjones13 Apr 17, 2025
f8473d0
fix(calendar): select menus no longer propogate up to datepicker, fix…
micahjones13 Apr 18, 2025
15942a0
fix(datepicker) inc dec function
micahjones13 Apr 22, 2025
91b876b
fix(datepicker): fix input event, julian mode emits julian strings
micahjones13 Apr 23, 2025
5b79657
feat(datetime-picker): blur event not perfect but working
micahjones13 Apr 23, 2025
d7ceee0
fix(datetime-picker): fix issue with value not reflecting
micahjones13 Apr 23, 2025
4e2931e
docs: add documenation for datetime picker, cal, day props and events
micahjones13 Apr 24, 2025
7d1931b
fix(datetime-picker): fix input validiation
micahjones13 Apr 28, 2025
2670c4c
test(react): add datepicker to test app
micahjones13 Apr 28, 2025
5608593
chore: remove console logs
micahjones13 Apr 29, 2025
595f0bc
fix(calendar): reflect datepicker inputs day in calendar while in gre…
micahjones13 Apr 29, 2025
47d49b4
fix(calendar): fix for selected day in julian mode - still a WIP
micahjones13 Apr 29, 2025
5093d4d
fix(calendar): julian date reflection
micahjones13 Apr 29, 2025
c58ef82
chore(cal, datepicker): add documentation to functions
micahjones13 Apr 30, 2025
485bbe3
(datepicker, cal): added more input tests, fix autocorrect of timepic…
micahjones13 Apr 30, 2025
045cda4
fix(date-time-picker): fix trailing period and colon in julian mode
micahjones13 May 2, 2025
9f0c4f8
fix(calendar): fix issue with selected day being out of range in mont…
micahjones13 May 6, 2025
3bc69f2
fix(calendar): fix for month skipping when selected day is outside bo…
micahjones13 May 6, 2025
2f55aa7
wip(calendar): keep previous selected day
micahjones13 May 7, 2025
9886429
fix(calendar): fixed lastDaySelected and inputting from date-picker. …
micahjones13 May 7, 2025
158e504
chore: cleanup
micahjones13 May 7, 2025
96d4f90
feat(calendar): persist selectedDay through month and year changes
micahjones13 May 8, 2025
3f098ed
chore: clean console
micahjones13 May 8, 2025
62dde89
fix(datepicker): pasting now selects the day in calendar
micahjones13 May 8, 2025
e468dd9
feat(calendar): re-add input value wrapping
micahjones13 May 8, 2025
b17c837
fix(calendar): inc/dec function fix
micahjones13 May 8, 2025
64b8722
fix(calendar): fix initial day selection
micahjones13 May 8, 2025
114532e
chore: comment cleanup
micahjones13 May 8, 2025
39f8d43
fix(datepicker, calendar): fix value issue in julian mode when select…
micahjones13 May 13, 2025
64a8262
fix(cal): fixed issue with j-day selection on datepicker input
micahjones13 May 13, 2025
8321507
fix(datepicker, calendar): Fixed issue with selected past/future days…
micahjones13 May 14, 2025
2fa10f2
fix(datepicker, calendar): fixed issue with pasting a value not selec…
micahjones13 May 15, 2025
95d6913
test(datepicker): begin adding tests for day selections
micahjones13 May 15, 2025
1219803
test(datepicker): add tests for selecting day, wip for year change test
micahjones13 May 16, 2025
b49f2fe
fix(datepicker): minYear maxYear fix, add tests
micahjones13 May 20, 2025
e487c11
test(datepicker): add tests for year, day, month and hour inputs
micahjones13 May 20, 2025
d2907b8
Merge branch 'main' into mj.datepicker
micahjones13 May 21, 2025
3df8931
test(datepicker): tests for min, sec, ms
micahjones13 May 22, 2025
8d37a89
feat(datepicker): disabled styling
micahjones13 May 22, 2025
0678304
style(datepicker): add invalid styles
micahjones13 May 22, 2025
fe5e001
style(datepicker): fix error text styles
micahjones13 May 22, 2025
9beaa2c
style(datepicker): style updates for help and error text
micahjones13 May 22, 2025
d6fe5fe
chore: code cleanup
micahjones13 May 22, 2025
d3c0bea
refactor(day): change days to be buttons, add styling
micahjones13 May 22, 2025
45a4a6c
fix(day): add role of button
micahjones13 May 22, 2025
d4e77a3
fix(datepicker): julian-format now accepts partial ISOs correctly
micahjones13 May 27, 2025
eb41c29
fix(datepicker): fix default value in julian-format datepicker, start…
micahjones13 May 27, 2025
29faca7
feat(datepicker): add julian-value and gregorian-value props
micahjones13 May 29, 2025
a0f959c
fix(datepicker): add additional parital ISO support, tests, stories
micahjones13 May 31, 2025
fe91ce4
fix(calendar, day): update how focus is applied to avoid focusing wro…
micahjones13 Jun 2, 2025
17f37a1
style(datepicker): adjust input and display width and padding
micahjones13 Jun 3, 2025
e7fd82d
feat(datepicker): hour and day precision
micahjones13 Jun 3, 2025
572d5b3
fix(datepicker): fix copy issue when a julian datepicker is copied af…
micahjones13 Jun 3, 2025
3e9594f
chore: cleanup logs, add comments
micahjones13 Jun 3, 2025
cc649e6
fix(datepicker): fixed julian-value and gregorian-value on init load,…
micahjones13 Jun 3, 2025
ac5fd70
test(datepicker): add tests for julian-value and gregorian-value
micahjones13 Jun 4, 2025
debf584
chore: clean up, demo prep
micahjones13 Jun 5, 2025
a37f561
WIP: microseconds precision
micahjones13 Jun 5, 2025
7c8039e
wip: microseconds in julian mode
micahjones13 Jun 12, 2025
1a05377
feat(datepicker): typing microseconds in calendar reflects in dp in j…
micahjones13 Jun 12, 2025
6076966
fix(calendar): add timeout to skipdayfocus on handleTimeIncrementDecr…
micahjones13 Jun 12, 2025
003405b
wip: microseconds
micahjones13 Jun 23, 2025
19b3bc9
fix(calendar): fix microseconds value on initial load
micahjones13 Jun 24, 2025
16ec3f8
fix(datepicker): add Z if given value is misisng, add tests
micahjones13 Jun 30, 2025
74cfac4
wip(datepicker): update datepicker inputs spacing
micahjones13 Jul 1, 2025
4bd77e3
style(datepicker): revert to monospace, update input spacing
micahjones13 Jul 1, 2025
b8015fd
wip: kiley look here
micahjones13 Jul 1, 2025
02bd78e
style(datepicker): remove roboto mono, revert to reg monospace
micahjones13 Jul 2, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
// @ts-nocheck

import * as d from './proxies';

Expand All @@ -9,13 +8,16 @@ export const DIRECTIVES = [
d.RuxBreadcrumbItem,
d.RuxButton,
d.RuxButtonGroup,
d.RuxCalendar,
d.RuxCard,
d.RuxCheckbox,
d.RuxCheckboxGroup,
d.RuxClassificationMarking,
d.RuxClock,
d.RuxContainer,
d.RuxDatetime,
d.RuxDatetimePicker,
d.RuxDay,
d.RuxDialog,
d.RuxGlobalStatusBar,
d.RuxIcon,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,34 @@ export class RuxButtonGroup {
export declare interface RuxButtonGroup extends Components.RuxButtonGroup {}


@ProxyCmp({
inputs: ['incomingDay', 'incomingMonth', 'incomingYear', 'initHoursValue', 'initMillisecondsValue', 'initMinutesValue', 'initSecondsValue', 'isJulian', 'iso', 'maxYear', 'minYear', 'precision']
})
@Component({
selector: 'rux-calendar',
changeDetection: ChangeDetectionStrategy.OnPush,
template: '<ng-content></ng-content>',
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
inputs: ['incomingDay', 'incomingMonth', 'incomingYear', 'initHoursValue', 'initMillisecondsValue', 'initMinutesValue', 'initSecondsValue', 'isJulian', 'iso', 'maxYear', 'minYear', 'precision'],
})
export class RuxCalendar {
protected el: HTMLElement;
constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {
c.detach();
this.el = r.nativeElement;
proxyOutputs(this, this.el, ['ruxcalendardatetimeupdated', 'datetimeupdated']);
}
}


export declare interface RuxCalendar extends Components.RuxCalendar {

ruxcalendardatetimeupdated: EventEmitter<CustomEvent<{ iso: string }>>;

datetimeupdated: EventEmitter<CustomEvent<{ iso: string }>>;
}


@ProxyCmp({
})
@Component({
Expand Down Expand Up @@ -318,6 +346,56 @@ export class RuxDatetime {
export declare interface RuxDatetime extends Components.RuxDatetime {}


@ProxyCmp({
inputs: ['disabled', 'errorText', 'helpText', 'invalid', 'julianFormat', 'label', 'maxYear', 'minYear', 'name', 'precision', 'required', 'size', 'value']
})
@Component({
selector: 'rux-datetime-picker',
changeDetection: ChangeDetectionStrategy.OnPush,
template: '<ng-content></ng-content>',
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
inputs: ['disabled', 'errorText', 'helpText', 'invalid', 'julianFormat', 'label', 'maxYear', 'minYear', 'name', 'precision', 'required', 'size', 'value'],
})
export class RuxDatetimePicker {
protected el: HTMLElement;
constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {
c.detach();
this.el = r.nativeElement;
}
}


export declare interface RuxDatetimePicker extends Components.RuxDatetimePicker {}


@ProxyCmp({
inputs: ['dayNumber', 'selected']
})
@Component({
selector: 'rux-day',
changeDetection: ChangeDetectionStrategy.OnPush,
template: '<ng-content></ng-content>',
// eslint-disable-next-line @angular-eslint/no-inputs-metadata-property
inputs: ['dayNumber', 'selected'],
})
export class RuxDay {
protected el: HTMLElement;
constructor(c: ChangeDetectorRef, r: ElementRef, protected z: NgZone) {
c.detach();
this.el = r.nativeElement;
proxyOutputs(this, this.el, ['ruxdayselected']);
}
}


import type { DayInfo as IRuxDayDayInfo } from '@astrouxds/astro-web-components';

export declare interface RuxDay extends Components.RuxDay {

ruxdayselected: EventEmitter<CustomEvent<IRuxDayDayInfo>>;
}


@ProxyCmp({
inputs: ['clickToClose', 'confirmText', 'denyText', 'header', 'message', 'open'],
methods: ['toggle', 'show', 'hide']
Expand Down
150 changes: 150 additions & 0 deletions packages/framework-testing/astro-react/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 9 additions & 1 deletion packages/framework-testing/astro-react/src/App.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
import "./App.css";
import { RuxContainer, RuxGlobalStatusBar } from "@astrouxds/react";

import {
RuxContainer,
RuxDatetimePicker,
RuxGlobalStatusBar,
} from "@astrouxds/react";

function App() {
return (
Expand All @@ -12,6 +17,9 @@ function App() {

<RuxContainer className="lg:col-span-10">
<header slot="header">Header</header>
<div className="w-1/4 m-auto">
<RuxDatetimePicker></RuxDatetimePicker>
</div>
</RuxContainer>
</main>
</>
Expand Down
3 changes: 3 additions & 0 deletions packages/react/src/components.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,16 @@ export const RuxBreadcrumb = /*@__PURE__*/createReactComponent<JSX.RuxBreadcrumb
export const RuxBreadcrumbItem = /*@__PURE__*/createReactComponent<JSX.RuxBreadcrumbItem, HTMLRuxBreadcrumbItemElement>('rux-breadcrumb-item');
export const RuxButton = /*@__PURE__*/createReactComponent<JSX.RuxButton, HTMLRuxButtonElement>('rux-button');
export const RuxButtonGroup = /*@__PURE__*/createReactComponent<JSX.RuxButtonGroup, HTMLRuxButtonGroupElement>('rux-button-group');
export const RuxCalendar = /*@__PURE__*/createReactComponent<JSX.RuxCalendar, HTMLRuxCalendarElement>('rux-calendar');
export const RuxCard = /*@__PURE__*/createReactComponent<JSX.RuxCard, HTMLRuxCardElement>('rux-card');
export const RuxCheckbox = /*@__PURE__*/createReactComponent<JSX.RuxCheckbox, HTMLRuxCheckboxElement>('rux-checkbox');
export const RuxCheckboxGroup = /*@__PURE__*/createReactComponent<JSX.RuxCheckboxGroup, HTMLRuxCheckboxGroupElement>('rux-checkbox-group');
export const RuxClassificationMarking = /*@__PURE__*/createReactComponent<JSX.RuxClassificationMarking, HTMLRuxClassificationMarkingElement>('rux-classification-marking');
export const RuxClock = /*@__PURE__*/createReactComponent<JSX.RuxClock, HTMLRuxClockElement>('rux-clock');
export const RuxContainer = /*@__PURE__*/createReactComponent<JSX.RuxContainer, HTMLRuxContainerElement>('rux-container');
export const RuxDatetime = /*@__PURE__*/createReactComponent<JSX.RuxDatetime, HTMLRuxDatetimeElement>('rux-datetime');
export const RuxDatetimePicker = /*@__PURE__*/createReactComponent<JSX.RuxDatetimePicker, HTMLRuxDatetimePickerElement>('rux-datetime-picker');
export const RuxDay = /*@__PURE__*/createReactComponent<JSX.RuxDay, HTMLRuxDayElement>('rux-day');
export const RuxDialog = /*@__PURE__*/createReactComponent<JSX.RuxDialog, HTMLRuxDialogElement>('rux-dialog');
export const RuxGlobalStatusBar = /*@__PURE__*/createReactComponent<JSX.RuxGlobalStatusBar, HTMLRuxGlobalStatusBarElement>('rux-global-status-bar');
export const RuxIcon = /*@__PURE__*/createReactComponent<JSX.RuxIcon, HTMLRuxIconElement>('rux-icon');
Expand Down
Loading
Loading