diff --git a/package-lock.json b/package-lock.json index 14f6a174..91cefe73 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,6 +18,7 @@ "ua-parser-js": "^1.0.37" }, "devDependencies": { + "@internationalized/date": "^3.5.5", "@playwright/test": "^1.43.1", "@rollup/plugin-dynamic-import-vars": "^2.1.2", "@sveltejs/adapter-vercel": "^5.3.0", @@ -1744,10 +1745,11 @@ } }, "node_modules/@internationalized/date": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.5.4.tgz", - "integrity": "sha512-qoVJVro+O0rBaw+8HPjUB1iH8Ihf8oziEnqMnvhJUSuVIrHOuZ6eNLHNvzXJKUvAtaDiqMnRlg8Z2mgh09BlUw==", + "version": "3.5.5", + "resolved": "https://registry.npmjs.org/@internationalized/date/-/date-3.5.5.tgz", + "integrity": "sha512-H+CfYvOZ0LTJeeLOqm19E3uj/4YjrmOFtBufDHPfvtI80hFAMqtrp7oCACpe4Cil5l8S0Qu/9dYfZc/5lY8WQQ==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@swc/helpers": "^0.5.0" } diff --git a/package.json b/package.json index b606524a..64df2d03 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,7 @@ "test:safari": "npx playwright test --headed --project=safari" }, "devDependencies": { + "@internationalized/date": "^3.5.5", "@playwright/test": "^1.43.1", "@rollup/plugin-dynamic-import-vars": "^2.1.2", "@sveltejs/adapter-vercel": "^5.3.0", diff --git a/src/lib/components/shadcn/calendar/calendar-cell.svelte b/src/lib/components/shadcn/calendar/calendar-cell.svelte new file mode 100644 index 00000000..f2962b22 --- /dev/null +++ b/src/lib/components/shadcn/calendar/calendar-cell.svelte @@ -0,0 +1,21 @@ + + + + + diff --git a/src/lib/components/shadcn/calendar/calendar-day.svelte b/src/lib/components/shadcn/calendar/calendar-day.svelte new file mode 100644 index 00000000..3b81d8ff --- /dev/null +++ b/src/lib/components/shadcn/calendar/calendar-day.svelte @@ -0,0 +1,42 @@ + + + + + {date.day} + + diff --git a/src/lib/components/shadcn/calendar/calendar-grid-body.svelte b/src/lib/components/shadcn/calendar/calendar-grid-body.svelte new file mode 100644 index 00000000..80b6f84a --- /dev/null +++ b/src/lib/components/shadcn/calendar/calendar-grid-body.svelte @@ -0,0 +1,13 @@ + + + + + diff --git a/src/lib/components/shadcn/calendar/calendar-grid-head.svelte b/src/lib/components/shadcn/calendar/calendar-grid-head.svelte new file mode 100644 index 00000000..dbe3e8e8 --- /dev/null +++ b/src/lib/components/shadcn/calendar/calendar-grid-head.svelte @@ -0,0 +1,13 @@ + + + + + diff --git a/src/lib/components/shadcn/calendar/calendar-grid-row.svelte b/src/lib/components/shadcn/calendar/calendar-grid-row.svelte new file mode 100644 index 00000000..3a1473c7 --- /dev/null +++ b/src/lib/components/shadcn/calendar/calendar-grid-row.svelte @@ -0,0 +1,13 @@ + + + + + diff --git a/src/lib/components/shadcn/calendar/calendar-grid.svelte b/src/lib/components/shadcn/calendar/calendar-grid.svelte new file mode 100644 index 00000000..981ec0e5 --- /dev/null +++ b/src/lib/components/shadcn/calendar/calendar-grid.svelte @@ -0,0 +1,13 @@ + + + + + diff --git a/src/lib/components/shadcn/calendar/calendar-head-cell.svelte b/src/lib/components/shadcn/calendar/calendar-head-cell.svelte new file mode 100644 index 00000000..bd35c184 --- /dev/null +++ b/src/lib/components/shadcn/calendar/calendar-head-cell.svelte @@ -0,0 +1,16 @@ + + + + + diff --git a/src/lib/components/shadcn/calendar/calendar-header.svelte b/src/lib/components/shadcn/calendar/calendar-header.svelte new file mode 100644 index 00000000..014ff28b --- /dev/null +++ b/src/lib/components/shadcn/calendar/calendar-header.svelte @@ -0,0 +1,16 @@ + + + + + diff --git a/src/lib/components/shadcn/calendar/calendar-heading.svelte b/src/lib/components/shadcn/calendar/calendar-heading.svelte new file mode 100644 index 00000000..409a182d --- /dev/null +++ b/src/lib/components/shadcn/calendar/calendar-heading.svelte @@ -0,0 +1,19 @@ + + + + + {headingValue} + + diff --git a/src/lib/components/shadcn/calendar/calendar-months.svelte b/src/lib/components/shadcn/calendar/calendar-months.svelte new file mode 100644 index 00000000..828e0fc8 --- /dev/null +++ b/src/lib/components/shadcn/calendar/calendar-months.svelte @@ -0,0 +1,16 @@ + + +
+ +
diff --git a/src/lib/components/shadcn/calendar/calendar-next-button.svelte b/src/lib/components/shadcn/calendar/calendar-next-button.svelte new file mode 100644 index 00000000..334bc1a8 --- /dev/null +++ b/src/lib/components/shadcn/calendar/calendar-next-button.svelte @@ -0,0 +1,27 @@ + + + + + + + diff --git a/src/lib/components/shadcn/calendar/calendar-prev-button.svelte b/src/lib/components/shadcn/calendar/calendar-prev-button.svelte new file mode 100644 index 00000000..d39bd751 --- /dev/null +++ b/src/lib/components/shadcn/calendar/calendar-prev-button.svelte @@ -0,0 +1,27 @@ + + + + + + + diff --git a/src/lib/components/shadcn/calendar/calendar.svelte b/src/lib/components/shadcn/calendar/calendar.svelte new file mode 100644 index 00000000..663c00bf --- /dev/null +++ b/src/lib/components/shadcn/calendar/calendar.svelte @@ -0,0 +1,59 @@ + + + + + + + + + + {#each months as month} + + + + {#each weekdays as weekday} + + {weekday.slice(0, 2)} + + {/each} + + + + {#each month.weeks as weekDates} + + {#each weekDates as date} + + + + {/each} + + {/each} + + + {/each} + + diff --git a/src/lib/components/shadcn/calendar/index.ts b/src/lib/components/shadcn/calendar/index.ts new file mode 100644 index 00000000..ab257ab3 --- /dev/null +++ b/src/lib/components/shadcn/calendar/index.ts @@ -0,0 +1,30 @@ +import Root from "./calendar.svelte"; +import Cell from "./calendar-cell.svelte"; +import Day from "./calendar-day.svelte"; +import Grid from "./calendar-grid.svelte"; +import Header from "./calendar-header.svelte"; +import Months from "./calendar-months.svelte"; +import GridRow from "./calendar-grid-row.svelte"; +import Heading from "./calendar-heading.svelte"; +import GridBody from "./calendar-grid-body.svelte"; +import GridHead from "./calendar-grid-head.svelte"; +import HeadCell from "./calendar-head-cell.svelte"; +import NextButton from "./calendar-next-button.svelte"; +import PrevButton from "./calendar-prev-button.svelte"; + +export { + Day, + Cell, + Grid, + Header, + Months, + GridRow, + Heading, + GridBody, + GridHead, + HeadCell, + NextButton, + PrevButton, + // + Root as Calendar, +}; diff --git a/src/routes/options-flow/+page.svelte b/src/routes/options-flow/+page.svelte index 9f4dad7f..72b8c378 100644 --- a/src/routes/options-flow/+page.svelte +++ b/src/routes/options-flow/+page.svelte @@ -3,11 +3,19 @@ import { screenWidth, numberOfUnreadNotification, etfTicker, stockTicker, isOpen } from '$lib/store'; import notifySound from '$lib/audio/options-flow-reader.mp3'; //import UpgradeToPro from '$lib/components/UpgradeToPro.svelte'; - import { abbreviateNumber } from '$lib/utils'; + import { abbreviateNumber,cn } from '$lib/utils'; import { onMount, onDestroy } from 'svelte'; import toast from 'svelte-french-toast'; - import * as DropdownMenu from "$lib/components/shadcn/dropdown-menu/index.js"; + import { + DateFormatter, + type DateValue, + } from "@internationalized/date"; + import * as DropdownMenu from "$lib/components/shadcn/dropdown-menu/index.js"; + import * as Popover from "$lib/components/shadcn/popover/index.js"; import { Button } from "$lib/components/shadcn/button/index.js"; + import { Calendar } from "$lib/components/shadcn/calendar/index.js"; + import CalendarIcon from "lucide-svelte/icons/calendar"; + import VirtualList from 'svelte-tiny-virtual-list'; import { writable } from 'svelte/store'; @@ -34,6 +42,13 @@ let showFilters = true; let filteredRows = []; let shouldLoadWorker = writable(false); + const df = new DateFormatter("en-US", { + day: "2-digit", + month: "short", + year: "numeric" + }); + + let selectedDate: DateValue | undefined = undefined; const allRules = { volume: { label: 'Volume', step: ['100K','10K','1K'], defaultCondition: 'over', defaultValue: 'any' }, @@ -737,7 +752,7 @@ $: { -
+