@clickhouse/click-ui 0.12.0 → 0.13.0-rc1
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/LICENSE +1 -1
- package/README.md +14 -7
- package/dist/cjs/click-ui.css +3432 -3425
- package/dist/cjs/components/Accordion/Accordion.module.css.cjs.map +1 -1
- package/dist/cjs/components/Accordion/index.cjs.map +1 -1
- package/dist/cjs/components/Alert/Alert.css +4 -0
- package/dist/cjs/components/Alert/Alert.module.css.cjs +3 -0
- package/dist/cjs/components/Alert/Alert.module.css.cjs.map +1 -1
- package/dist/cjs/components/Alert/index.cjs +3 -3
- package/dist/cjs/components/Alert/index.cjs.map +1 -1
- package/dist/cjs/components/Assets/Flags/Australia.cjs.map +1 -1
- package/dist/cjs/components/Assets/Flags/Austria.cjs.map +1 -1
- package/dist/cjs/components/Assets/Flags/Bahrain.cjs.map +1 -1
- package/dist/cjs/components/Assets/Flags/Belgium.cjs.map +1 -1
- package/dist/cjs/components/Assets/Flags/Brazil.cjs.map +1 -1
- package/dist/cjs/components/Assets/Flags/Canada.cjs.map +1 -1
- package/dist/cjs/components/Assets/Flags/Chile.cjs.map +1 -1
- package/dist/cjs/components/Assets/Flags/China.cjs.map +1 -1
- package/dist/cjs/components/Assets/Flags/Denmark.cjs.map +1 -1
- package/dist/cjs/components/Assets/Flags/European-Union.cjs.map +1 -1
- package/dist/cjs/components/Assets/Flags/Finland.cjs.map +1 -1
- package/dist/cjs/components/Assets/Flags/France.cjs.map +1 -1
- package/dist/cjs/components/Assets/Flags/Germany.cjs.map +1 -1
- package/dist/cjs/components/Assets/Flags/Great-Britain.cjs.map +1 -1
- package/dist/cjs/components/Assets/Flags/Greece.cjs.map +1 -1
- package/dist/cjs/components/Assets/Flags/Hong-Kong.cjs.map +1 -1
- package/dist/cjs/components/Assets/Flags/India.cjs.map +1 -1
- package/dist/cjs/components/Assets/Flags/Indonesia.cjs.map +1 -1
- package/dist/cjs/components/Assets/Flags/Ireland.cjs.map +1 -1
- package/dist/cjs/components/Assets/Flags/Israel.cjs.map +1 -1
- package/dist/cjs/components/Assets/Flags/Italy.cjs.map +1 -1
- package/dist/cjs/components/Assets/Flags/Japan.cjs.map +1 -1
- package/dist/cjs/components/Assets/Flags/Malaysia.cjs.map +1 -1
- package/dist/cjs/components/Assets/Flags/Mexico.cjs.map +1 -1
- package/dist/cjs/components/Assets/Flags/Netherlands.cjs.map +1 -1
- package/dist/cjs/components/Assets/Flags/New-Zealand.cjs.map +1 -1
- package/dist/cjs/components/Assets/Flags/Norway.cjs.map +1 -1
- package/dist/cjs/components/Assets/Flags/Poland.cjs.map +1 -1
- package/dist/cjs/components/Assets/Flags/Qatar.cjs.map +1 -1
- package/dist/cjs/components/Assets/Flags/Saudi-Arabia.cjs.map +1 -1
- package/dist/cjs/components/Assets/Flags/Singapore.cjs.map +1 -1
- package/dist/cjs/components/Assets/Flags/South-Africa.cjs.map +1 -1
- package/dist/cjs/components/Assets/Flags/South-Korea.cjs.map +1 -1
- package/dist/cjs/components/Assets/Flags/Spain.cjs.map +1 -1
- package/dist/cjs/components/Assets/Flags/Sweden.cjs.map +1 -1
- package/dist/cjs/components/Assets/Flags/Switzerland.cjs.map +1 -1
- package/dist/cjs/components/Assets/Flags/Taiwan.cjs.map +1 -1
- package/dist/cjs/components/Assets/Flags/Thailand.cjs.map +1 -1
- package/dist/cjs/components/Assets/Flags/United-Arab-Emirates.cjs.map +1 -1
- package/dist/cjs/components/Assets/Flags/United-Kingdom.cjs.map +1 -1
- package/dist/cjs/components/Assets/Flags/United-States.cjs.map +1 -1
- package/dist/cjs/components/Assets/Flags/system/Flag.cjs.map +1 -1
- package/dist/cjs/components/Assets/Flags/system/FlagsDark.cjs.map +1 -1
- package/dist/cjs/components/Assets/Flags/system/FlagsLight.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Activity.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Alarm.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Arrow-Directions.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Arrow-Down.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Arrow-Left.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Arrow-Right.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Arrow-Triangle.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Arrow-Up.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Auth-App.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Auth-Sms.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Backups.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Bar-Chart.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Bell.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Beta.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Blog.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Bold.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Book.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Brackets.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Briefcase.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Building.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Burger-Menu.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Calendar-With-Time.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Calendar.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Cards.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Cell-Tower.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Chart-Area.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Chart-Bar-Horizontal.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Chart-Cloud.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Chart-Donut.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Chart-Heatmap.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Chart-Scatter.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Chart-Square.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Chart-Stacked-Horizontal.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Chart-Stacked-Vertical.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Chat.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Check-In-Circle.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Check.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Chevron-Down.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Chevron-Left.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Chevron-Right.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Chevron-Up.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Circle.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Clock.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Cloud-Keys.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Cloud.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Code-In-Square.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Code.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Collapse-All.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Connect-Alt.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Connect.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Console.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Copy.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Cpu.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Credit-Card.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Cross.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Data-Lakes.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Data.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Database.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Disk.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Display.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Document.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Dollar.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Dot.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Dots-Horizontal.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Dots-Triangle.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Dots-Vertical-Double.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Dots-Vertical.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Double-Check.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Download-In-Circle.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Download.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Email.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Empty.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Enter.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Expand-All.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Eye-Closed.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Eye.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Filter.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Fire.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Flag.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Flash.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Flask.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Folder-Closed.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Folder-Open.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Gear.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Gift.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Git-Merge.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Globe.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Grid-Dots.cjs +30 -0
- package/dist/cjs/components/Assets/Icons/Grid-Dots.cjs.map +1 -0
- package/dist/cjs/components/Assets/Icons/Hexagon.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/History.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Home.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Horizontal-Loading.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Http-Monitoring.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Http.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Info-In-Circle.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Information.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Insert-Row.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Integrations.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Italic.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Key.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Keys.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Lifebuoy.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Light-Bulb-On.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Light-Bulb.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Lightening.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Line-In-Circle.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/List-Bulleted.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/List-Numbered.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Loaders.module.css.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Loading-Animated.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Loading.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Lock.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Map-Pin.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Mcp.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Metrics-Alt.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Metrics.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Minus.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Moon.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/No-Cloud.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Pause.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Payment.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Pencil.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Pie-Chart.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Pin.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Pipe.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Play-In-Circle.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Play.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Plug.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Plus.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Popin.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Popout.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Popover-Arrow.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Puzzle-Piece.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Query.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Question.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Refresh.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Resize-Arrows-Horizontal.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Resize-Arrows-Vertical.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Rocket.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Sand-Glass.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Search.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Secure.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Server.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Services.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Settings.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Share-Network.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Share.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Sleep.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Slide-In.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Slide-Out.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Sort-Alt.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Sort.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Sparkle.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Speaker.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Speed.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Square.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Star.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Stop.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Support.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Table.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Taxi.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Text-Slash.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Thumbs-Down.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Thumbs-Up.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Trash.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Tree-Structure.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Underline.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Unpin.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Upgrade.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Upload.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Url.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/User.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Users.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Warning.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/Waves.cjs.map +1 -1
- package/dist/cjs/components/Assets/Icons/system/IconsLight.cjs +2 -0
- package/dist/cjs/components/Assets/Icons/system/IconsLight.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/AWS.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/AWS_ATHENA.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/AWS_AURORA.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/AWS_GLUE.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/AWS_KINESIS.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/AWS_MSK.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/AWS_RDS.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/AWS_REDSHIFT.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/AWS_S3.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/Airbyte.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/Alloydb.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/ApacheIceberg.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/Azure.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/Azure_Blob_Storage.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/Azure_Event_Hub.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/Biglake-Metastore.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/Bigquery.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/Clickhouse.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/Cloudflare.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/Confluent.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/Crunchy_Bridge.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/Csharp.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/Databricks.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/Datagrip.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/Dbeaver.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/Dbt.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/Decodeable.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/Deepnote.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/Deltalake.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/Digitalocean.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/FeatureDatabase.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/FeatureHexagon.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/Fivetran.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/GCS.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/Gcp.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/Github.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/Golang.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/Google.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/Grafana.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/Hex.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/Hudi.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/Iceberg.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/Jdbc.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/Kafka.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/Kubernetes.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/Lakekeeper.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/Mariadb.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/Metabase.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/Microsoft.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/Mongodb.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/Mysql.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/Neondb.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/Nessie.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/Nodejs.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/OVH.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/Onelake.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/Planetscale.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/Polaris.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/Postgres.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/Prequel.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/Python.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/Redpanda.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/Rust.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/Snowflake.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/Supabase.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/Superset.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/Tableau.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/Tigerdata.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/Upstash.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/Vector.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/Warpstream.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/system/Logo.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/system/LogosDark.cjs.map +1 -1
- package/dist/cjs/components/Assets/Logos/system/LogosLight.cjs.map +1 -1
- package/dist/cjs/components/Assets/Payments/Amex.cjs.map +1 -1
- package/dist/cjs/components/Assets/Payments/Mastercard.cjs.map +1 -1
- package/dist/cjs/components/Assets/Payments/Paypal.cjs.map +1 -1
- package/dist/cjs/components/Assets/Payments/Visa.cjs.map +1 -1
- package/dist/cjs/components/Assets/Payments/system/Payment.cjs.map +1 -1
- package/dist/cjs/components/Assets/Payments/system/PaymentsDark.cjs.map +1 -1
- package/dist/cjs/components/Assets/Payments/system/PaymentsLight.cjs.map +1 -1
- package/dist/cjs/components/Assets/config.cjs.map +1 -1
- package/dist/cjs/components/AutoComplete/AutoComplete.module.css.cjs.map +1 -1
- package/dist/cjs/components/AutoComplete/OptionContext.cjs.map +1 -1
- package/dist/cjs/components/AutoComplete/index.cjs +3 -3
- package/dist/cjs/components/AutoComplete/index.cjs.map +1 -1
- package/dist/cjs/components/AutoComplete/useOption.cjs.map +1 -1
- package/dist/cjs/components/Avatar/Avatar.module.css.cjs.map +1 -1
- package/dist/cjs/components/Avatar/index.cjs.map +1 -1
- package/dist/cjs/components/Badge/Badge.module.css.cjs.map +1 -1
- package/dist/cjs/components/Badge/index.cjs.map +1 -1
- package/dist/cjs/components/BigStat/BigStat.module.css.cjs.map +1 -1
- package/dist/cjs/components/BigStat/index.cjs.map +1 -1
- package/dist/cjs/components/Button/BaseButton.cjs.map +1 -1
- package/dist/cjs/components/Button/BaseButton.module.css.cjs.map +1 -1
- package/dist/cjs/components/Button/Button.module.css.cjs.map +1 -1
- package/dist/cjs/components/Button/index.cjs.map +1 -1
- package/dist/cjs/components/ButtonGroup/ButtonGroup.module.css.cjs.map +1 -1
- package/dist/cjs/components/ButtonGroup/index.cjs +0 -1
- package/dist/cjs/components/ButtonGroup/index.cjs.map +1 -1
- package/dist/cjs/components/CardHorizontal/CardHorizontal.module.css.cjs.map +1 -1
- package/dist/cjs/components/CardHorizontal/index.cjs +3 -2
- package/dist/cjs/components/CardHorizontal/index.cjs.map +1 -1
- package/dist/cjs/components/CardPrimary/CardPrimary.module.css.cjs.map +1 -1
- package/dist/cjs/components/CardPrimary/CardPrimaryTopBadge.cjs.map +1 -1
- package/dist/cjs/components/CardPrimary/index.cjs +4 -3
- package/dist/cjs/components/CardPrimary/index.cjs.map +1 -1
- package/dist/cjs/components/CardPrimary/withTopBadge.cjs.map +1 -1
- package/dist/cjs/components/CardPromotion/CardPromotion.module.css.cjs.map +1 -1
- package/dist/cjs/components/CardPromotion/index.cjs.map +1 -1
- package/dist/cjs/components/CardSecondary/CardSecondary.module.css.cjs.map +1 -1
- package/dist/cjs/components/CardSecondary/index.cjs.map +1 -1
- package/dist/cjs/components/Checkbox/Checkbox.module.css.cjs.map +1 -1
- package/dist/cjs/components/Checkbox/index.cjs.map +1 -1
- package/dist/cjs/components/CheckboxMultiSelect/index.cjs.map +1 -1
- package/dist/cjs/components/CodeBlock/CodeBlock.module.css.cjs.map +1 -1
- package/dist/cjs/components/CodeBlock/InlineCodeBlock.cjs.map +1 -1
- package/dist/cjs/components/CodeBlock/InlineCodeBlock.module.css.cjs.map +1 -1
- package/dist/cjs/components/CodeBlock/index.cjs.map +1 -1
- package/dist/cjs/components/CodeBlock/useColorStyle.cjs.map +1 -1
- package/dist/cjs/components/Collapsible/Collapsible.module.css.cjs.map +1 -1
- package/dist/cjs/components/Collapsible/IconWrapper.cjs.map +1 -1
- package/dist/cjs/components/Collapsible/index.cjs.map +1 -1
- package/dist/cjs/components/ConfirmationDialog/ConfirmationDialog.module.css.cjs.map +1 -1
- package/dist/cjs/components/ConfirmationDialog/index.cjs.map +1 -1
- package/dist/cjs/components/Container/Container.module.css.cjs.map +1 -1
- package/dist/cjs/components/Container/index.cjs.map +1 -1
- package/dist/cjs/components/ContextMenu/ContextMenu.module.css.cjs.map +1 -1
- package/dist/cjs/components/ContextMenu/index.cjs +1 -2
- package/dist/cjs/components/ContextMenu/index.cjs.map +1 -1
- package/dist/cjs/components/CrossButton/CrossButton.module.css.cjs.map +1 -1
- package/dist/cjs/components/CrossButton/index.cjs.map +1 -1
- package/dist/cjs/components/DateDetails/index.cjs.map +1 -1
- package/dist/cjs/components/DatePicker/Common.cjs.map +1 -1
- package/dist/cjs/components/DatePicker/Common.module.css.cjs.map +1 -1
- package/dist/cjs/components/DatePicker/DatePicker.module.css.cjs.map +1 -1
- package/dist/cjs/components/DatePicker/DateRangePicker.cjs.map +1 -1
- package/dist/cjs/components/DatePicker/DateRangePicker.module.css.cjs.map +1 -1
- package/dist/cjs/components/DatePicker/DateTimeRangePicker.cjs.map +1 -1
- package/dist/cjs/components/DatePicker/DateTimeRangePicker.module.css.cjs.map +1 -1
- package/dist/cjs/components/DatePicker/index.cjs +4 -4
- package/dist/cjs/components/DatePicker/index.cjs.map +1 -1
- package/dist/cjs/components/DatePicker/utils.cjs.map +1 -1
- package/dist/cjs/components/Dialog/Dialog.module.css.cjs.map +1 -1
- package/dist/cjs/components/Dialog/index.cjs.map +1 -1
- package/dist/cjs/components/Dropdown/Dropdown.module.css.cjs.map +1 -1
- package/dist/cjs/components/Dropdown/index.cjs +12 -12
- package/dist/cjs/components/Dropdown/index.cjs.map +1 -1
- package/dist/cjs/components/EllipsisContent/EllipsisContent.module.css.cjs.map +1 -1
- package/dist/cjs/components/EllipsisContent/index.cjs.map +1 -1
- package/dist/cjs/components/EmptyButton/EmptyButton.module.css.cjs.map +1 -1
- package/dist/cjs/components/EmptyButton/index.cjs.map +1 -1
- package/dist/cjs/components/FileTabs/FileTabs.module.css.cjs.map +1 -1
- package/dist/cjs/components/FileTabs/index.cjs.map +1 -1
- package/dist/cjs/components/FileUpload/FileMultiUpload.cjs.map +1 -1
- package/dist/cjs/components/FileUpload/FileMultiUpload.module.css.cjs.map +1 -1
- package/dist/cjs/components/FileUpload/FileUploadArea.cjs +76 -73
- package/dist/cjs/components/FileUpload/FileUploadArea.cjs.map +1 -1
- package/dist/cjs/components/FileUpload/FileUploadArea.module.css.cjs.map +1 -1
- package/dist/cjs/components/FileUpload/FileUploadItem.cjs.map +1 -1
- package/dist/cjs/components/FileUpload/FileUploadItem.module.css.cjs.map +1 -1
- package/dist/cjs/components/FileUpload/index.cjs.map +1 -1
- package/dist/cjs/components/FileUpload/useDragAndDrop.cjs.map +1 -1
- package/dist/cjs/components/Flyout/Flyout.module.css.cjs.map +1 -1
- package/dist/cjs/components/Flyout/index.cjs.map +1 -1
- package/dist/cjs/components/FormContainer/Error.cjs.map +1 -1
- package/dist/cjs/components/FormContainer/Error.module.css.cjs.map +1 -1
- package/dist/cjs/components/FormContainer/FormElementContainer.cjs.map +1 -1
- package/dist/cjs/components/FormContainer/FormElementContainer.module.css.cjs.map +1 -1
- package/dist/cjs/components/FormContainer/FormRoot.cjs.map +1 -1
- package/dist/cjs/components/FormContainer/FormRoot.module.css.cjs.map +1 -1
- package/dist/cjs/components/FormContainer/index.cjs.map +1 -1
- package/dist/cjs/components/GenericLabel/GenericLabel.module.css.cjs.map +1 -1
- package/dist/cjs/components/GenericLabel/index.cjs.map +1 -1
- package/dist/cjs/components/GenericMenu/GenericMenu.css +7 -6
- package/dist/cjs/components/GenericMenu/GenericMenu.module.css.cjs.map +1 -1
- package/dist/cjs/components/GenericMenu/index.cjs.map +1 -1
- package/dist/cjs/components/Grid/Cell.cjs.map +1 -1
- package/dist/cjs/components/Grid/ColumnResizer.cjs +32 -29
- package/dist/cjs/components/Grid/ColumnResizer.cjs.map +1 -1
- package/dist/cjs/components/Grid/ColumnResizer.module.css.cjs.map +1 -1
- package/dist/cjs/components/Grid/Grid.module.css.cjs.map +1 -1
- package/dist/cjs/components/Grid/Header.cjs.map +1 -1
- package/dist/cjs/components/Grid/Header.module.css.cjs.map +1 -1
- package/dist/cjs/components/Grid/RowNumberColumn.cjs.map +1 -1
- package/dist/cjs/components/Grid/RowNumberColumn.module.css.cjs.map +1 -1
- package/dist/cjs/components/Grid/StyledCell.cjs.map +1 -1
- package/dist/cjs/components/Grid/StyledCell.module.css.cjs.map +1 -1
- package/dist/cjs/components/Grid/copyGridElements.cjs.map +1 -1
- package/dist/cjs/components/Grid/index.cjs.map +1 -1
- package/dist/cjs/components/Grid/useColumns.cjs.map +1 -1
- package/dist/cjs/components/Grid/useResizingState.cjs.map +1 -1
- package/dist/cjs/components/Grid/useSelectionActions.cjs.map +1 -1
- package/dist/cjs/components/GridContainer/GridContainer.module.css.cjs.map +1 -1
- package/dist/cjs/components/GridContainer/index.cjs.map +1 -1
- package/dist/cjs/components/HoverCard/HoverCard.module.css.cjs.map +1 -1
- package/dist/cjs/components/HoverCard/index.cjs.map +1 -1
- package/dist/cjs/components/Icon/Icon.module.css.cjs.map +1 -1
- package/dist/cjs/components/Icon/IconCommon.cjs.map +1 -1
- package/dist/cjs/components/Icon/SvgImageElement.cjs.map +1 -1
- package/dist/cjs/components/Icon/index.cjs.map +1 -1
- package/dist/cjs/components/IconButton/IconButton.module.css.cjs.map +1 -1
- package/dist/cjs/components/IconButton/index.cjs +0 -1
- package/dist/cjs/components/IconButton/index.cjs.map +1 -1
- package/dist/cjs/components/IconWrapper/index.cjs +1 -2
- package/dist/cjs/components/IconWrapper/index.cjs.map +1 -1
- package/dist/cjs/components/InputWrapper/InputWrapper.module.css.cjs.map +1 -1
- package/dist/cjs/components/InputWrapper/index.cjs.map +1 -1
- package/dist/cjs/components/Label/Label.module.css.cjs.map +1 -1
- package/dist/cjs/components/Label/index.cjs.map +1 -1
- package/dist/cjs/components/Link/Link.module.css.cjs.map +1 -1
- package/dist/cjs/components/Link/index.cjs.map +1 -1
- package/dist/cjs/components/MiddleTruncator/MiddleTruncator.module.css.cjs.map +1 -1
- package/dist/cjs/components/MiddleTruncator/index.cjs.map +1 -1
- package/dist/cjs/components/MultiAccordion/MultiAccordion.module.css.cjs.map +1 -1
- package/dist/cjs/components/MultiAccordion/index.cjs.map +1 -1
- package/dist/cjs/components/MultiSelect/index.cjs.map +1 -1
- package/dist/cjs/components/NumberField/index.cjs.map +1 -1
- package/dist/cjs/components/Pagination/Pagination.module.css.cjs.map +1 -1
- package/dist/cjs/components/Pagination/index.cjs.map +1 -1
- package/dist/cjs/components/Panel/Panel.module.css.cjs.map +1 -1
- package/dist/cjs/components/Panel/index.cjs.map +1 -1
- package/dist/cjs/components/PasswordField/index.cjs.map +1 -1
- package/dist/cjs/components/Popover/Popover.module.css.cjs.map +1 -1
- package/dist/cjs/components/Popover/index.cjs.map +1 -1
- package/dist/cjs/components/ProgressBar/ProgressBar.module.css.cjs.map +1 -1
- package/dist/cjs/components/ProgressBar/index.cjs +2 -1
- package/dist/cjs/components/ProgressBar/index.cjs.map +1 -1
- package/dist/cjs/components/RadioGroup/RadioGroup.module.css.cjs.map +1 -1
- package/dist/cjs/components/RadioGroup/index.cjs.map +1 -1
- package/dist/cjs/components/SearchField/index.cjs.map +1 -1
- package/dist/cjs/components/Select/MultiSelectValue.cjs.map +1 -1
- package/dist/cjs/components/Select/MultiSelectValue.module.css.cjs.map +1 -1
- package/dist/cjs/components/Select/SingleSelectValue.cjs +0 -1
- package/dist/cjs/components/Select/SingleSelectValue.cjs.map +1 -1
- package/dist/cjs/components/Select/SingleSelectValue.module.css.cjs.map +1 -1
- package/dist/cjs/components/Select/common/InternalSelect.cjs +0 -2
- package/dist/cjs/components/Select/common/InternalSelect.cjs.map +1 -1
- package/dist/cjs/components/Select/common/OptionContext.cjs.map +1 -1
- package/dist/cjs/components/Select/common/SelectComponents.cjs.map +1 -1
- package/dist/cjs/components/Select/common/SelectComponents.module.css.cjs.map +1 -1
- package/dist/cjs/components/Select/common/useOption.cjs.map +1 -1
- package/dist/cjs/components/Select/index.cjs.map +1 -1
- package/dist/cjs/components/Separator/Separator.module.css.cjs.map +1 -1
- package/dist/cjs/components/Separator/index.cjs.map +1 -1
- package/dist/cjs/components/SidebarCollapsibleItem/index.cjs.map +1 -1
- package/dist/cjs/components/SidebarCollapsibleTitle/index.cjs.map +1 -1
- package/dist/cjs/components/SidebarNavigationItem/SidebarNavigationItem.module.css.cjs.map +1 -1
- package/dist/cjs/components/SidebarNavigationItem/index.cjs.map +1 -1
- package/dist/cjs/components/SidebarNavigationTitle/SidebarNavigationTitle.module.css.cjs.map +1 -1
- package/dist/cjs/components/SidebarNavigationTitle/index.cjs.map +1 -1
- package/dist/cjs/components/Spacer/Spacer.module.css.cjs.map +1 -1
- package/dist/cjs/components/Spacer/index.cjs.map +1 -1
- package/dist/cjs/components/SplitButton/SplitButton.module.css.cjs.map +1 -1
- package/dist/cjs/components/SplitButton/index.cjs.map +1 -1
- package/dist/cjs/components/Switch/Switch.module.css.cjs.map +1 -1
- package/dist/cjs/components/Switch/index.cjs.map +1 -1
- package/dist/cjs/components/Table/Table.module.css.cjs.map +1 -1
- package/dist/cjs/components/Table/index.cjs +73 -61
- package/dist/cjs/components/Table/index.cjs.map +1 -1
- package/dist/cjs/components/Tabs/Tabs.module.css.cjs.map +1 -1
- package/dist/cjs/components/Tabs/index.cjs.map +1 -1
- package/dist/cjs/components/Text/Text.module.css.cjs.map +1 -1
- package/dist/cjs/components/Text/index.cjs.map +1 -1
- package/dist/cjs/components/TextAreaField/index.cjs.map +1 -1
- package/dist/cjs/components/TextField/index.cjs.map +1 -1
- package/dist/cjs/components/Title/Title.module.css.cjs.map +1 -1
- package/dist/cjs/components/Title/index.cjs.map +1 -1
- package/dist/cjs/components/Toast/Toast.module.css.cjs.map +1 -1
- package/dist/cjs/components/Toast/index.cjs.map +1 -1
- package/dist/cjs/components/Toast/toastEmitter.cjs.map +1 -1
- package/dist/cjs/components/Tooltip/Tooltip.module.css.cjs.map +1 -1
- package/dist/cjs/components/Tooltip/index.cjs.map +1 -1
- package/dist/cjs/components/VerticalStepper/VerticalStepper.module.css.cjs.map +1 -1
- package/dist/cjs/components/VerticalStepper/index.cjs.map +1 -1
- package/dist/cjs/hooks/internal/useInputModality.cjs.map +1 -1
- package/dist/cjs/hooks/internal/useUpdateEffect.cjs.map +1 -1
- package/dist/cjs/hooks/useCUITheme.cjs.map +1 -1
- package/dist/cjs/hooks/useInitialTheme.cjs.map +1 -1
- package/dist/cjs/hooks/useToast.cjs.map +1 -1
- package/dist/cjs/index.cjs +39 -39
- package/dist/cjs/lib/EventEmitter.cjs.map +1 -1
- package/dist/cjs/lib/cva.cjs.map +1 -1
- package/dist/cjs/lib/getTextFromNodes.cjs.map +1 -1
- package/dist/cjs/providers/ClickUIProvider.cjs.map +1 -1
- package/dist/cjs/providers/PortalContext.cjs.map +1 -1
- package/dist/cjs/providers/PortalProvider.cjs.map +1 -1
- package/dist/cjs/theme/InitCUIThemeScript/index.cjs +8 -8
- package/dist/cjs/theme/InitCUIThemeScript/index.cjs.map +1 -1
- package/dist/cjs/theme/ThemeContext.cjs.map +1 -1
- package/dist/cjs/theme/styles/tokens-dark.css +2 -1
- package/dist/cjs/theme/styles/tokens-light.css +2 -1
- package/dist/cjs/theme/theme.config.json.cjs.map +1 -1
- package/dist/cjs/theme/theme.core.cjs.map +1 -1
- package/dist/cjs/theme/theme.utils.cjs.map +1 -1
- package/dist/cjs/theme/tokens/variables.dark.cjs +226 -226
- package/dist/cjs/theme/tokens/variables.dark.cjs.map +1 -1
- package/dist/cjs/theme/tokens/variables.light.cjs +226 -226
- package/dist/cjs/theme/tokens/variables.light.cjs.map +1 -1
- package/dist/cjs/utils/date.cjs.map +1 -1
- package/dist/cjs/utils/dom.cjs +4 -7
- package/dist/cjs/utils/dom.cjs.map +1 -1
- package/dist/cjs/utils/file.cjs.map +1 -1
- package/dist/cjs/utils/localStorage.cjs.map +1 -1
- package/dist/cjs/utils/mergeRefs.cjs.map +1 -1
- package/dist/cjs/utils/url.cjs +24 -0
- package/dist/cjs/utils/url.cjs.map +1 -0
- package/dist/esm/click-ui.css +3432 -3425
- package/dist/esm/components/Accordion/Accordion.module.css.js.map +1 -1
- package/dist/esm/components/Accordion/index.js.map +1 -1
- package/dist/esm/components/Alert/Alert.css +4 -0
- package/dist/esm/components/Alert/Alert.module.css.js +3 -1
- package/dist/esm/components/Alert/index.js +4 -4
- package/dist/esm/components/Alert/index.js.map +1 -1
- package/dist/esm/components/Assets/Flags/Australia.js.map +1 -1
- package/dist/esm/components/Assets/Flags/Austria.js.map +1 -1
- package/dist/esm/components/Assets/Flags/Bahrain.js.map +1 -1
- package/dist/esm/components/Assets/Flags/Belgium.js.map +1 -1
- package/dist/esm/components/Assets/Flags/Brazil.js.map +1 -1
- package/dist/esm/components/Assets/Flags/Canada.js.map +1 -1
- package/dist/esm/components/Assets/Flags/Chile.js.map +1 -1
- package/dist/esm/components/Assets/Flags/China.js.map +1 -1
- package/dist/esm/components/Assets/Flags/Denmark.js.map +1 -1
- package/dist/esm/components/Assets/Flags/European-Union.js.map +1 -1
- package/dist/esm/components/Assets/Flags/Finland.js.map +1 -1
- package/dist/esm/components/Assets/Flags/France.js.map +1 -1
- package/dist/esm/components/Assets/Flags/Germany.js.map +1 -1
- package/dist/esm/components/Assets/Flags/Great-Britain.js.map +1 -1
- package/dist/esm/components/Assets/Flags/Greece.js.map +1 -1
- package/dist/esm/components/Assets/Flags/Hong-Kong.js.map +1 -1
- package/dist/esm/components/Assets/Flags/India.js.map +1 -1
- package/dist/esm/components/Assets/Flags/Indonesia.js.map +1 -1
- package/dist/esm/components/Assets/Flags/Ireland.js.map +1 -1
- package/dist/esm/components/Assets/Flags/Israel.js.map +1 -1
- package/dist/esm/components/Assets/Flags/Italy.js.map +1 -1
- package/dist/esm/components/Assets/Flags/Japan.js.map +1 -1
- package/dist/esm/components/Assets/Flags/Malaysia.js.map +1 -1
- package/dist/esm/components/Assets/Flags/Mexico.js.map +1 -1
- package/dist/esm/components/Assets/Flags/Netherlands.js.map +1 -1
- package/dist/esm/components/Assets/Flags/New-Zealand.js.map +1 -1
- package/dist/esm/components/Assets/Flags/Norway.js.map +1 -1
- package/dist/esm/components/Assets/Flags/Poland.js.map +1 -1
- package/dist/esm/components/Assets/Flags/Qatar.js.map +1 -1
- package/dist/esm/components/Assets/Flags/Saudi-Arabia.js.map +1 -1
- package/dist/esm/components/Assets/Flags/Singapore.js.map +1 -1
- package/dist/esm/components/Assets/Flags/South-Africa.js.map +1 -1
- package/dist/esm/components/Assets/Flags/South-Korea.js.map +1 -1
- package/dist/esm/components/Assets/Flags/Spain.js.map +1 -1
- package/dist/esm/components/Assets/Flags/Sweden.js.map +1 -1
- package/dist/esm/components/Assets/Flags/Switzerland.js.map +1 -1
- package/dist/esm/components/Assets/Flags/Taiwan.js.map +1 -1
- package/dist/esm/components/Assets/Flags/Thailand.js.map +1 -1
- package/dist/esm/components/Assets/Flags/United-Arab-Emirates.js.map +1 -1
- package/dist/esm/components/Assets/Flags/United-Kingdom.js.map +1 -1
- package/dist/esm/components/Assets/Flags/United-States.js.map +1 -1
- package/dist/esm/components/Assets/Flags/system/Flag.js.map +1 -1
- package/dist/esm/components/Assets/Flags/system/FlagsDark.js.map +1 -1
- package/dist/esm/components/Assets/Flags/system/FlagsLight.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Activity.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Alarm.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Arrow-Directions.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Arrow-Down.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Arrow-Left.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Arrow-Right.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Arrow-Triangle.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Arrow-Up.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Auth-App.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Auth-Sms.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Backups.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Bar-Chart.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Bell.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Beta.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Blog.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Bold.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Book.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Brackets.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Briefcase.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Building.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Burger-Menu.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Calendar-With-Time.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Calendar.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Cards.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Cell-Tower.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Chart-Area.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Chart-Bar-Horizontal.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Chart-Cloud.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Chart-Donut.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Chart-Heatmap.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Chart-Scatter.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Chart-Square.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Chart-Stacked-Horizontal.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Chart-Stacked-Vertical.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Chat.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Check-In-Circle.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Check.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Chevron-Down.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Chevron-Left.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Chevron-Right.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Chevron-Up.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Circle.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Clock.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Cloud-Keys.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Cloud.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Code-In-Square.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Code.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Collapse-All.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Connect-Alt.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Connect.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Console.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Copy.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Cpu.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Credit-Card.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Cross.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Data-Lakes.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Data.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Database.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Disk.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Display.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Document.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Dollar.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Dot.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Dots-Horizontal.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Dots-Triangle.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Dots-Vertical-Double.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Dots-Vertical.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Double-Check.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Download-In-Circle.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Download.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Email.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Empty.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Enter.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Expand-All.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Eye-Closed.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Eye.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Filter.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Fire.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Flag.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Flash.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Flask.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Folder-Closed.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Folder-Open.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Gear.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Gift.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Git-Merge.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Globe.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Grid-Dots.js +26 -0
- package/dist/esm/components/Assets/Icons/Grid-Dots.js.map +1 -0
- package/dist/esm/components/Assets/Icons/Hexagon.js.map +1 -1
- package/dist/esm/components/Assets/Icons/History.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Home.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Horizontal-Loading.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Http-Monitoring.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Http.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Info-In-Circle.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Information.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Insert-Row.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Integrations.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Italic.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Key.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Keys.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Lifebuoy.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Light-Bulb-On.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Light-Bulb.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Lightening.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Line-In-Circle.js.map +1 -1
- package/dist/esm/components/Assets/Icons/List-Bulleted.js.map +1 -1
- package/dist/esm/components/Assets/Icons/List-Numbered.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Loaders.module.css.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Loading-Animated.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Loading.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Lock.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Map-Pin.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Mcp.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Metrics-Alt.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Metrics.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Minus.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Moon.js.map +1 -1
- package/dist/esm/components/Assets/Icons/No-Cloud.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Pause.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Payment.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Pencil.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Pie-Chart.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Pin.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Pipe.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Play-In-Circle.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Play.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Plug.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Plus.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Popin.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Popout.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Popover-Arrow.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Puzzle-Piece.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Query.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Question.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Refresh.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Resize-Arrows-Horizontal.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Resize-Arrows-Vertical.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Rocket.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Sand-Glass.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Search.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Secure.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Server.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Services.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Settings.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Share-Network.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Share.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Sleep.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Slide-In.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Slide-Out.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Sort-Alt.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Sort.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Sparkle.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Speaker.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Speed.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Square.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Star.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Stop.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Support.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Table.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Taxi.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Text-Slash.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Thumbs-Down.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Thumbs-Up.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Trash.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Tree-Structure.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Underline.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Unpin.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Upgrade.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Upload.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Url.js.map +1 -1
- package/dist/esm/components/Assets/Icons/User.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Users.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Warning.js.map +1 -1
- package/dist/esm/components/Assets/Icons/Waves.js.map +1 -1
- package/dist/esm/components/Assets/Icons/system/IconsLight.js +2 -0
- package/dist/esm/components/Assets/Icons/system/IconsLight.js.map +1 -1
- package/dist/esm/components/Assets/Logos/AWS.js.map +1 -1
- package/dist/esm/components/Assets/Logos/AWS_ATHENA.js.map +1 -1
- package/dist/esm/components/Assets/Logos/AWS_AURORA.js.map +1 -1
- package/dist/esm/components/Assets/Logos/AWS_GLUE.js.map +1 -1
- package/dist/esm/components/Assets/Logos/AWS_KINESIS.js.map +1 -1
- package/dist/esm/components/Assets/Logos/AWS_MSK.js.map +1 -1
- package/dist/esm/components/Assets/Logos/AWS_RDS.js.map +1 -1
- package/dist/esm/components/Assets/Logos/AWS_REDSHIFT.js.map +1 -1
- package/dist/esm/components/Assets/Logos/AWS_S3.js.map +1 -1
- package/dist/esm/components/Assets/Logos/Airbyte.js.map +1 -1
- package/dist/esm/components/Assets/Logos/Alloydb.js.map +1 -1
- package/dist/esm/components/Assets/Logos/ApacheIceberg.js.map +1 -1
- package/dist/esm/components/Assets/Logos/Azure.js.map +1 -1
- package/dist/esm/components/Assets/Logos/Azure_Blob_Storage.js.map +1 -1
- package/dist/esm/components/Assets/Logos/Azure_Event_Hub.js.map +1 -1
- package/dist/esm/components/Assets/Logos/Biglake-Metastore.js.map +1 -1
- package/dist/esm/components/Assets/Logos/Bigquery.js.map +1 -1
- package/dist/esm/components/Assets/Logos/Clickhouse.js.map +1 -1
- package/dist/esm/components/Assets/Logos/Cloudflare.js.map +1 -1
- package/dist/esm/components/Assets/Logos/Confluent.js.map +1 -1
- package/dist/esm/components/Assets/Logos/Crunchy_Bridge.js.map +1 -1
- package/dist/esm/components/Assets/Logos/Csharp.js.map +1 -1
- package/dist/esm/components/Assets/Logos/Databricks.js.map +1 -1
- package/dist/esm/components/Assets/Logos/Datagrip.js.map +1 -1
- package/dist/esm/components/Assets/Logos/Dbeaver.js.map +1 -1
- package/dist/esm/components/Assets/Logos/Dbt.js.map +1 -1
- package/dist/esm/components/Assets/Logos/Decodeable.js.map +1 -1
- package/dist/esm/components/Assets/Logos/Deepnote.js.map +1 -1
- package/dist/esm/components/Assets/Logos/Deltalake.js.map +1 -1
- package/dist/esm/components/Assets/Logos/Digitalocean.js.map +1 -1
- package/dist/esm/components/Assets/Logos/FeatureDatabase.js.map +1 -1
- package/dist/esm/components/Assets/Logos/FeatureHexagon.js.map +1 -1
- package/dist/esm/components/Assets/Logos/Fivetran.js.map +1 -1
- package/dist/esm/components/Assets/Logos/GCS.js.map +1 -1
- package/dist/esm/components/Assets/Logos/Gcp.js.map +1 -1
- package/dist/esm/components/Assets/Logos/Github.js.map +1 -1
- package/dist/esm/components/Assets/Logos/Golang.js.map +1 -1
- package/dist/esm/components/Assets/Logos/Google.js.map +1 -1
- package/dist/esm/components/Assets/Logos/Grafana.js.map +1 -1
- package/dist/esm/components/Assets/Logos/Hex.js.map +1 -1
- package/dist/esm/components/Assets/Logos/Hudi.js.map +1 -1
- package/dist/esm/components/Assets/Logos/Iceberg.js.map +1 -1
- package/dist/esm/components/Assets/Logos/Jdbc.js.map +1 -1
- package/dist/esm/components/Assets/Logos/Kafka.js.map +1 -1
- package/dist/esm/components/Assets/Logos/Kubernetes.js.map +1 -1
- package/dist/esm/components/Assets/Logos/Lakekeeper.js.map +1 -1
- package/dist/esm/components/Assets/Logos/Mariadb.js.map +1 -1
- package/dist/esm/components/Assets/Logos/Metabase.js.map +1 -1
- package/dist/esm/components/Assets/Logos/Microsoft.js.map +1 -1
- package/dist/esm/components/Assets/Logos/Mongodb.js.map +1 -1
- package/dist/esm/components/Assets/Logos/Mysql.js.map +1 -1
- package/dist/esm/components/Assets/Logos/Neondb.js.map +1 -1
- package/dist/esm/components/Assets/Logos/Nessie.js.map +1 -1
- package/dist/esm/components/Assets/Logos/Nodejs.js.map +1 -1
- package/dist/esm/components/Assets/Logos/OVH.js.map +1 -1
- package/dist/esm/components/Assets/Logos/Onelake.js.map +1 -1
- package/dist/esm/components/Assets/Logos/Planetscale.js.map +1 -1
- package/dist/esm/components/Assets/Logos/Polaris.js.map +1 -1
- package/dist/esm/components/Assets/Logos/Postgres.js.map +1 -1
- package/dist/esm/components/Assets/Logos/Prequel.js.map +1 -1
- package/dist/esm/components/Assets/Logos/Python.js.map +1 -1
- package/dist/esm/components/Assets/Logos/Redpanda.js.map +1 -1
- package/dist/esm/components/Assets/Logos/Rust.js.map +1 -1
- package/dist/esm/components/Assets/Logos/Snowflake.js.map +1 -1
- package/dist/esm/components/Assets/Logos/Supabase.js.map +1 -1
- package/dist/esm/components/Assets/Logos/Superset.js.map +1 -1
- package/dist/esm/components/Assets/Logos/Tableau.js.map +1 -1
- package/dist/esm/components/Assets/Logos/Tigerdata.js.map +1 -1
- package/dist/esm/components/Assets/Logos/Upstash.js.map +1 -1
- package/dist/esm/components/Assets/Logos/Vector.js.map +1 -1
- package/dist/esm/components/Assets/Logos/Warpstream.js.map +1 -1
- package/dist/esm/components/Assets/Logos/system/Logo.js.map +1 -1
- package/dist/esm/components/Assets/Logos/system/LogosDark.js.map +1 -1
- package/dist/esm/components/Assets/Logos/system/LogosLight.js.map +1 -1
- package/dist/esm/components/Assets/Payments/Amex.js.map +1 -1
- package/dist/esm/components/Assets/Payments/Mastercard.js.map +1 -1
- package/dist/esm/components/Assets/Payments/Paypal.js.map +1 -1
- package/dist/esm/components/Assets/Payments/Visa.js.map +1 -1
- package/dist/esm/components/Assets/Payments/system/Payment.js.map +1 -1
- package/dist/esm/components/Assets/Payments/system/PaymentsDark.js.map +1 -1
- package/dist/esm/components/Assets/Payments/system/PaymentsLight.js.map +1 -1
- package/dist/esm/components/Assets/config.js.map +1 -1
- package/dist/esm/components/AutoComplete/AutoComplete.module.css.js.map +1 -1
- package/dist/esm/components/AutoComplete/OptionContext.js.map +1 -1
- package/dist/esm/components/AutoComplete/index.js +4 -4
- package/dist/esm/components/AutoComplete/index.js.map +1 -1
- package/dist/esm/components/AutoComplete/useOption.js.map +1 -1
- package/dist/esm/components/Avatar/Avatar.module.css.js.map +1 -1
- package/dist/esm/components/Avatar/index.js.map +1 -1
- package/dist/esm/components/Badge/Badge.module.css.js.map +1 -1
- package/dist/esm/components/Badge/index.js.map +1 -1
- package/dist/esm/components/BigStat/BigStat.module.css.js.map +1 -1
- package/dist/esm/components/BigStat/index.js.map +1 -1
- package/dist/esm/components/Button/BaseButton.js.map +1 -1
- package/dist/esm/components/Button/BaseButton.module.css.js.map +1 -1
- package/dist/esm/components/Button/Button.module.css.js.map +1 -1
- package/dist/esm/components/Button/index.js.map +1 -1
- package/dist/esm/components/ButtonGroup/ButtonGroup.module.css.js.map +1 -1
- package/dist/esm/components/ButtonGroup/index.js +0 -1
- package/dist/esm/components/ButtonGroup/index.js.map +1 -1
- package/dist/esm/components/CardHorizontal/CardHorizontal.module.css.js.map +1 -1
- package/dist/esm/components/CardHorizontal/index.js +3 -2
- package/dist/esm/components/CardHorizontal/index.js.map +1 -1
- package/dist/esm/components/CardPrimary/CardPrimary.module.css.js.map +1 -1
- package/dist/esm/components/CardPrimary/CardPrimaryTopBadge.js.map +1 -1
- package/dist/esm/components/CardPrimary/index.js +4 -3
- package/dist/esm/components/CardPrimary/index.js.map +1 -1
- package/dist/esm/components/CardPrimary/withTopBadge.js.map +1 -1
- package/dist/esm/components/CardPromotion/CardPromotion.module.css.js.map +1 -1
- package/dist/esm/components/CardPromotion/index.js.map +1 -1
- package/dist/esm/components/CardSecondary/CardSecondary.module.css.js.map +1 -1
- package/dist/esm/components/CardSecondary/index.js.map +1 -1
- package/dist/esm/components/Checkbox/Checkbox.module.css.js.map +1 -1
- package/dist/esm/components/Checkbox/index.js.map +1 -1
- package/dist/esm/components/CheckboxMultiSelect/index.js.map +1 -1
- package/dist/esm/components/CodeBlock/CodeBlock.module.css.js.map +1 -1
- package/dist/esm/components/CodeBlock/InlineCodeBlock.js.map +1 -1
- package/dist/esm/components/CodeBlock/InlineCodeBlock.module.css.js.map +1 -1
- package/dist/esm/components/CodeBlock/index.js.map +1 -1
- package/dist/esm/components/CodeBlock/useColorStyle.js.map +1 -1
- package/dist/esm/components/Collapsible/Collapsible.module.css.js.map +1 -1
- package/dist/esm/components/Collapsible/IconWrapper.js.map +1 -1
- package/dist/esm/components/Collapsible/index.js.map +1 -1
- package/dist/esm/components/ConfirmationDialog/ConfirmationDialog.module.css.js.map +1 -1
- package/dist/esm/components/ConfirmationDialog/index.js.map +1 -1
- package/dist/esm/components/Container/Container.module.css.js.map +1 -1
- package/dist/esm/components/Container/index.js.map +1 -1
- package/dist/esm/components/ContextMenu/ContextMenu.module.css.js.map +1 -1
- package/dist/esm/components/ContextMenu/index.js +1 -1
- package/dist/esm/components/ContextMenu/index.js.map +1 -1
- package/dist/esm/components/CrossButton/CrossButton.module.css.js.map +1 -1
- package/dist/esm/components/CrossButton/index.js.map +1 -1
- package/dist/esm/components/DateDetails/index.js.map +1 -1
- package/dist/esm/components/DatePicker/Common.js.map +1 -1
- package/dist/esm/components/DatePicker/Common.module.css.js.map +1 -1
- package/dist/esm/components/DatePicker/DatePicker.module.css.js.map +1 -1
- package/dist/esm/components/DatePicker/DateRangePicker.js.map +1 -1
- package/dist/esm/components/DatePicker/DateRangePicker.module.css.js.map +1 -1
- package/dist/esm/components/DatePicker/DateTimeRangePicker.js.map +1 -1
- package/dist/esm/components/DatePicker/DateTimeRangePicker.module.css.js.map +1 -1
- package/dist/esm/components/DatePicker/index.js +4 -4
- package/dist/esm/components/DatePicker/index.js.map +1 -1
- package/dist/esm/components/DatePicker/utils.js.map +1 -1
- package/dist/esm/components/Dialog/Dialog.module.css.js.map +1 -1
- package/dist/esm/components/Dialog/index.js.map +1 -1
- package/dist/esm/components/Dropdown/Dropdown.module.css.js.map +1 -1
- package/dist/esm/components/Dropdown/index.js +12 -11
- package/dist/esm/components/Dropdown/index.js.map +1 -1
- package/dist/esm/components/EllipsisContent/EllipsisContent.module.css.js.map +1 -1
- package/dist/esm/components/EllipsisContent/index.js.map +1 -1
- package/dist/esm/components/EmptyButton/EmptyButton.module.css.js.map +1 -1
- package/dist/esm/components/EmptyButton/index.js.map +1 -1
- package/dist/esm/components/FileTabs/FileTabs.module.css.js.map +1 -1
- package/dist/esm/components/FileTabs/index.js +1 -1
- package/dist/esm/components/FileTabs/index.js.map +1 -1
- package/dist/esm/components/FileUpload/FileMultiUpload.js.map +1 -1
- package/dist/esm/components/FileUpload/FileMultiUpload.module.css.js.map +1 -1
- package/dist/esm/components/FileUpload/FileUploadArea.js +76 -73
- package/dist/esm/components/FileUpload/FileUploadArea.js.map +1 -1
- package/dist/esm/components/FileUpload/FileUploadArea.module.css.js.map +1 -1
- package/dist/esm/components/FileUpload/FileUploadItem.js.map +1 -1
- package/dist/esm/components/FileUpload/FileUploadItem.module.css.js.map +1 -1
- package/dist/esm/components/FileUpload/index.js.map +1 -1
- package/dist/esm/components/FileUpload/useDragAndDrop.js.map +1 -1
- package/dist/esm/components/Flyout/Flyout.module.css.js.map +1 -1
- package/dist/esm/components/Flyout/index.js.map +1 -1
- package/dist/esm/components/FormContainer/Error.js.map +1 -1
- package/dist/esm/components/FormContainer/Error.module.css.js.map +1 -1
- package/dist/esm/components/FormContainer/FormElementContainer.js.map +1 -1
- package/dist/esm/components/FormContainer/FormElementContainer.module.css.js.map +1 -1
- package/dist/esm/components/FormContainer/FormRoot.js.map +1 -1
- package/dist/esm/components/FormContainer/FormRoot.module.css.js.map +1 -1
- package/dist/esm/components/FormContainer/index.js.map +1 -1
- package/dist/esm/components/GenericLabel/GenericLabel.module.css.js.map +1 -1
- package/dist/esm/components/GenericLabel/index.js.map +1 -1
- package/dist/esm/components/GenericMenu/GenericMenu.css +7 -6
- package/dist/esm/components/GenericMenu/GenericMenu.module.css.js.map +1 -1
- package/dist/esm/components/GenericMenu/index.js.map +1 -1
- package/dist/esm/components/Grid/Cell.js.map +1 -1
- package/dist/esm/components/Grid/ColumnResizer.js +32 -29
- package/dist/esm/components/Grid/ColumnResizer.js.map +1 -1
- package/dist/esm/components/Grid/ColumnResizer.module.css.js.map +1 -1
- package/dist/esm/components/Grid/Grid.module.css.js.map +1 -1
- package/dist/esm/components/Grid/Header.js.map +1 -1
- package/dist/esm/components/Grid/Header.module.css.js.map +1 -1
- package/dist/esm/components/Grid/RowNumberColumn.js.map +1 -1
- package/dist/esm/components/Grid/RowNumberColumn.module.css.js.map +1 -1
- package/dist/esm/components/Grid/StyledCell.js.map +1 -1
- package/dist/esm/components/Grid/StyledCell.module.css.js.map +1 -1
- package/dist/esm/components/Grid/copyGridElements.js.map +1 -1
- package/dist/esm/components/Grid/index.js +1 -1
- package/dist/esm/components/Grid/index.js.map +1 -1
- package/dist/esm/components/Grid/useColumns.js.map +1 -1
- package/dist/esm/components/Grid/useResizingState.js.map +1 -1
- package/dist/esm/components/Grid/useSelectionActions.js.map +1 -1
- package/dist/esm/components/GridContainer/GridContainer.module.css.js.map +1 -1
- package/dist/esm/components/GridContainer/index.js.map +1 -1
- package/dist/esm/components/HoverCard/HoverCard.module.css.js.map +1 -1
- package/dist/esm/components/HoverCard/index.js.map +1 -1
- package/dist/esm/components/Icon/Icon.module.css.js.map +1 -1
- package/dist/esm/components/Icon/IconCommon.js.map +1 -1
- package/dist/esm/components/Icon/SvgImageElement.js.map +1 -1
- package/dist/esm/components/Icon/index.js.map +1 -1
- package/dist/esm/components/IconButton/IconButton.module.css.js.map +1 -1
- package/dist/esm/components/IconButton/index.js +0 -1
- package/dist/esm/components/IconButton/index.js.map +1 -1
- package/dist/esm/components/IconWrapper/index.js +1 -2
- package/dist/esm/components/IconWrapper/index.js.map +1 -1
- package/dist/esm/components/InputWrapper/InputWrapper.module.css.js.map +1 -1
- package/dist/esm/components/InputWrapper/index.js.map +1 -1
- package/dist/esm/components/Label/Label.module.css.js.map +1 -1
- package/dist/esm/components/Label/index.js.map +1 -1
- package/dist/esm/components/Link/Link.module.css.js.map +1 -1
- package/dist/esm/components/Link/index.js.map +1 -1
- package/dist/esm/components/MiddleTruncator/MiddleTruncator.module.css.js.map +1 -1
- package/dist/esm/components/MiddleTruncator/index.js.map +1 -1
- package/dist/esm/components/MultiAccordion/MultiAccordion.module.css.js.map +1 -1
- package/dist/esm/components/MultiAccordion/index.js.map +1 -1
- package/dist/esm/components/MultiSelect/index.js.map +1 -1
- package/dist/esm/components/NumberField/index.js.map +1 -1
- package/dist/esm/components/Pagination/Pagination.module.css.js.map +1 -1
- package/dist/esm/components/Pagination/index.js.map +1 -1
- package/dist/esm/components/Panel/Panel.module.css.js.map +1 -1
- package/dist/esm/components/Panel/index.js.map +1 -1
- package/dist/esm/components/PasswordField/index.js.map +1 -1
- package/dist/esm/components/Popover/Popover.module.css.js.map +1 -1
- package/dist/esm/components/Popover/index.js.map +1 -1
- package/dist/esm/components/ProgressBar/ProgressBar.module.css.js.map +1 -1
- package/dist/esm/components/ProgressBar/index.js +2 -1
- package/dist/esm/components/ProgressBar/index.js.map +1 -1
- package/dist/esm/components/RadioGroup/RadioGroup.module.css.js.map +1 -1
- package/dist/esm/components/RadioGroup/index.js.map +1 -1
- package/dist/esm/components/SearchField/index.js.map +1 -1
- package/dist/esm/components/Select/MultiSelectValue.js.map +1 -1
- package/dist/esm/components/Select/MultiSelectValue.module.css.js.map +1 -1
- package/dist/esm/components/Select/SingleSelectValue.js +0 -1
- package/dist/esm/components/Select/SingleSelectValue.js.map +1 -1
- package/dist/esm/components/Select/SingleSelectValue.module.css.js.map +1 -1
- package/dist/esm/components/Select/common/InternalSelect.js +1 -3
- package/dist/esm/components/Select/common/InternalSelect.js.map +1 -1
- package/dist/esm/components/Select/common/OptionContext.js.map +1 -1
- package/dist/esm/components/Select/common/SelectComponents.js.map +1 -1
- package/dist/esm/components/Select/common/SelectComponents.module.css.js.map +1 -1
- package/dist/esm/components/Select/common/useOption.js.map +1 -1
- package/dist/esm/components/Select/index.js.map +1 -1
- package/dist/esm/components/Separator/Separator.module.css.js.map +1 -1
- package/dist/esm/components/Separator/index.js.map +1 -1
- package/dist/esm/components/SidebarCollapsibleItem/index.js.map +1 -1
- package/dist/esm/components/SidebarCollapsibleTitle/index.js.map +1 -1
- package/dist/esm/components/SidebarNavigationItem/SidebarNavigationItem.module.css.js.map +1 -1
- package/dist/esm/components/SidebarNavigationItem/index.js.map +1 -1
- package/dist/esm/components/SidebarNavigationTitle/SidebarNavigationTitle.module.css.js.map +1 -1
- package/dist/esm/components/SidebarNavigationTitle/index.js.map +1 -1
- package/dist/esm/components/Spacer/Spacer.module.css.js.map +1 -1
- package/dist/esm/components/Spacer/index.js.map +1 -1
- package/dist/esm/components/SplitButton/SplitButton.module.css.js.map +1 -1
- package/dist/esm/components/SplitButton/index.js.map +1 -1
- package/dist/esm/components/Switch/Switch.module.css.js.map +1 -1
- package/dist/esm/components/Switch/index.js.map +1 -1
- package/dist/esm/components/Table/Table.module.css.js.map +1 -1
- package/dist/esm/components/Table/index.js +73 -61
- package/dist/esm/components/Table/index.js.map +1 -1
- package/dist/esm/components/Tabs/Tabs.module.css.js.map +1 -1
- package/dist/esm/components/Tabs/index.js.map +1 -1
- package/dist/esm/components/Text/Text.module.css.js.map +1 -1
- package/dist/esm/components/Text/index.js.map +1 -1
- package/dist/esm/components/TextAreaField/index.js.map +1 -1
- package/dist/esm/components/TextField/index.js.map +1 -1
- package/dist/esm/components/Title/Title.module.css.js.map +1 -1
- package/dist/esm/components/Title/index.js.map +1 -1
- package/dist/esm/components/Toast/Toast.module.css.js.map +1 -1
- package/dist/esm/components/Toast/index.js.map +1 -1
- package/dist/esm/components/Toast/toastEmitter.js.map +1 -1
- package/dist/esm/components/Tooltip/Tooltip.module.css.js.map +1 -1
- package/dist/esm/components/Tooltip/index.js.map +1 -1
- package/dist/esm/components/VerticalStepper/VerticalStepper.module.css.js.map +1 -1
- package/dist/esm/components/VerticalStepper/index.js.map +1 -1
- package/dist/esm/hooks/internal/useInputModality.js.map +1 -1
- package/dist/esm/hooks/internal/useUpdateEffect.js.map +1 -1
- package/dist/esm/hooks/useCUITheme.js.map +1 -1
- package/dist/esm/hooks/useInitialTheme.js.map +1 -1
- package/dist/esm/hooks/useToast.js.map +1 -1
- package/dist/esm/index.js +19 -19
- package/dist/esm/lib/EventEmitter.js.map +1 -1
- package/dist/esm/lib/cva.js.map +1 -1
- package/dist/esm/lib/getTextFromNodes.js.map +1 -1
- package/dist/esm/providers/ClickUIProvider.js.map +1 -1
- package/dist/esm/providers/PortalContext.js +1 -1
- package/dist/esm/providers/PortalContext.js.map +1 -1
- package/dist/esm/providers/PortalProvider.js.map +1 -1
- package/dist/esm/theme/InitCUIThemeScript/index.js +8 -7
- package/dist/esm/theme/InitCUIThemeScript/index.js.map +1 -1
- package/dist/esm/theme/ThemeContext.js.map +1 -1
- package/dist/esm/theme/styles/tokens-dark.css +2 -1
- package/dist/esm/theme/styles/tokens-light.css +2 -1
- package/dist/esm/theme/theme.config.json.js.map +1 -1
- package/dist/esm/theme/theme.core.js.map +1 -1
- package/dist/esm/theme/theme.utils.js.map +1 -1
- package/dist/esm/theme/tokens/variables.dark.js +226 -226
- package/dist/esm/theme/tokens/variables.dark.js.map +1 -1
- package/dist/esm/theme/tokens/variables.light.js +226 -226
- package/dist/esm/theme/tokens/variables.light.js.map +1 -1
- package/dist/esm/utils/date.js.map +1 -1
- package/dist/esm/utils/dom.js +4 -7
- package/dist/esm/utils/dom.js.map +1 -1
- package/dist/esm/utils/file.js.map +1 -1
- package/dist/esm/utils/localStorage.js.map +1 -1
- package/dist/esm/utils/mergeRefs.js.map +1 -1
- package/dist/esm/utils/url.js +19 -0
- package/dist/esm/utils/url.js.map +1 -0
- package/dist/types/components/Assets/Icons/Grid-Dots.d.ts +3 -0
- package/dist/types/components/Assets/Icons/system/types.d.ts +1 -1
- package/dist/types/components/Dropdown/Dropdown.d.ts +2 -2
- package/dist/types/components/Dropdown/Dropdown.types.d.ts +13 -1
- package/dist/types/components/FileTabs/FileTabs.d.ts +2 -35
- package/dist/types/components/FileTabs/FileTabs.types.d.ts +23 -17
- package/dist/types/components/FileUpload/FileUpload.d.ts +1 -14
- package/dist/types/components/FileUpload/FileUpload.types.d.ts +1 -0
- package/dist/types/components/GridContainer/GridContainer.d.ts +1 -56
- package/dist/types/components/GridContainer/GridContainer.types.d.ts +13 -0
- package/dist/types/components/HoverCard/HoverCard.d.ts +1 -7
- package/dist/types/components/IconWrapper/IconWrapper.d.ts +1 -1
- package/dist/types/components/IconWrapper/IconWrapper.types.d.ts +0 -1
- package/dist/types/components/Link/Link.d.ts +2 -17
- package/dist/types/components/Link/Link.types.d.ts +3 -0
- package/dist/types/components/MultiAccordion/MultiAccordion.d.ts +4 -27
- package/dist/types/components/MultiAccordion/MultiAccordion.types.d.ts +7 -1
- package/dist/types/components/Pagination/Pagination.d.ts +2 -30
- package/dist/types/components/Pagination/Pagination.types.d.ts +4 -0
- package/dist/types/components/ProgressBar/ProgressBar.d.ts +1 -1
- package/dist/types/components/RadioGroup/RadioGroup.d.ts +1 -22
- package/dist/types/components/RadioGroup/RadioGroup.types.d.ts +9 -2
- package/dist/types/components/Toast/Toast.d.ts +1 -5
- package/dist/types/components/Toast/Toast.types.d.ts +2 -2
- package/dist/types/providers/ClickUIProvider.d.ts +1 -1
- package/dist/types/utils/dom.d.ts +1 -1
- package/dist/types/utils/url.d.ts +20 -0
- package/package.json +9 -7
- package/dist/types/theme/themes.d.ts +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateTimeRangePicker.cjs","sources":["../../../../src/components/DatePicker/DateTimeRangePicker.tsx"],"sourcesContent":["import {\n ComponentProps,\n Dispatch,\n forwardRef,\n KeyboardEvent,\n MouseEvent,\n ReactNode,\n SetStateAction,\n useCallback,\n useEffect,\n useLayoutEffect,\n useRef,\n useState,\n} from 'react';\nimport { isSameDate, UseCalendarOptions } from '@h6s/calendar';\nimport { Dropdown } from '../Dropdown/Dropdown';\nimport {\n Body,\n CalendarRenderer,\n DateTimeRangePickerInput,\n DateTableCell,\n StyledDropdownItem,\n} from './Common';\nimport { Container } from '../Container/Container';\nimport { Panel } from '../Panel/Panel';\nimport { Icon } from '../Icon/Icon';\nimport {\n DateRangeListItem,\n Meridiem,\n Timezone,\n areDatesWithinMaxRange,\n isDateRangeValid,\n isDateRangeWithinRange,\n shiftFromTimezone,\n shiftToTimezone,\n} from './utils';\nimport { dayjs, Dayjs } from '@/utils/date';\nimport { Tabs } from '../Tabs/Tabs';\nimport { TextField } from '@/components/TextField';\nimport { ButtonGroup } from '../ButtonGroup/ButtonGroup';\nimport { Label } from '../Label/Label';\nimport { Text } from '../Text';\nimport { cn, cva } from '@/lib/cva';\nimport styles from './DateTimeRangePicker.module.css';\n\nconst calendarFullWidth = '258px';\n\nconst PredefinedCalendarContainer = ({\n className,\n children,\n gap,\n orientation,\n padding,\n}: ComponentProps<typeof Panel>) => (\n <Panel\n gap={gap}\n orientation={orientation}\n padding={padding}\n className={cn(styles['predefined-calendar-container'], className)}\n >\n {children}\n </Panel>\n);\n\nconst PredefinedTimesContainer = ({\n className,\n children,\n isResponsive,\n orientation,\n 'data-testid': dataTestId,\n}: ComponentProps<typeof Container> & { 'data-testid'?: string }) => (\n <Container\n isResponsive={isResponsive}\n orientation={orientation}\n data-testid={dataTestId}\n className={cn(styles['predefined-times-container'], className)}\n >\n {children}\n </Container>\n);\n\ntype OpenDirection = 'left' | 'right';\n\nconst calendarRendererContainerVariants = cva(styles['calendar-renderer-container'], {\n variants: {\n openDirection: {\n left: styles['calendar-renderer-container_left'],\n right: styles['calendar-renderer-container_right'],\n },\n },\n defaultVariants: { openDirection: 'right' },\n});\n\nconst CalendarRendererContainer = forwardRef<\n HTMLDivElement,\n { openDirection?: OpenDirection; children: ReactNode }\n>(({ openDirection, children }, ref) => (\n <div\n ref={ref}\n className={calendarRendererContainerVariants({ openDirection })}\n >\n {children}\n </div>\n));\nCalendarRendererContainer.displayName = 'CalendarRendererContainer';\n\nconst NoOverflowDropdownContent = ({\n className,\n children,\n align,\n responsivePositioning,\n}: {\n className?: string;\n children?: ReactNode;\n align?: 'start' | 'center' | 'end';\n responsivePositioning?: boolean;\n}) => (\n <Dropdown.Content\n align={align}\n responsivePositioning={responsivePositioning}\n className={cn(styles['no-overflow-dropdown-content'], className)}\n >\n {children}\n </Dropdown.Content>\n);\n\nconst StyledCalendarRenderer = ({\n className,\n children,\n calendarOptions,\n timezone,\n}: ComponentProps<typeof CalendarRenderer>) => (\n <CalendarRenderer\n calendarOptions={calendarOptions}\n timezone={timezone}\n className={cn(styles['styled-calendar-renderer'], className)}\n >\n {children}\n </CalendarRenderer>\n);\n\nconst BottomPaddingTabs = ({\n className,\n children,\n onValueChange,\n value,\n}: ComponentProps<typeof Tabs>) => (\n <Tabs\n onValueChange={onValueChange}\n value={value}\n className={cn(styles['bottom-padding-tabs'], className)}\n >\n {children}\n </Tabs>\n);\n\nconst StyledTriggerList = ({\n className,\n children,\n}: ComponentProps<typeof Tabs.TriggersList>) => (\n <Tabs.TriggersList className={cn(styles['styled-trigger-list'], className)}>\n {children}\n </Tabs.TriggersList>\n);\n\nconst ScrollableContainer = ({\n className,\n children,\n orientation,\n}: ComponentProps<typeof Container>) => (\n <Container\n orientation={orientation}\n className={cn(styles['scrollable-container'], className)}\n >\n {children}\n </Container>\n);\n\nconst TimeInputContainer = ({\n className,\n children,\n gap,\n padding,\n maxWidth,\n orientation,\n justifyContent,\n}: ComponentProps<typeof Container>) => (\n <Container\n gap={gap}\n padding={padding}\n maxWidth={maxWidth}\n orientation={orientation}\n justifyContent={justifyContent}\n className={cn(styles['time-input-container'], className)}\n >\n {children}\n </Container>\n);\n\nconst dateRangeTableCellVariants = cva(undefined, {\n variants: {\n showRangeIndicator: { true: styles['date-range-table-cell_indicator'] },\n },\n});\n\nconst DateRangeTableCell = ({\n shouldShowRangeIndicator,\n className,\n children,\n isCurrentMonth,\n isDisabled,\n isSelected,\n isPresent,\n onClick,\n onMouseEnter,\n onMouseLeave,\n}: ComponentProps<typeof DateTableCell> & {\n shouldShowRangeIndicator?: boolean;\n}) => (\n <DateTableCell\n isCurrentMonth={isCurrentMonth}\n isDisabled={isDisabled}\n isSelected={isSelected}\n isPresent={isPresent}\n onClick={onClick}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n className={cn(\n dateRangeTableCellVariants({ showRangeIndicator: shouldShowRangeIndicator }),\n className\n )}\n >\n {children}\n </DateTableCell>\n);\n\ntype CalendarType = 'startDate' | 'endDate';\n\ntype SetSelectedDate = (selectedDate: Date, calendarType: CalendarType) => void;\n\ntype SetDate = (date: Date) => void;\n\ninterface CalendarProps {\n calendarBody: Body;\n calendarType: CalendarType;\n futureDatesDisabled: boolean;\n futureStartDatesDisabled: boolean;\n maxRangeLength: number;\n setSelectedDate: SetSelectedDate;\n startDate?: Date;\n endDate?: Date;\n timezone: Timezone;\n}\n\nconst Calendar = ({\n calendarBody,\n calendarType,\n futureDatesDisabled,\n futureStartDatesDisabled,\n maxRangeLength,\n setSelectedDate,\n startDate,\n endDate,\n timezone,\n}: CalendarProps) => {\n const [hoveredDate, setHoveredDate] = useState<Date>();\n\n const today = shiftToTimezone(new Date(), timezone);\n const shiftedStart = startDate ? shiftToTimezone(startDate, timezone) : undefined;\n const shiftedEnd = endDate ? shiftToTimezone(endDate, timezone) : undefined;\n\n const handleMouseOut = (): void => {\n setHoveredDate(undefined);\n };\n\n return calendarBody.value.map(({ key: weekKey, value: week }) => {\n return (\n <tr key={weekKey}>\n {week.map(({ date, isCurrentMonth, key: dayKey, value: fullDate }) => {\n const isSelected =\n (shiftedStart && isSameDate(shiftedStart, fullDate)) ||\n (shiftedEnd && isSameDate(shiftedEnd, fullDate));\n\n const isCurrentDate = isSameDate(today, fullDate);\n const isBetweenStartAndEndDates = Boolean(\n shiftedStart && shiftedEnd && fullDate > shiftedStart && fullDate < shiftedEnd\n );\n\n let isDisabled = false;\n if (futureDatesDisabled && fullDate > today) {\n isDisabled = true;\n }\n\n if (\n futureStartDatesDisabled &&\n calendarType === 'startDate' &&\n fullDate > today\n ) {\n isDisabled = true;\n }\n\n if (\n maxRangeLength > 1 &&\n shiftedStart &&\n !areDatesWithinMaxRange(shiftedStart, fullDate, maxRangeLength)\n ) {\n isDisabled = true;\n }\n\n // start date is selected, end date is not; disable anything before start date\n if (\n calendarType === 'endDate' &&\n !shiftedEnd &&\n shiftedStart &&\n shiftedStart > fullDate &&\n !isSameDate(shiftedStart, fullDate)\n ) {\n isDisabled = true;\n }\n\n // start date isn't selected, but end date is; disable anything after end date\n if (\n calendarType === 'startDate' &&\n !shiftedStart &&\n shiftedEnd &&\n fullDate > shiftedEnd\n ) {\n isDisabled = true;\n }\n\n const startDateSelectedAndIsSelectingEndDate =\n calendarType === 'endDate' &&\n !shiftedEnd &&\n Boolean(\n shiftedStart &&\n hoveredDate &&\n fullDate > shiftedStart &&\n fullDate < hoveredDate\n );\n\n const endDateSelectedAndIsSelectingStartDate =\n calendarType === 'startDate' &&\n !shiftedStart &&\n Boolean(\n shiftedEnd && hoveredDate && fullDate < shiftedEnd && fullDate > hoveredDate\n );\n\n const shouldShowRangeIndicator =\n startDateSelectedAndIsSelectingEndDate ||\n endDateSelectedAndIsSelectingStartDate;\n\n const handleMouseEnter = () => {\n setHoveredDate(fullDate);\n };\n\n const handleClick = () => {\n if (isDisabled) {\n return false;\n }\n\n const originalFullDate = shiftFromTimezone(fullDate, timezone);\n\n // If the user selects a start date and changes the start date\n // use any hours, minutes, seconds they've already set\n if (calendarType === 'startDate' && startDate) {\n if (timezone === 'UTC') {\n originalFullDate.setUTCHours(startDate.getUTCHours());\n originalFullDate.setUTCMinutes(startDate.getUTCMinutes());\n originalFullDate.setUTCSeconds(startDate.getUTCSeconds());\n } else {\n originalFullDate.setHours(startDate.getHours());\n originalFullDate.setMinutes(startDate.getMinutes());\n originalFullDate.setSeconds(startDate.getSeconds());\n }\n }\n\n // If the user selects an end date and changes the end date\n // use any hours, minutes, seconds they've already set\n if (calendarType === 'endDate' && endDate) {\n if (timezone === 'UTC') {\n originalFullDate.setUTCHours(endDate.getUTCHours());\n originalFullDate.setUTCMinutes(endDate.getUTCMinutes());\n originalFullDate.setUTCSeconds(endDate.getUTCSeconds());\n } else {\n originalFullDate.setHours(endDate.getHours());\n originalFullDate.setMinutes(endDate.getMinutes());\n originalFullDate.setSeconds(endDate.getSeconds());\n }\n }\n\n setSelectedDate(originalFullDate, calendarType);\n };\n\n return (\n <DateRangeTableCell\n shouldShowRangeIndicator={\n shouldShowRangeIndicator || isBetweenStartAndEndDates\n }\n isCurrentMonth={isCurrentMonth}\n isDisabled={isDisabled}\n isSelected={Boolean(isSelected)}\n isPresent={isCurrentDate}\n key={dayKey}\n onClick={handleClick}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseOut}\n >\n {date}\n </DateRangeTableCell>\n );\n })}\n </tr>\n );\n });\n};\n\ninterface PredefinedTimesProps {\n onSelectDateRange: (\n startDate: Date,\n endDate: Date,\n predefinedDateLabel?: string\n ) => void;\n predefinedTimesList: DateRangeListItem[];\n selectedEndDate: Date | undefined;\n selectedStartDate: Date | undefined;\n setEndDate: Dispatch<SetStateAction<Date | undefined>>;\n setStartDate: Dispatch<SetStateAction<Date | undefined>>;\n shouldShowCustomRange: boolean;\n showCustomDateRange: Dispatch<SetStateAction<boolean>>;\n timezone: Timezone;\n}\n\nconst PredefinedTimes = ({\n onSelectDateRange,\n predefinedTimesList,\n selectedEndDate,\n selectedStartDate,\n setEndDate,\n setStartDate,\n shouldShowCustomRange,\n showCustomDateRange,\n timezone,\n}: PredefinedTimesProps) => {\n const handleCustomTimePeriodClick = (event: MouseEvent) => {\n event.preventDefault();\n showCustomDateRange(!shouldShowCustomRange);\n };\n\n return (\n <PredefinedTimesContainer\n data-testid=\"predefined-times-list\"\n isResponsive={false}\n orientation=\"vertical\"\n >\n <ScrollableContainer orientation=\"vertical\">\n {predefinedTimesList.map(({ dateRange, label }) => {\n const { startDate, endDate } = dateRange;\n\n const handleItemClick = () => {\n setStartDate(startDate);\n setEndDate(endDate);\n onSelectDateRange(startDate, endDate, label);\n };\n\n const selectedRange =\n selectedStartDate && selectedEndDate\n ? { startDate: selectedStartDate, endDate: selectedEndDate }\n : undefined;\n\n const rangeIsSelected =\n selectedRange !== undefined &&\n isDateRangeWithinRange(selectedRange, dateRange, timezone);\n\n return (\n <StyledDropdownItem\n data-testid={`predefined-date-${startDate.getTime()}`}\n key={startDate.toISOString()}\n onClick={handleItemClick}\n >\n <Container\n data-selected={rangeIsSelected}\n data-testid={label}\n justifyContent=\"space-between\"\n orientation=\"horizontal\"\n >\n {label}\n {rangeIsSelected && <Icon name=\"check\" />}\n </Container>\n </StyledDropdownItem>\n );\n })}\n </ScrollableContainer>\n <StyledDropdownItem onClick={handleCustomTimePeriodClick}>\n <Container\n justifyContent=\"space-between\"\n orientation=\"horizontal\"\n >\n Custom time period <Icon name=\"chevron-right\" />\n </Container>\n </StyledDropdownItem>\n </PredefinedTimesContainer>\n );\n};\n\nconst parseTimeString = (\n timeString: string\n): { isValid: boolean; parsedDate?: Dayjs } => {\n if (!validTimeRegex.test(timeString)) {\n return { isValid: false };\n }\n\n const [hours, minutes, seconds] = timeString.split(':');\n\n const hoursAsNumber = parseInt(hours, 10);\n if (Number.isNaN(hoursAsNumber)) {\n return { isValid: false };\n }\n\n if (hoursAsNumber > 23 || hoursAsNumber < 0) {\n return { isValid: false };\n }\n\n let parsedDate;\n if (!minutes) {\n parsedDate = dayjs(hours, 'h');\n } else {\n const minutesAsNumber = parseInt(minutes, 10);\n if (Number.isNaN(minutesAsNumber)) {\n return { isValid: false };\n }\n\n if (minutesAsNumber > 59 || minutesAsNumber < 0) {\n return { isValid: false };\n }\n\n if (!seconds) {\n parsedDate = dayjs(`${hours}:${minutes}`, 'h:mm');\n } else {\n const secondsAsNumber = parseInt(seconds, 10);\n\n if (Number.isNaN(secondsAsNumber)) {\n return { isValid: false };\n }\n\n if (secondsAsNumber > 59 || secondsAsNumber < 0) {\n return { isValid: false };\n }\n\n parsedDate = dayjs(`${hours}:${minutes}:${seconds}`, 'h:mm:ss');\n }\n }\n\n if (!parsedDate.isValid()) {\n return { isValid: false };\n }\n\n return { isValid: true, parsedDate };\n};\n\nconst validTimeRegex = /^\\d{1,2}(:\\d{1,2}(:\\d{1,2})?)?$/;\n\ninterface TimeInputProps {\n date: Date | undefined;\n setDate: (date: Date) => void;\n shouldShowSeconds: boolean;\n timezone: Timezone;\n}\n\nconst TimeInput = ({ date, setDate, shouldShowSeconds, timezone }: TimeInputProps) => {\n let dayjsDate = timezone === 'UTC' ? dayjs.utc(date) : dayjs(date);\n\n if (!date) {\n dayjsDate = dayjsDate.hour(12).minute(0);\n }\n\n const formattedDate = shouldShowSeconds\n ? dayjsDate.format('hh:mm:ss')\n : dayjsDate.format('hh:mm');\n const [timeString, setTimeString] = useState<string>(formattedDate);\n const [dateIsValid, setDateIsValid] = useState<boolean>(true);\n const [meridiem, setMeridiem] = useState<Meridiem>();\n const isEnabled = Boolean(date);\n\n useEffect(() => {\n if (date) {\n setMeridiem(dayjsDate.format('a') as Meridiem);\n }\n }, [date, dayjsDate]);\n\n const handleTimeChange = useCallback(\n (newTimeString: string) => {\n setTimeString(newTimeString);\n\n if (!date) {\n return;\n }\n\n const trimmedTime = newTimeString.trim();\n if (!trimmedTime) {\n return;\n }\n\n const { isValid, parsedDate } = parseTimeString(trimmedTime);\n\n if (!isValid) {\n setDateIsValid(false);\n return;\n }\n\n if (!parsedDate) {\n setDateIsValid(false);\n return;\n }\n\n setDateIsValid(true);\n\n let hour = parsedDate.hour();\n\n // If the meridiem is set to am and the user enters a time greater than 12,\n // e.g. 18:00, it's a pretty clear indication they mean afternoon, so set the\n // meridiem to pm\n if (meridiem === 'am' && hour >= 12) {\n setMeridiem('pm');\n }\n // It's not as easy to infer that a user intended 8:00 to mean 08:00 when the meridiem\n // is set to pm, so don't change the meridiem in that case\n if (meridiem === 'pm' && hour < 12) {\n hour = parsedDate.hour() + 12;\n }\n\n const newDate = shouldShowSeconds\n ? dayjsDate\n .hour(hour)\n .minute(parsedDate.minute())\n .second(parsedDate.second())\n .toDate()\n : dayjsDate.hour(hour).minute(parsedDate.minute()).toDate();\n\n setDate(newDate);\n },\n [date, dayjsDate, meridiem, setDate, shouldShowSeconds]\n );\n\n const handleMeridiemChange = useCallback(\n (newMeridiem: string) => {\n setMeridiem(newMeridiem as Meridiem);\n\n if (newMeridiem === 'pm' && dayjsDate.hour() < 12) {\n const newDate = dayjsDate.hour(dayjsDate.hour() + 12).toDate();\n\n setDate(newDate);\n\n return;\n }\n\n if (newMeridiem === 'am' && dayjsDate.hour() >= 12) {\n const newDate = dayjsDate.hour(dayjsDate.hour() - 12).toDate();\n\n setDate(newDate);\n\n return;\n }\n },\n [dayjsDate, setDate]\n );\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'Enter') {\n const { isValid, parsedDate } = parseTimeString(timeString);\n\n if (!isValid) {\n return;\n }\n\n if (!parsedDate) {\n return;\n }\n\n const newDate = shouldShowSeconds\n ? dayjsDate\n .hour(parsedDate.hour())\n .minute(parsedDate.minute())\n .second(parsedDate.second())\n .toDate()\n : dayjsDate.hour(parsedDate.hour()).minute(parsedDate.minute()).toDate();\n\n setDate(newDate);\n }\n },\n [dayjsDate, setDate, shouldShowSeconds, timeString]\n );\n\n return (\n <TimeInputContainer\n gap=\"sm\"\n padding=\"xs\"\n maxWidth={`${calendarFullWidth}`}\n orientation=\"horizontal\"\n justifyContent=\"end\"\n >\n <Container maxWidth=\"8%\">\n <Label htmlFor=\"date-time-picker-time-input\">Time</Label>\n </Container>\n <Container\n justifyContent=\"space-evenly\"\n orientation=\"horizontal\"\n maxWidth=\"85%\"\n >\n <Container\n maxWidth=\"45%\"\n orientation=\"horizontal\"\n >\n <TextField\n data-testid=\"date-time-picker-time-input\"\n disabled={!isEnabled}\n error={dateIsValid ? null : true}\n id=\"date-time-picker-time-input\"\n onChange={handleTimeChange}\n onKeyDown={handleKeyDown}\n value={timeString}\n />\n </Container>\n <Container maxWidth=\"45%\">\n <ButtonGroup\n onClick={handleMeridiemChange}\n options={[\n {\n label: 'am',\n value: 'am',\n },\n {\n label: 'pm',\n value: 'pm',\n },\n ]}\n selected={meridiem}\n type=\"default\"\n />\n </Container>\n </Container>\n </TimeInputContainer>\n );\n};\n\nexport type Tab = 'startDate' | 'endDate';\n\ninterface TabbedCalendarProps {\n defaultActiveTab?: Tab;\n endDate: Date | undefined;\n futureDatesDisabled: boolean;\n futureStartDatesDisabled: boolean;\n maxRangeLength: number;\n setEndDate: SetDate;\n setSelectedDate: SetSelectedDate;\n setStartDate: SetDate;\n shouldShowSeconds: boolean;\n startDate: Date | undefined;\n timezone: Timezone;\n}\n\nconst TabbedCalendar = ({\n defaultActiveTab = 'startDate',\n endDate,\n futureDatesDisabled,\n futureStartDatesDisabled,\n maxRangeLength,\n setEndDate,\n setSelectedDate,\n setStartDate,\n shouldShowSeconds,\n startDate,\n timezone,\n}: TabbedCalendarProps) => {\n const [activeTab, setActiveTab] = useState<Tab>(defaultActiveTab);\n\n useEffect(() => {\n setActiveTab(defaultActiveTab);\n }, [defaultActiveTab]);\n\n const handleTabChange = useCallback((newTab: string) => {\n setActiveTab(newTab as Tab);\n }, []);\n\n const handleSetStartDate = useCallback(\n (startDate: Date) => {\n setStartDate(startDate);\n\n setSelectedDate(startDate, 'startDate');\n },\n [setSelectedDate, setStartDate]\n );\n\n const handleSetEndDate = useCallback(\n (endDate: Date) => {\n setEndDate(endDate);\n\n setSelectedDate(endDate, 'endDate');\n },\n [setEndDate, setSelectedDate]\n );\n\n const startDateCalendarOptions: UseCalendarOptions = {};\n const endDateCalendarOptions: UseCalendarOptions = {};\n\n // If a start date is selected, open the calendar to that date\n if (startDate) {\n startDateCalendarOptions.defaultDate = startDate;\n }\n\n // If an end date is selected, open the calendar to that date\n if (endDate) {\n endDateCalendarOptions.defaultDate = endDate;\n }\n\n const startDateIsAfterEndDate =\n startDate && endDate && !isDateRangeValid({ startDate, endDate });\n\n return (\n <BottomPaddingTabs\n onValueChange={handleTabChange}\n value={activeTab}\n >\n <StyledTriggerList>\n <Tabs.Trigger\n value=\"startDate\"\n data-testid=\"tabbed-calendar-trigger-start\"\n >\n Start date\n </Tabs.Trigger>\n <Tabs.Trigger\n value=\"endDate\"\n data-testid=\"tabbed-calendar-trigger-end\"\n >\n End date\n </Tabs.Trigger>\n </StyledTriggerList>\n <Tabs.Content value=\"startDate\">\n <StyledCalendarRenderer\n calendarOptions={startDateCalendarOptions}\n timezone={timezone}\n >\n {(body: Body) => (\n <Calendar\n calendarBody={body}\n calendarType=\"startDate\"\n endDate={endDate}\n futureDatesDisabled={futureDatesDisabled}\n futureStartDatesDisabled={futureStartDatesDisabled}\n maxRangeLength={maxRangeLength}\n setSelectedDate={setSelectedDate}\n startDate={startDate}\n timezone={timezone}\n />\n )}\n </StyledCalendarRenderer>\n <TimeInput\n date={startDate}\n setDate={handleSetStartDate}\n shouldShowSeconds={shouldShowSeconds}\n timezone={timezone}\n />\n </Tabs.Content>\n <Tabs.Content value=\"endDate\">\n <StyledCalendarRenderer\n calendarOptions={endDateCalendarOptions}\n timezone={timezone}\n >\n {(body: Body) => (\n <Calendar\n calendarBody={body}\n calendarType=\"endDate\"\n endDate={endDate}\n futureDatesDisabled={futureDatesDisabled}\n futureStartDatesDisabled={futureStartDatesDisabled}\n maxRangeLength={maxRangeLength}\n setSelectedDate={setSelectedDate}\n startDate={startDate}\n timezone={timezone}\n />\n )}\n </StyledCalendarRenderer>\n <TimeInput\n date={endDate}\n setDate={handleSetEndDate}\n shouldShowSeconds={shouldShowSeconds}\n timezone={timezone}\n />\n </Tabs.Content>\n {startDateIsAfterEndDate && (\n <Text\n align=\"center\"\n color=\"danger\"\n fillWidth\n >\n End date and time must be after start\n </Text>\n )}\n </BottomPaddingTabs>\n );\n};\n\nexport interface DateTimeRangePickerProps {\n closeOnDateRangeSelected?: boolean;\n defaultActiveTab?: Tab;\n disabled?: boolean;\n endDate?: Date;\n futureDatesDisabled?: boolean;\n futureStartDatesDisabled?: boolean;\n onSelectDateRange: (\n startDate: Date,\n endDate: Date,\n predefinedDateLabel?: string\n ) => void;\n openDirection?: OpenDirection;\n placeholder?: string;\n predefinedTimesList?: DateRangeListItem[];\n maxRangeLength?: number;\n responsivePositioning?: boolean;\n shouldFireIfInvalid?: boolean;\n shouldShowSeconds?: boolean;\n startDate?: Date;\n timezone?: Timezone;\n}\n\nexport const DateTimeRangePicker = ({\n closeOnDateRangeSelected = false,\n defaultActiveTab,\n disabled = false,\n endDate,\n futureDatesDisabled = false,\n futureStartDatesDisabled = false,\n maxRangeLength = -1,\n onSelectDateRange,\n openDirection = 'right',\n placeholder = 'start date – end date',\n predefinedTimesList,\n responsivePositioning = true,\n shouldFireIfInvalid = true,\n shouldShowSeconds,\n startDate,\n timezone = 'system',\n}: DateTimeRangePickerProps) => {\n const [isOpen, setIsOpen] = useState<boolean>(false);\n const [selectedStartDate, setSelectedStartDate] = useState<Date>();\n const [selectedEndDate, setSelectedEndDate] = useState<Date>();\n const [shouldShowCustomRange, setShouldShowCustomRange] = useState<boolean>(false);\n const [calendarOpenDirection, setCalendarOpenDirection] =\n useState<OpenDirection>(openDirection);\n const calendarContainerRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (!startDate) {\n return;\n }\n\n const startDateCopy = new Date(startDate);\n\n const hours =\n timezone === 'UTC' ? startDateCopy.getUTCHours() : startDateCopy.getHours();\n\n if (hours === 0) {\n if (timezone === 'UTC') {\n startDateCopy.setUTCHours(12);\n } else {\n startDateCopy.setHours(12);\n }\n }\n\n setSelectedStartDate(startDateCopy);\n }, [startDate, timezone]);\n\n useEffect(() => {\n if (!endDate) {\n return;\n }\n\n const endDateCopy = new Date(endDate);\n\n const hours = timezone === 'UTC' ? endDateCopy.getUTCHours() : endDateCopy.getHours();\n if (hours === 0) {\n if (timezone === 'UTC') {\n endDateCopy.setUTCHours(12);\n } else {\n endDateCopy.setHours(12);\n }\n }\n\n setSelectedEndDate(endDateCopy);\n }, [endDate, timezone]);\n\n useLayoutEffect(() => {\n if (shouldShowCustomRange && calendarContainerRef.current) {\n const rect = calendarContainerRef.current.getBoundingClientRect();\n\n if (rect.right > window.innerWidth) {\n setCalendarOpenDirection('left');\n }\n }\n }, [shouldShowCustomRange]);\n\n const closeDatePicker = useCallback((): void => {\n setIsOpen(false);\n setShouldShowCustomRange(false);\n setCalendarOpenDirection('right');\n }, []);\n\n const handleOpenChange = useCallback((isOpen: boolean): void => {\n setIsOpen(isOpen);\n\n if (!isOpen) {\n setShouldShowCustomRange(false);\n setCalendarOpenDirection('right');\n }\n }, []);\n\n const handleSelectDate = useCallback(\n (selectedDate: Date, calendarType: CalendarType): void => {\n const isMidnight =\n timezone === 'UTC'\n ? selectedDate.getUTCHours() === 0 &&\n selectedDate.getUTCMinutes() === 0 &&\n selectedDate.getUTCSeconds() === 0\n : selectedDate.getHours() === 0 &&\n selectedDate.getMinutes() === 0 &&\n selectedDate.getSeconds() === 0;\n\n if (isMidnight) {\n // set the time to 12 noon if time hasn't been set yet\n\n if (timezone === 'UTC') {\n selectedDate.setUTCHours(12);\n } else {\n selectedDate.setHours(12);\n }\n }\n\n if (calendarType === 'startDate') {\n setSelectedStartDate(selectedDate);\n\n if (selectedEndDate) {\n if (\n !shouldFireIfInvalid &&\n !isDateRangeValid({ startDate: selectedDate, endDate: selectedEndDate })\n ) {\n return;\n }\n\n onSelectDateRange(selectedDate, selectedEndDate);\n\n if (closeOnDateRangeSelected) {\n closeDatePicker();\n }\n }\n }\n\n if (calendarType === 'endDate') {\n setSelectedEndDate(selectedDate);\n\n if (selectedStartDate) {\n if (\n !shouldFireIfInvalid &&\n !isDateRangeValid({ startDate: selectedStartDate, endDate: selectedDate })\n ) {\n return;\n }\n\n onSelectDateRange(selectedStartDate, selectedDate);\n\n if (closeOnDateRangeSelected) {\n closeDatePicker();\n }\n }\n }\n },\n [\n closeDatePicker,\n closeOnDateRangeSelected,\n onSelectDateRange,\n selectedEndDate,\n selectedStartDate,\n shouldFireIfInvalid,\n timezone,\n ]\n );\n\n const onTriggerKeyDown = useCallback((e: KeyboardEvent<HTMLDivElement>) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n setIsOpen(true);\n }\n }, []);\n\n const shouldShowPredefinedTimes =\n predefinedTimesList !== undefined && predefinedTimesList.length > 0;\n\n return (\n <Dropdown\n onOpenChange={handleOpenChange}\n open={isOpen}\n >\n <Dropdown.Trigger\n disabled={disabled}\n onKeyDown={onTriggerKeyDown}\n >\n <DateTimeRangePickerInput\n data-testid=\"datepicker-input-container\"\n disabled={disabled}\n isActive={isOpen}\n placeholder={placeholder}\n selectedEndDate={selectedEndDate}\n selectedStartDate={selectedStartDate}\n shouldShowSeconds={shouldShowSeconds}\n timezone={timezone}\n />\n </Dropdown.Trigger>\n <NoOverflowDropdownContent\n align=\"start\"\n responsivePositioning={responsivePositioning}\n >\n <Container orientation=\"horizontal\">\n {shouldShowPredefinedTimes ? (\n <PredefinedCalendarContainer\n gap=\"none\"\n orientation=\"horizontal\"\n padding=\"none\"\n >\n <PredefinedTimes\n onSelectDateRange={onSelectDateRange}\n predefinedTimesList={predefinedTimesList}\n selectedEndDate={selectedEndDate}\n selectedStartDate={selectedStartDate}\n setEndDate={setSelectedEndDate}\n setStartDate={setSelectedStartDate}\n shouldShowCustomRange={shouldShowCustomRange}\n showCustomDateRange={setShouldShowCustomRange}\n timezone={timezone}\n />\n\n {shouldShowCustomRange && (\n <CalendarRendererContainer\n openDirection={calendarOpenDirection}\n ref={calendarContainerRef}\n >\n <TabbedCalendar\n defaultActiveTab={defaultActiveTab}\n endDate={selectedEndDate}\n futureDatesDisabled={futureDatesDisabled}\n futureStartDatesDisabled={futureStartDatesDisabled}\n maxRangeLength={maxRangeLength}\n setEndDate={setSelectedEndDate}\n setSelectedDate={handleSelectDate}\n setStartDate={setSelectedStartDate}\n shouldShowSeconds={Boolean(shouldShowSeconds)}\n startDate={selectedStartDate}\n timezone={timezone}\n />\n </CalendarRendererContainer>\n )}\n </PredefinedCalendarContainer>\n ) : (\n <>\n <TabbedCalendar\n defaultActiveTab={defaultActiveTab}\n endDate={selectedEndDate}\n futureDatesDisabled={futureDatesDisabled}\n futureStartDatesDisabled={futureStartDatesDisabled}\n maxRangeLength={maxRangeLength}\n setEndDate={setSelectedEndDate}\n setSelectedDate={handleSelectDate}\n setStartDate={setSelectedStartDate}\n shouldShowSeconds={Boolean(shouldShowSeconds)}\n startDate={selectedStartDate}\n timezone={timezone}\n />\n </>\n )}\n </Container>\n </NoOverflowDropdownContent>\n </Dropdown>\n );\n};\n"],"names":["jsx","Panel","cn","styles","Container","cva","forwardRef","Dropdown","CalendarRenderer","Tabs","DateTableCell","useState","shiftToTimezone","isSameDate","areDatesWithinMaxRange","shiftFromTimezone","jsxs","isDateRangeWithinRange","StyledDropdownItem","Icon","dayjs","useEffect","useCallback","Label","TextField","ButtonGroup","startDate","endDate","isDateRangeValid","Text","useRef","useLayoutEffect","isOpen","DateTimeRangePickerInput","Fragment"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DateTimeRangePicker.cjs","sources":["../../../../src/components/DatePicker/DateTimeRangePicker.tsx"],"sourcesContent":["import {\n ComponentProps,\n Dispatch,\n forwardRef,\n KeyboardEvent,\n MouseEvent,\n ReactNode,\n SetStateAction,\n useCallback,\n useEffect,\n useLayoutEffect,\n useRef,\n useState,\n} from 'react';\nimport { isSameDate, UseCalendarOptions } from '@h6s/calendar';\nimport { Dropdown } from '../Dropdown/Dropdown';\nimport {\n Body,\n CalendarRenderer,\n DateTimeRangePickerInput,\n DateTableCell,\n StyledDropdownItem,\n} from './Common';\nimport { Container } from '../Container/Container';\nimport { Panel } from '../Panel/Panel';\nimport { Icon } from '../Icon/Icon';\nimport {\n DateRangeListItem,\n Meridiem,\n Timezone,\n areDatesWithinMaxRange,\n isDateRangeValid,\n isDateRangeWithinRange,\n shiftFromTimezone,\n shiftToTimezone,\n} from './utils';\nimport { dayjs, Dayjs } from '@/utils/date';\nimport { Tabs } from '../Tabs/Tabs';\nimport { TextField } from '@/components/TextField';\nimport { ButtonGroup } from '../ButtonGroup/ButtonGroup';\nimport { Label } from '../Label/Label';\nimport { Text } from '../Text';\nimport { cn, cva } from '@/lib/cva';\nimport styles from './DateTimeRangePicker.module.css';\n\nconst calendarFullWidth = '258px';\n\nconst PredefinedCalendarContainer = ({\n className,\n children,\n gap,\n orientation,\n padding,\n}: ComponentProps<typeof Panel>) => (\n <Panel\n gap={gap}\n orientation={orientation}\n padding={padding}\n className={cn(styles['predefined-calendar-container'], className)}\n >\n {children}\n </Panel>\n);\n\nconst PredefinedTimesContainer = ({\n className,\n children,\n isResponsive,\n orientation,\n 'data-testid': dataTestId,\n}: ComponentProps<typeof Container> & { 'data-testid'?: string }) => (\n <Container\n isResponsive={isResponsive}\n orientation={orientation}\n data-testid={dataTestId}\n className={cn(styles['predefined-times-container'], className)}\n >\n {children}\n </Container>\n);\n\ntype OpenDirection = 'left' | 'right';\n\nconst calendarRendererContainerVariants = cva(styles['calendar-renderer-container'], {\n variants: {\n openDirection: {\n left: styles['calendar-renderer-container_left'],\n right: styles['calendar-renderer-container_right'],\n },\n },\n defaultVariants: { openDirection: 'right' },\n});\n\nconst CalendarRendererContainer = forwardRef<\n HTMLDivElement,\n { openDirection?: OpenDirection; children: ReactNode }\n>(({ openDirection, children }, ref) => (\n <div\n ref={ref}\n className={calendarRendererContainerVariants({ openDirection })}\n >\n {children}\n </div>\n));\nCalendarRendererContainer.displayName = 'CalendarRendererContainer';\n\nconst NoOverflowDropdownContent = ({\n className,\n children,\n align,\n responsivePositioning,\n}: {\n className?: string;\n children?: ReactNode;\n align?: 'start' | 'center' | 'end';\n responsivePositioning?: boolean;\n}) => (\n <Dropdown.Content\n align={align}\n responsivePositioning={responsivePositioning}\n className={cn(styles['no-overflow-dropdown-content'], className)}\n >\n {children}\n </Dropdown.Content>\n);\n\nconst StyledCalendarRenderer = ({\n className,\n children,\n calendarOptions,\n timezone,\n}: ComponentProps<typeof CalendarRenderer>) => (\n <CalendarRenderer\n calendarOptions={calendarOptions}\n timezone={timezone}\n className={cn(styles['styled-calendar-renderer'], className)}\n >\n {children}\n </CalendarRenderer>\n);\n\nconst BottomPaddingTabs = ({\n className,\n children,\n onValueChange,\n value,\n}: ComponentProps<typeof Tabs>) => (\n <Tabs\n onValueChange={onValueChange}\n value={value}\n className={cn(styles['bottom-padding-tabs'], className)}\n >\n {children}\n </Tabs>\n);\n\nconst StyledTriggerList = ({\n className,\n children,\n}: ComponentProps<typeof Tabs.TriggersList>) => (\n <Tabs.TriggersList className={cn(styles['styled-trigger-list'], className)}>\n {children}\n </Tabs.TriggersList>\n);\n\nconst ScrollableContainer = ({\n className,\n children,\n orientation,\n}: ComponentProps<typeof Container>) => (\n <Container\n orientation={orientation}\n className={cn(styles['scrollable-container'], className)}\n >\n {children}\n </Container>\n);\n\nconst TimeInputContainer = ({\n className,\n children,\n gap,\n padding,\n maxWidth,\n orientation,\n justifyContent,\n}: ComponentProps<typeof Container>) => (\n <Container\n gap={gap}\n padding={padding}\n maxWidth={maxWidth}\n orientation={orientation}\n justifyContent={justifyContent}\n className={cn(styles['time-input-container'], className)}\n >\n {children}\n </Container>\n);\n\nconst dateRangeTableCellVariants = cva(undefined, {\n variants: {\n showRangeIndicator: { true: styles['date-range-table-cell_indicator'] },\n },\n});\n\nconst DateRangeTableCell = ({\n shouldShowRangeIndicator,\n className,\n children,\n isCurrentMonth,\n isDisabled,\n isSelected,\n isPresent,\n onClick,\n onMouseEnter,\n onMouseLeave,\n}: ComponentProps<typeof DateTableCell> & {\n shouldShowRangeIndicator?: boolean;\n}) => (\n <DateTableCell\n isCurrentMonth={isCurrentMonth}\n isDisabled={isDisabled}\n isSelected={isSelected}\n isPresent={isPresent}\n onClick={onClick}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n className={cn(\n dateRangeTableCellVariants({ showRangeIndicator: shouldShowRangeIndicator }),\n className\n )}\n >\n {children}\n </DateTableCell>\n);\n\ntype CalendarType = 'startDate' | 'endDate';\n\ntype SetSelectedDate = (selectedDate: Date, calendarType: CalendarType) => void;\n\ntype SetDate = (date: Date) => void;\n\ninterface CalendarProps {\n calendarBody: Body;\n calendarType: CalendarType;\n futureDatesDisabled: boolean;\n futureStartDatesDisabled: boolean;\n maxRangeLength: number;\n setSelectedDate: SetSelectedDate;\n startDate?: Date;\n endDate?: Date;\n timezone: Timezone;\n}\n\nconst Calendar = ({\n calendarBody,\n calendarType,\n futureDatesDisabled,\n futureStartDatesDisabled,\n maxRangeLength,\n setSelectedDate,\n startDate,\n endDate,\n timezone,\n}: CalendarProps) => {\n const [hoveredDate, setHoveredDate] = useState<Date>();\n\n const today = shiftToTimezone(new Date(), timezone);\n const shiftedStart = startDate ? shiftToTimezone(startDate, timezone) : undefined;\n const shiftedEnd = endDate ? shiftToTimezone(endDate, timezone) : undefined;\n\n const handleMouseOut = (): void => {\n setHoveredDate(undefined);\n };\n\n return calendarBody.value.map(({ key: weekKey, value: week }) => {\n return (\n <tr key={weekKey}>\n {week.map(({ date, isCurrentMonth, key: dayKey, value: fullDate }) => {\n const isSelected =\n (shiftedStart && isSameDate(shiftedStart, fullDate)) ||\n (shiftedEnd && isSameDate(shiftedEnd, fullDate));\n\n const isCurrentDate = isSameDate(today, fullDate);\n const isBetweenStartAndEndDates = Boolean(\n shiftedStart && shiftedEnd && fullDate > shiftedStart && fullDate < shiftedEnd\n );\n\n let isDisabled = false;\n if (futureDatesDisabled && fullDate > today) {\n isDisabled = true;\n }\n\n if (\n futureStartDatesDisabled &&\n calendarType === 'startDate' &&\n fullDate > today\n ) {\n isDisabled = true;\n }\n\n if (\n maxRangeLength > 1 &&\n shiftedStart &&\n !areDatesWithinMaxRange(shiftedStart, fullDate, maxRangeLength)\n ) {\n isDisabled = true;\n }\n\n // start date is selected, end date is not; disable anything before start date\n if (\n calendarType === 'endDate' &&\n !shiftedEnd &&\n shiftedStart &&\n shiftedStart > fullDate &&\n !isSameDate(shiftedStart, fullDate)\n ) {\n isDisabled = true;\n }\n\n // start date isn't selected, but end date is; disable anything after end date\n if (\n calendarType === 'startDate' &&\n !shiftedStart &&\n shiftedEnd &&\n fullDate > shiftedEnd\n ) {\n isDisabled = true;\n }\n\n const startDateSelectedAndIsSelectingEndDate =\n calendarType === 'endDate' &&\n !shiftedEnd &&\n Boolean(\n shiftedStart &&\n hoveredDate &&\n fullDate > shiftedStart &&\n fullDate < hoveredDate\n );\n\n const endDateSelectedAndIsSelectingStartDate =\n calendarType === 'startDate' &&\n !shiftedStart &&\n Boolean(\n shiftedEnd && hoveredDate && fullDate < shiftedEnd && fullDate > hoveredDate\n );\n\n const shouldShowRangeIndicator =\n startDateSelectedAndIsSelectingEndDate ||\n endDateSelectedAndIsSelectingStartDate;\n\n const handleMouseEnter = () => {\n setHoveredDate(fullDate);\n };\n\n const handleClick = () => {\n if (isDisabled) {\n return false;\n }\n\n const originalFullDate = shiftFromTimezone(fullDate, timezone);\n\n // If the user selects a start date and changes the start date\n // use any hours, minutes, seconds they've already set\n if (calendarType === 'startDate' && startDate) {\n if (timezone === 'UTC') {\n originalFullDate.setUTCHours(startDate.getUTCHours());\n originalFullDate.setUTCMinutes(startDate.getUTCMinutes());\n originalFullDate.setUTCSeconds(startDate.getUTCSeconds());\n } else {\n originalFullDate.setHours(startDate.getHours());\n originalFullDate.setMinutes(startDate.getMinutes());\n originalFullDate.setSeconds(startDate.getSeconds());\n }\n }\n\n // If the user selects an end date and changes the end date\n // use any hours, minutes, seconds they've already set\n if (calendarType === 'endDate' && endDate) {\n if (timezone === 'UTC') {\n originalFullDate.setUTCHours(endDate.getUTCHours());\n originalFullDate.setUTCMinutes(endDate.getUTCMinutes());\n originalFullDate.setUTCSeconds(endDate.getUTCSeconds());\n } else {\n originalFullDate.setHours(endDate.getHours());\n originalFullDate.setMinutes(endDate.getMinutes());\n originalFullDate.setSeconds(endDate.getSeconds());\n }\n }\n\n setSelectedDate(originalFullDate, calendarType);\n };\n\n return (\n <DateRangeTableCell\n shouldShowRangeIndicator={\n shouldShowRangeIndicator || isBetweenStartAndEndDates\n }\n isCurrentMonth={isCurrentMonth}\n isDisabled={isDisabled}\n isSelected={Boolean(isSelected)}\n isPresent={isCurrentDate}\n key={dayKey}\n onClick={handleClick}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseOut}\n >\n {date}\n </DateRangeTableCell>\n );\n })}\n </tr>\n );\n });\n};\n\ninterface PredefinedTimesProps {\n onSelectDateRange: (\n startDate: Date,\n endDate: Date,\n predefinedDateLabel?: string\n ) => void;\n predefinedTimesList: DateRangeListItem[];\n selectedEndDate: Date | undefined;\n selectedStartDate: Date | undefined;\n setEndDate: Dispatch<SetStateAction<Date | undefined>>;\n setStartDate: Dispatch<SetStateAction<Date | undefined>>;\n shouldShowCustomRange: boolean;\n showCustomDateRange: Dispatch<SetStateAction<boolean>>;\n timezone: Timezone;\n}\n\nconst PredefinedTimes = ({\n onSelectDateRange,\n predefinedTimesList,\n selectedEndDate,\n selectedStartDate,\n setEndDate,\n setStartDate,\n shouldShowCustomRange,\n showCustomDateRange,\n timezone,\n}: PredefinedTimesProps) => {\n const handleCustomTimePeriodClick = (event: MouseEvent) => {\n event.preventDefault();\n showCustomDateRange(!shouldShowCustomRange);\n };\n\n return (\n <PredefinedTimesContainer\n data-testid=\"predefined-times-list\"\n isResponsive={false}\n orientation=\"vertical\"\n >\n <ScrollableContainer orientation=\"vertical\">\n {predefinedTimesList.map(({ dateRange, label }) => {\n const { startDate, endDate } = dateRange;\n\n const handleItemClick = () => {\n setStartDate(startDate);\n setEndDate(endDate);\n onSelectDateRange(startDate, endDate, label);\n };\n\n const selectedRange =\n selectedStartDate && selectedEndDate\n ? { startDate: selectedStartDate, endDate: selectedEndDate }\n : undefined;\n\n const rangeIsSelected =\n selectedRange !== undefined &&\n isDateRangeWithinRange(selectedRange, dateRange, timezone);\n\n return (\n <StyledDropdownItem\n data-testid={`predefined-date-${startDate.getTime()}`}\n key={startDate.toISOString()}\n onClick={handleItemClick}\n >\n <Container\n data-selected={rangeIsSelected}\n data-testid={label}\n justifyContent=\"space-between\"\n orientation=\"horizontal\"\n >\n {label}\n {rangeIsSelected && <Icon name=\"check\" />}\n </Container>\n </StyledDropdownItem>\n );\n })}\n </ScrollableContainer>\n <StyledDropdownItem onClick={handleCustomTimePeriodClick}>\n <Container\n justifyContent=\"space-between\"\n orientation=\"horizontal\"\n >\n Custom time period <Icon name=\"chevron-right\" />\n </Container>\n </StyledDropdownItem>\n </PredefinedTimesContainer>\n );\n};\n\nconst parseTimeString = (\n timeString: string\n): { isValid: boolean; parsedDate?: Dayjs } => {\n if (!validTimeRegex.test(timeString)) {\n return { isValid: false };\n }\n\n const [hours, minutes, seconds] = timeString.split(':');\n\n const hoursAsNumber = parseInt(hours, 10);\n if (Number.isNaN(hoursAsNumber)) {\n return { isValid: false };\n }\n\n if (hoursAsNumber > 23 || hoursAsNumber < 0) {\n return { isValid: false };\n }\n\n let parsedDate;\n if (!minutes) {\n parsedDate = dayjs(hours, 'h');\n } else {\n const minutesAsNumber = parseInt(minutes, 10);\n if (Number.isNaN(minutesAsNumber)) {\n return { isValid: false };\n }\n\n if (minutesAsNumber > 59 || minutesAsNumber < 0) {\n return { isValid: false };\n }\n\n if (!seconds) {\n parsedDate = dayjs(`${hours}:${minutes}`, 'h:mm');\n } else {\n const secondsAsNumber = parseInt(seconds, 10);\n\n if (Number.isNaN(secondsAsNumber)) {\n return { isValid: false };\n }\n\n if (secondsAsNumber > 59 || secondsAsNumber < 0) {\n return { isValid: false };\n }\n\n parsedDate = dayjs(`${hours}:${minutes}:${seconds}`, 'h:mm:ss');\n }\n }\n\n if (!parsedDate.isValid()) {\n return { isValid: false };\n }\n\n return { isValid: true, parsedDate };\n};\n\nconst validTimeRegex = /^\\d{1,2}(:\\d{1,2}(:\\d{1,2})?)?$/;\n\ninterface TimeInputProps {\n date: Date | undefined;\n setDate: (date: Date) => void;\n shouldShowSeconds: boolean;\n timezone: Timezone;\n}\n\nconst TimeInput = ({ date, setDate, shouldShowSeconds, timezone }: TimeInputProps) => {\n let dayjsDate = timezone === 'UTC' ? dayjs.utc(date) : dayjs(date);\n\n if (!date) {\n dayjsDate = dayjsDate.hour(12).minute(0);\n }\n\n const formattedDate = shouldShowSeconds\n ? dayjsDate.format('hh:mm:ss')\n : dayjsDate.format('hh:mm');\n const [timeString, setTimeString] = useState<string>(formattedDate);\n const [dateIsValid, setDateIsValid] = useState<boolean>(true);\n const [meridiem, setMeridiem] = useState<Meridiem>();\n const isEnabled = Boolean(date);\n\n useEffect(() => {\n if (date) {\n setMeridiem(dayjsDate.format('a') as Meridiem);\n }\n }, [date, dayjsDate]);\n\n const handleTimeChange = useCallback(\n (newTimeString: string) => {\n setTimeString(newTimeString);\n\n if (!date) {\n return;\n }\n\n const trimmedTime = newTimeString.trim();\n if (!trimmedTime) {\n return;\n }\n\n const { isValid, parsedDate } = parseTimeString(trimmedTime);\n\n if (!isValid) {\n setDateIsValid(false);\n return;\n }\n\n if (!parsedDate) {\n setDateIsValid(false);\n return;\n }\n\n setDateIsValid(true);\n\n let hour = parsedDate.hour();\n\n // If the meridiem is set to am and the user enters a time greater than 12,\n // e.g. 18:00, it's a pretty clear indication they mean afternoon, so set the\n // meridiem to pm\n if (meridiem === 'am' && hour >= 12) {\n setMeridiem('pm');\n }\n // It's not as easy to infer that a user intended 8:00 to mean 08:00 when the meridiem\n // is set to pm, so don't change the meridiem in that case\n if (meridiem === 'pm' && hour < 12) {\n hour = parsedDate.hour() + 12;\n }\n\n const newDate = shouldShowSeconds\n ? dayjsDate\n .hour(hour)\n .minute(parsedDate.minute())\n .second(parsedDate.second())\n .toDate()\n : dayjsDate.hour(hour).minute(parsedDate.minute()).toDate();\n\n setDate(newDate);\n },\n [date, dayjsDate, meridiem, setDate, shouldShowSeconds]\n );\n\n const handleMeridiemChange = useCallback(\n (newMeridiem: string) => {\n setMeridiem(newMeridiem as Meridiem);\n\n if (newMeridiem === 'pm' && dayjsDate.hour() < 12) {\n const newDate = dayjsDate.hour(dayjsDate.hour() + 12).toDate();\n\n setDate(newDate);\n\n return;\n }\n\n if (newMeridiem === 'am' && dayjsDate.hour() >= 12) {\n const newDate = dayjsDate.hour(dayjsDate.hour() - 12).toDate();\n\n setDate(newDate);\n\n return;\n }\n },\n [dayjsDate, setDate]\n );\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'Enter') {\n const { isValid, parsedDate } = parseTimeString(timeString);\n\n if (!isValid) {\n return;\n }\n\n if (!parsedDate) {\n return;\n }\n\n const newDate = shouldShowSeconds\n ? dayjsDate\n .hour(parsedDate.hour())\n .minute(parsedDate.minute())\n .second(parsedDate.second())\n .toDate()\n : dayjsDate.hour(parsedDate.hour()).minute(parsedDate.minute()).toDate();\n\n setDate(newDate);\n }\n },\n [dayjsDate, setDate, shouldShowSeconds, timeString]\n );\n\n return (\n <TimeInputContainer\n gap=\"sm\"\n padding=\"xs\"\n maxWidth={`${calendarFullWidth}`}\n orientation=\"horizontal\"\n justifyContent=\"end\"\n >\n <Container maxWidth=\"8%\">\n <Label htmlFor=\"date-time-picker-time-input\">Time</Label>\n </Container>\n <Container\n justifyContent=\"space-evenly\"\n orientation=\"horizontal\"\n maxWidth=\"85%\"\n >\n <Container\n maxWidth=\"45%\"\n orientation=\"horizontal\"\n >\n <TextField\n data-testid=\"date-time-picker-time-input\"\n disabled={!isEnabled}\n error={dateIsValid ? null : true}\n id=\"date-time-picker-time-input\"\n onChange={handleTimeChange}\n onKeyDown={handleKeyDown}\n value={timeString}\n />\n </Container>\n <Container maxWidth=\"45%\">\n <ButtonGroup\n onClick={handleMeridiemChange}\n options={[\n {\n label: 'am',\n value: 'am',\n },\n {\n label: 'pm',\n value: 'pm',\n },\n ]}\n selected={meridiem}\n type=\"default\"\n />\n </Container>\n </Container>\n </TimeInputContainer>\n );\n};\n\nexport type Tab = 'startDate' | 'endDate';\n\ninterface TabbedCalendarProps {\n defaultActiveTab?: Tab;\n endDate: Date | undefined;\n futureDatesDisabled: boolean;\n futureStartDatesDisabled: boolean;\n maxRangeLength: number;\n setEndDate: SetDate;\n setSelectedDate: SetSelectedDate;\n setStartDate: SetDate;\n shouldShowSeconds: boolean;\n startDate: Date | undefined;\n timezone: Timezone;\n}\n\nconst TabbedCalendar = ({\n defaultActiveTab = 'startDate',\n endDate,\n futureDatesDisabled,\n futureStartDatesDisabled,\n maxRangeLength,\n setEndDate,\n setSelectedDate,\n setStartDate,\n shouldShowSeconds,\n startDate,\n timezone,\n}: TabbedCalendarProps) => {\n const [activeTab, setActiveTab] = useState<Tab>(defaultActiveTab);\n\n useEffect(() => {\n setActiveTab(defaultActiveTab);\n }, [defaultActiveTab]);\n\n const handleTabChange = useCallback((newTab: string) => {\n setActiveTab(newTab as Tab);\n }, []);\n\n const handleSetStartDate = useCallback(\n (startDate: Date) => {\n setStartDate(startDate);\n\n setSelectedDate(startDate, 'startDate');\n },\n [setSelectedDate, setStartDate]\n );\n\n const handleSetEndDate = useCallback(\n (endDate: Date) => {\n setEndDate(endDate);\n\n setSelectedDate(endDate, 'endDate');\n },\n [setEndDate, setSelectedDate]\n );\n\n const startDateCalendarOptions: UseCalendarOptions = {};\n const endDateCalendarOptions: UseCalendarOptions = {};\n\n // If a start date is selected, open the calendar to that date\n if (startDate) {\n startDateCalendarOptions.defaultDate = startDate;\n }\n\n // If an end date is selected, open the calendar to that date\n if (endDate) {\n endDateCalendarOptions.defaultDate = endDate;\n }\n\n const startDateIsAfterEndDate =\n startDate && endDate && !isDateRangeValid({ startDate, endDate });\n\n return (\n <BottomPaddingTabs\n onValueChange={handleTabChange}\n value={activeTab}\n >\n <StyledTriggerList>\n <Tabs.Trigger\n value=\"startDate\"\n data-testid=\"tabbed-calendar-trigger-start\"\n >\n Start date\n </Tabs.Trigger>\n <Tabs.Trigger\n value=\"endDate\"\n data-testid=\"tabbed-calendar-trigger-end\"\n >\n End date\n </Tabs.Trigger>\n </StyledTriggerList>\n <Tabs.Content value=\"startDate\">\n <StyledCalendarRenderer\n calendarOptions={startDateCalendarOptions}\n timezone={timezone}\n >\n {(body: Body) => (\n <Calendar\n calendarBody={body}\n calendarType=\"startDate\"\n endDate={endDate}\n futureDatesDisabled={futureDatesDisabled}\n futureStartDatesDisabled={futureStartDatesDisabled}\n maxRangeLength={maxRangeLength}\n setSelectedDate={setSelectedDate}\n startDate={startDate}\n timezone={timezone}\n />\n )}\n </StyledCalendarRenderer>\n <TimeInput\n date={startDate}\n setDate={handleSetStartDate}\n shouldShowSeconds={shouldShowSeconds}\n timezone={timezone}\n />\n </Tabs.Content>\n <Tabs.Content value=\"endDate\">\n <StyledCalendarRenderer\n calendarOptions={endDateCalendarOptions}\n timezone={timezone}\n >\n {(body: Body) => (\n <Calendar\n calendarBody={body}\n calendarType=\"endDate\"\n endDate={endDate}\n futureDatesDisabled={futureDatesDisabled}\n futureStartDatesDisabled={futureStartDatesDisabled}\n maxRangeLength={maxRangeLength}\n setSelectedDate={setSelectedDate}\n startDate={startDate}\n timezone={timezone}\n />\n )}\n </StyledCalendarRenderer>\n <TimeInput\n date={endDate}\n setDate={handleSetEndDate}\n shouldShowSeconds={shouldShowSeconds}\n timezone={timezone}\n />\n </Tabs.Content>\n {startDateIsAfterEndDate && (\n <Text\n align=\"center\"\n color=\"danger\"\n fillWidth\n >\n End date and time must be after start\n </Text>\n )}\n </BottomPaddingTabs>\n );\n};\n\nexport interface DateTimeRangePickerProps {\n closeOnDateRangeSelected?: boolean;\n defaultActiveTab?: Tab;\n disabled?: boolean;\n endDate?: Date;\n futureDatesDisabled?: boolean;\n futureStartDatesDisabled?: boolean;\n onSelectDateRange: (\n startDate: Date,\n endDate: Date,\n predefinedDateLabel?: string\n ) => void;\n openDirection?: OpenDirection;\n placeholder?: string;\n predefinedTimesList?: DateRangeListItem[];\n maxRangeLength?: number;\n responsivePositioning?: boolean;\n shouldFireIfInvalid?: boolean;\n shouldShowSeconds?: boolean;\n startDate?: Date;\n timezone?: Timezone;\n}\n\nexport const DateTimeRangePicker = ({\n closeOnDateRangeSelected = false,\n defaultActiveTab,\n disabled = false,\n endDate,\n futureDatesDisabled = false,\n futureStartDatesDisabled = false,\n maxRangeLength = -1,\n onSelectDateRange,\n openDirection = 'right',\n placeholder = 'start date – end date',\n predefinedTimesList,\n responsivePositioning = true,\n shouldFireIfInvalid = true,\n shouldShowSeconds,\n startDate,\n timezone = 'system',\n}: DateTimeRangePickerProps) => {\n const [isOpen, setIsOpen] = useState<boolean>(false);\n const [selectedStartDate, setSelectedStartDate] = useState<Date>();\n const [selectedEndDate, setSelectedEndDate] = useState<Date>();\n const [shouldShowCustomRange, setShouldShowCustomRange] = useState<boolean>(false);\n const [calendarOpenDirection, setCalendarOpenDirection] =\n useState<OpenDirection>(openDirection);\n const calendarContainerRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (!startDate) {\n return;\n }\n\n const startDateCopy = new Date(startDate);\n\n const hours =\n timezone === 'UTC' ? startDateCopy.getUTCHours() : startDateCopy.getHours();\n\n if (hours === 0) {\n if (timezone === 'UTC') {\n startDateCopy.setUTCHours(12);\n } else {\n startDateCopy.setHours(12);\n }\n }\n\n setSelectedStartDate(startDateCopy);\n }, [startDate, timezone]);\n\n useEffect(() => {\n if (!endDate) {\n return;\n }\n\n const endDateCopy = new Date(endDate);\n\n const hours = timezone === 'UTC' ? endDateCopy.getUTCHours() : endDateCopy.getHours();\n if (hours === 0) {\n if (timezone === 'UTC') {\n endDateCopy.setUTCHours(12);\n } else {\n endDateCopy.setHours(12);\n }\n }\n\n setSelectedEndDate(endDateCopy);\n }, [endDate, timezone]);\n\n useLayoutEffect(() => {\n if (shouldShowCustomRange && calendarContainerRef.current) {\n const rect = calendarContainerRef.current.getBoundingClientRect();\n\n if (rect.right > window.innerWidth) {\n setCalendarOpenDirection('left');\n }\n }\n }, [shouldShowCustomRange]);\n\n const closeDatePicker = useCallback((): void => {\n setIsOpen(false);\n setShouldShowCustomRange(false);\n setCalendarOpenDirection('right');\n }, []);\n\n const handleOpenChange = useCallback((isOpen: boolean): void => {\n setIsOpen(isOpen);\n\n if (!isOpen) {\n setShouldShowCustomRange(false);\n setCalendarOpenDirection('right');\n }\n }, []);\n\n const handleSelectDate = useCallback(\n (selectedDate: Date, calendarType: CalendarType): void => {\n const isMidnight =\n timezone === 'UTC'\n ? selectedDate.getUTCHours() === 0 &&\n selectedDate.getUTCMinutes() === 0 &&\n selectedDate.getUTCSeconds() === 0\n : selectedDate.getHours() === 0 &&\n selectedDate.getMinutes() === 0 &&\n selectedDate.getSeconds() === 0;\n\n if (isMidnight) {\n // set the time to 12 noon if time hasn't been set yet\n\n if (timezone === 'UTC') {\n selectedDate.setUTCHours(12);\n } else {\n selectedDate.setHours(12);\n }\n }\n\n if (calendarType === 'startDate') {\n setSelectedStartDate(selectedDate);\n\n if (selectedEndDate) {\n if (\n !shouldFireIfInvalid &&\n !isDateRangeValid({ startDate: selectedDate, endDate: selectedEndDate })\n ) {\n return;\n }\n\n onSelectDateRange(selectedDate, selectedEndDate);\n\n if (closeOnDateRangeSelected) {\n closeDatePicker();\n }\n }\n }\n\n if (calendarType === 'endDate') {\n setSelectedEndDate(selectedDate);\n\n if (selectedStartDate) {\n if (\n !shouldFireIfInvalid &&\n !isDateRangeValid({ startDate: selectedStartDate, endDate: selectedDate })\n ) {\n return;\n }\n\n onSelectDateRange(selectedStartDate, selectedDate);\n\n if (closeOnDateRangeSelected) {\n closeDatePicker();\n }\n }\n }\n },\n [\n closeDatePicker,\n closeOnDateRangeSelected,\n onSelectDateRange,\n selectedEndDate,\n selectedStartDate,\n shouldFireIfInvalid,\n timezone,\n ]\n );\n\n const onTriggerKeyDown = useCallback((e: KeyboardEvent<HTMLDivElement>) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n setIsOpen(true);\n }\n }, []);\n\n const shouldShowPredefinedTimes =\n predefinedTimesList !== undefined && predefinedTimesList.length > 0;\n\n return (\n <Dropdown\n onOpenChange={handleOpenChange}\n open={isOpen}\n >\n <Dropdown.Trigger\n disabled={disabled}\n onKeyDown={onTriggerKeyDown}\n >\n <DateTimeRangePickerInput\n data-testid=\"datepicker-input-container\"\n disabled={disabled}\n isActive={isOpen}\n placeholder={placeholder}\n selectedEndDate={selectedEndDate}\n selectedStartDate={selectedStartDate}\n shouldShowSeconds={shouldShowSeconds}\n timezone={timezone}\n />\n </Dropdown.Trigger>\n <NoOverflowDropdownContent\n align=\"start\"\n responsivePositioning={responsivePositioning}\n >\n <Container orientation=\"horizontal\">\n {shouldShowPredefinedTimes ? (\n <PredefinedCalendarContainer\n gap=\"none\"\n orientation=\"horizontal\"\n padding=\"none\"\n >\n <PredefinedTimes\n onSelectDateRange={onSelectDateRange}\n predefinedTimesList={predefinedTimesList}\n selectedEndDate={selectedEndDate}\n selectedStartDate={selectedStartDate}\n setEndDate={setSelectedEndDate}\n setStartDate={setSelectedStartDate}\n shouldShowCustomRange={shouldShowCustomRange}\n showCustomDateRange={setShouldShowCustomRange}\n timezone={timezone}\n />\n\n {shouldShowCustomRange && (\n <CalendarRendererContainer\n openDirection={calendarOpenDirection}\n ref={calendarContainerRef}\n >\n <TabbedCalendar\n defaultActiveTab={defaultActiveTab}\n endDate={selectedEndDate}\n futureDatesDisabled={futureDatesDisabled}\n futureStartDatesDisabled={futureStartDatesDisabled}\n maxRangeLength={maxRangeLength}\n setEndDate={setSelectedEndDate}\n setSelectedDate={handleSelectDate}\n setStartDate={setSelectedStartDate}\n shouldShowSeconds={Boolean(shouldShowSeconds)}\n startDate={selectedStartDate}\n timezone={timezone}\n />\n </CalendarRendererContainer>\n )}\n </PredefinedCalendarContainer>\n ) : (\n <>\n <TabbedCalendar\n defaultActiveTab={defaultActiveTab}\n endDate={selectedEndDate}\n futureDatesDisabled={futureDatesDisabled}\n futureStartDatesDisabled={futureStartDatesDisabled}\n maxRangeLength={maxRangeLength}\n setEndDate={setSelectedEndDate}\n setSelectedDate={handleSelectDate}\n setStartDate={setSelectedStartDate}\n shouldShowSeconds={Boolean(shouldShowSeconds)}\n startDate={selectedStartDate}\n timezone={timezone}\n />\n </>\n )}\n </Container>\n </NoOverflowDropdownContent>\n </Dropdown>\n );\n};\n"],"names":["jsx","Panel","cn","styles","Container","cva","forwardRef","Dropdown","CalendarRenderer","Tabs","DateTableCell","useState","shiftToTimezone","isSameDate","areDatesWithinMaxRange","shiftFromTimezone","jsxs","isDateRangeWithinRange","StyledDropdownItem","Icon","dayjs","useEffect","useCallback","Label","TextField","ButtonGroup","startDate","endDate","isDateRangeValid","Text","useRef","useLayoutEffect","isOpen","DateTimeRangePickerInput","Fragment"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateTimeRangePicker.module.css.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DateTimeRangePicker.module.css.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;"}
|
|
@@ -40,7 +40,7 @@ const Calendar = ({
|
|
|
40
40
|
futureDatesDisabled,
|
|
41
41
|
selectedDate,
|
|
42
42
|
setSelectedDate,
|
|
43
|
-
|
|
43
|
+
focusOnOpen = false,
|
|
44
44
|
timezone
|
|
45
45
|
}) => {
|
|
46
46
|
const allDays = calendarBody.value.flatMap((week) => week.value);
|
|
@@ -63,13 +63,13 @@ const Calendar = ({
|
|
|
63
63
|
dayRefs.current[focusedDayIndex]?.focus();
|
|
64
64
|
}, [focusedDayIndex]);
|
|
65
65
|
react.useEffect(() => {
|
|
66
|
-
if (
|
|
66
|
+
if (focusOnOpen && initialFocusIndex >= 0) {
|
|
67
67
|
const timeoutId = setTimeout(() => {
|
|
68
68
|
dayRefs.current[initialFocusIndex]?.focus();
|
|
69
69
|
}, 0);
|
|
70
70
|
return () => clearTimeout(timeoutId);
|
|
71
71
|
}
|
|
72
|
-
}, [
|
|
72
|
+
}, [focusOnOpen, initialFocusIndex]);
|
|
73
73
|
const onDayKeyDown = react.useCallback(
|
|
74
74
|
(event, index, fullDate, isDisabled) => {
|
|
75
75
|
let newIndex = index;
|
|
@@ -258,9 +258,9 @@ const DatePicker = ({
|
|
|
258
258
|
Calendar,
|
|
259
259
|
{
|
|
260
260
|
allowOnlyDatesList,
|
|
261
|
-
autoFocus: autoFocusCalendar,
|
|
262
261
|
calendarBody: body,
|
|
263
262
|
closeDatepicker: onCloseDatePicker,
|
|
263
|
+
focusOnOpen: autoFocusCalendar,
|
|
264
264
|
futureDatesDisabled,
|
|
265
265
|
selectedDate,
|
|
266
266
|
setSelectedDate: onDateSelect,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../../../../src/components/DatePicker/DatePicker.tsx"],"sourcesContent":["import { KeyboardEvent, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { isSameDate, UseCalendarOptions } from '@h6s/calendar';\nimport * as Popover from '@radix-ui/react-popover';\nimport { Body, CalendarRenderer, DatePickerInput, DateTableCell } from './Common';\nimport {\n isDateNotInAllowList,\n shiftFromTimezone,\n shiftToTimezone,\n Timezone,\n} from './utils';\nimport { useResolvedPortalContainer } from '@/providers/PortalContext';\nimport styles from './DatePicker.module.css';\n\nconst DAYS_IN_WEEK = 7;\n\ninterface CalendarProps {\n allowOnlyDatesList?: Array<Date>;\n calendarBody: Body;\n closeDatepicker: () => void;\n futureDatesDisabled: boolean;\n selectedDate?: Date;\n setSelectedDate: (selectedDate: Date) => void;\n autoFocus?: boolean;\n timezone: Timezone;\n}\n\nconst Calendar = ({\n allowOnlyDatesList,\n calendarBody,\n closeDatepicker,\n futureDatesDisabled,\n selectedDate,\n setSelectedDate,\n autoFocus = false,\n timezone,\n}: CalendarProps) => {\n const allDays = calendarBody.value.flatMap(week => week.value);\n const totalDays = allDays.length;\n\n const today = shiftToTimezone(new Date(), timezone);\n\n const shiftedSelected = selectedDate\n ? shiftToTimezone(selectedDate, timezone)\n : undefined;\n\n const shiftedAllowList = useMemo(() => {\n return allowOnlyDatesList?.map(date => {\n return shiftToTimezone(date, timezone);\n });\n }, [allowOnlyDatesList, timezone]);\n\n const initialFocusIndex = allDays.findIndex(day =>\n shiftedSelected\n ? isSameDate(shiftedSelected, day.value)\n : isSameDate(today, day.value)\n );\n\n const [focusedDayIndex, setFocusedDayIndex] = useState<number>(\n initialFocusIndex >= 0 ? initialFocusIndex : 0\n );\n const dayRefs = useRef<Array<HTMLTableCellElement | null>>([]);\n\n useEffect(() => {\n dayRefs.current[focusedDayIndex]?.focus();\n }, [focusedDayIndex]);\n\n useEffect(() => {\n if (autoFocus && initialFocusIndex >= 0) {\n const timeoutId = setTimeout(() => {\n dayRefs.current[initialFocusIndex]?.focus();\n }, 0);\n return () => clearTimeout(timeoutId);\n }\n }, [autoFocus, initialFocusIndex]);\n\n const onDayKeyDown = useCallback(\n (\n event: KeyboardEvent<HTMLTableCellElement>,\n index: number,\n fullDate: Date,\n isDisabled: boolean\n ) => {\n let newIndex = index;\n\n switch (event.key) {\n case 'ArrowRight':\n event.preventDefault();\n newIndex = (index + 1) % totalDays;\n break;\n case 'ArrowLeft':\n event.preventDefault();\n newIndex = (index - 1 + totalDays) % totalDays;\n break;\n case 'ArrowDown':\n event.preventDefault();\n newIndex = (index + DAYS_IN_WEEK) % totalDays;\n break;\n case 'ArrowUp':\n event.preventDefault();\n newIndex = (index - DAYS_IN_WEEK + totalDays) % totalDays;\n break;\n case 'Enter':\n case ' ':\n event.preventDefault();\n if (!isDisabled) {\n setSelectedDate(shiftFromTimezone(fullDate, timezone));\n closeDatepicker();\n }\n return;\n default:\n return;\n }\n\n setFocusedDayIndex(newIndex);\n dayRefs.current[newIndex]?.focus();\n },\n [totalDays, setSelectedDate, closeDatepicker, timezone]\n );\n\n let dayIndex = 0;\n\n return calendarBody.value.map(({ key: weekKey, value: week }) => {\n return (\n <tr key={weekKey}>\n {week.map(({ date, isCurrentMonth, key: dayKey, value: fullDate }) => {\n const isSelected = shiftedSelected && isSameDate(shiftedSelected, fullDate);\n const isPresent = isSameDate(today, fullDate);\n\n const isNotAllowed = isDateNotInAllowList(shiftedAllowList, fullDate);\n\n const isFutureDisabled = futureDatesDisabled && fullDate > today;\n const isDisabled = isNotAllowed || isFutureDisabled;\n const currentIndex = dayIndex;\n dayIndex++;\n\n const handleClick = () => {\n if (isDisabled) {\n return false;\n }\n setSelectedDate(shiftFromTimezone(fullDate, timezone));\n closeDatepicker();\n };\n\n return (\n <DateTableCell\n ref={el => {\n dayRefs.current[currentIndex] = el;\n }}\n isCurrentMonth={isCurrentMonth}\n isDisabled={isDisabled}\n isSelected={Boolean(isSelected)}\n isPresent={isPresent}\n key={dayKey}\n onClick={handleClick}\n onKeyDown={e => onDayKeyDown(e, currentIndex, fullDate, isDisabled)}\n tabIndex={currentIndex === focusedDayIndex ? 0 : -1}\n role=\"gridcell\"\n aria-label={fullDate.toDateString()}\n >\n {date}\n </DateTableCell>\n );\n })}\n </tr>\n );\n });\n};\n\nexport interface DatePickerProps {\n allowOnlyDatesList?: Array<Date>;\n container?: HTMLElement | null;\n date?: Date;\n disabled?: boolean;\n futureDatesDisabled?: boolean;\n onSelectDate: (selectedDate: Date) => void;\n placeholder?: string;\n responsivePositioning?: boolean;\n timezone?: Timezone;\n}\n\nexport const DatePicker = ({\n allowOnlyDatesList,\n container,\n date,\n disabled = false,\n futureDatesDisabled = false,\n onSelectDate,\n placeholder,\n responsivePositioning = true,\n timezone = 'system',\n}: DatePickerProps) => {\n const [isOpen, setIsOpen] = useState<boolean>(false);\n const [selectedDate, setSelectedDate] = useState<Date>();\n const [partialYear, setPartialYear] = useState<number>();\n const [partialMonth, setPartialMonth] = useState<number>();\n const [autoFocusCalendar, setAutoFocusCalendar] = useState<boolean>(false);\n\n const calendarOptions: UseCalendarOptions = {};\n const portalContainer = useResolvedPortalContainer(container);\n\n if (selectedDate) {\n calendarOptions.defaultDate = selectedDate;\n }\n\n useEffect(() => {\n if (date) {\n setSelectedDate(date);\n }\n }, [date]);\n\n const resetPartialState = useCallback(() => {\n setPartialYear(undefined);\n setPartialMonth(undefined);\n }, []);\n\n const onOpenChange = useCallback(\n (open: boolean) => {\n setIsOpen(open);\n if (!open) {\n resetPartialState();\n setAutoFocusCalendar(false);\n }\n },\n [resetPartialState]\n );\n\n const onCloseDatePicker = useCallback(() => {\n setIsOpen(false);\n resetPartialState();\n }, [resetPartialState]);\n\n const onDateSelect = useCallback(\n (date: Date): void => {\n setSelectedDate(date);\n onSelectDate(date);\n resetPartialState();\n },\n [onSelectDate, resetPartialState]\n );\n\n const onYearSelect = useCallback((year: number) => {\n setPartialYear(year);\n setPartialMonth(undefined);\n }, []);\n\n const onMonthSelect = useCallback((year: number, month: number) => {\n setPartialYear(year);\n setPartialMonth(month);\n }, []);\n\n const onTriggerKeyDown = useCallback((e: KeyboardEvent<HTMLButtonElement>) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n setIsOpen(true);\n setAutoFocusCalendar(true);\n }\n }, []);\n\n return (\n <Popover.Root\n onOpenChange={onOpenChange}\n open={isOpen}\n >\n <Popover.Trigger\n className={styles['popover-trigger']}\n disabled={disabled}\n onKeyDown={onTriggerKeyDown}\n >\n <DatePickerInput\n data-testid=\"datepicker-input-container\"\n disabled={disabled}\n isActive={isOpen}\n partialMonth={partialMonth}\n partialYear={partialYear}\n placeholder={placeholder}\n selectedDate={selectedDate}\n timezone={timezone}\n />\n </Popover.Trigger>\n <Popover.Portal container={portalContainer}>\n <Popover.Content\n className={styles['popover-content']}\n align=\"start\"\n avoidCollisions={responsivePositioning}\n sideOffset={4}\n >\n <CalendarRenderer\n calendarOptions={calendarOptions}\n onYearSelect={onYearSelect}\n onMonthSelect={onMonthSelect}\n selectedDate={selectedDate}\n timezone={timezone}\n >\n {body => (\n <Calendar\n allowOnlyDatesList={allowOnlyDatesList}\n autoFocus={autoFocusCalendar}\n calendarBody={body}\n closeDatepicker={onCloseDatePicker}\n futureDatesDisabled={futureDatesDisabled}\n selectedDate={selectedDate}\n setSelectedDate={onDateSelect}\n timezone={timezone}\n />\n )}\n </CalendarRenderer>\n </Popover.Content>\n </Popover.Portal>\n </Popover.Root>\n );\n};\n"],"names":["shiftToTimezone","useMemo","isSameDate","useState","useRef","useEffect","useCallback","shiftFromTimezone","jsx","isDateNotInAllowList","DateTableCell","useResolvedPortalContainer","date","jsxs","Popover","styles","DatePickerInput","CalendarRenderer"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../../src/components/DatePicker/DatePicker.tsx"],"sourcesContent":["import { KeyboardEvent, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { isSameDate, UseCalendarOptions } from '@h6s/calendar';\nimport * as Popover from '@radix-ui/react-popover';\nimport { Body, CalendarRenderer, DatePickerInput, DateTableCell } from './Common';\nimport {\n isDateNotInAllowList,\n shiftFromTimezone,\n shiftToTimezone,\n Timezone,\n} from './utils';\nimport { useResolvedPortalContainer } from '@/providers/PortalContext';\nimport styles from './DatePicker.module.css';\n\nconst DAYS_IN_WEEK = 7;\n\ninterface CalendarProps {\n allowOnlyDatesList?: Array<Date>;\n calendarBody: Body;\n closeDatepicker: () => void;\n futureDatesDisabled: boolean;\n selectedDate?: Date;\n setSelectedDate: (selectedDate: Date) => void;\n focusOnOpen?: boolean;\n timezone: Timezone;\n}\n\nconst Calendar = ({\n allowOnlyDatesList,\n calendarBody,\n closeDatepicker,\n futureDatesDisabled,\n selectedDate,\n setSelectedDate,\n focusOnOpen = false,\n timezone,\n}: CalendarProps) => {\n const allDays = calendarBody.value.flatMap(week => week.value);\n const totalDays = allDays.length;\n\n const today = shiftToTimezone(new Date(), timezone);\n\n const shiftedSelected = selectedDate\n ? shiftToTimezone(selectedDate, timezone)\n : undefined;\n\n const shiftedAllowList = useMemo(() => {\n return allowOnlyDatesList?.map(date => {\n return shiftToTimezone(date, timezone);\n });\n }, [allowOnlyDatesList, timezone]);\n\n const initialFocusIndex = allDays.findIndex(day =>\n shiftedSelected\n ? isSameDate(shiftedSelected, day.value)\n : isSameDate(today, day.value)\n );\n\n const [focusedDayIndex, setFocusedDayIndex] = useState<number>(\n initialFocusIndex >= 0 ? initialFocusIndex : 0\n );\n const dayRefs = useRef<Array<HTMLTableCellElement | null>>([]);\n\n useEffect(() => {\n dayRefs.current[focusedDayIndex]?.focus();\n }, [focusedDayIndex]);\n\n useEffect(() => {\n if (focusOnOpen && initialFocusIndex >= 0) {\n const timeoutId = setTimeout(() => {\n dayRefs.current[initialFocusIndex]?.focus();\n }, 0);\n return () => clearTimeout(timeoutId);\n }\n }, [focusOnOpen, initialFocusIndex]);\n\n const onDayKeyDown = useCallback(\n (\n event: KeyboardEvent<HTMLTableCellElement>,\n index: number,\n fullDate: Date,\n isDisabled: boolean\n ) => {\n let newIndex = index;\n\n switch (event.key) {\n case 'ArrowRight':\n event.preventDefault();\n newIndex = (index + 1) % totalDays;\n break;\n case 'ArrowLeft':\n event.preventDefault();\n newIndex = (index - 1 + totalDays) % totalDays;\n break;\n case 'ArrowDown':\n event.preventDefault();\n newIndex = (index + DAYS_IN_WEEK) % totalDays;\n break;\n case 'ArrowUp':\n event.preventDefault();\n newIndex = (index - DAYS_IN_WEEK + totalDays) % totalDays;\n break;\n case 'Enter':\n case ' ':\n event.preventDefault();\n if (!isDisabled) {\n setSelectedDate(shiftFromTimezone(fullDate, timezone));\n closeDatepicker();\n }\n return;\n default:\n return;\n }\n\n setFocusedDayIndex(newIndex);\n dayRefs.current[newIndex]?.focus();\n },\n [totalDays, setSelectedDate, closeDatepicker, timezone]\n );\n\n let dayIndex = 0;\n\n return calendarBody.value.map(({ key: weekKey, value: week }) => {\n return (\n <tr key={weekKey}>\n {week.map(({ date, isCurrentMonth, key: dayKey, value: fullDate }) => {\n const isSelected = shiftedSelected && isSameDate(shiftedSelected, fullDate);\n const isPresent = isSameDate(today, fullDate);\n\n const isNotAllowed = isDateNotInAllowList(shiftedAllowList, fullDate);\n\n const isFutureDisabled = futureDatesDisabled && fullDate > today;\n const isDisabled = isNotAllowed || isFutureDisabled;\n const currentIndex = dayIndex;\n dayIndex++;\n\n const handleClick = () => {\n if (isDisabled) {\n return false;\n }\n setSelectedDate(shiftFromTimezone(fullDate, timezone));\n closeDatepicker();\n };\n\n return (\n <DateTableCell\n ref={el => {\n dayRefs.current[currentIndex] = el;\n }}\n isCurrentMonth={isCurrentMonth}\n isDisabled={isDisabled}\n isSelected={Boolean(isSelected)}\n isPresent={isPresent}\n key={dayKey}\n onClick={handleClick}\n onKeyDown={e => onDayKeyDown(e, currentIndex, fullDate, isDisabled)}\n tabIndex={currentIndex === focusedDayIndex ? 0 : -1}\n role=\"gridcell\"\n aria-label={fullDate.toDateString()}\n >\n {date}\n </DateTableCell>\n );\n })}\n </tr>\n );\n });\n};\n\nexport interface DatePickerProps {\n allowOnlyDatesList?: Array<Date>;\n container?: HTMLElement | null;\n date?: Date;\n disabled?: boolean;\n futureDatesDisabled?: boolean;\n onSelectDate: (selectedDate: Date) => void;\n placeholder?: string;\n responsivePositioning?: boolean;\n timezone?: Timezone;\n}\n\nexport const DatePicker = ({\n allowOnlyDatesList,\n container,\n date,\n disabled = false,\n futureDatesDisabled = false,\n onSelectDate,\n placeholder,\n responsivePositioning = true,\n timezone = 'system',\n}: DatePickerProps) => {\n const [isOpen, setIsOpen] = useState<boolean>(false);\n const [selectedDate, setSelectedDate] = useState<Date>();\n const [partialYear, setPartialYear] = useState<number>();\n const [partialMonth, setPartialMonth] = useState<number>();\n const [autoFocusCalendar, setAutoFocusCalendar] = useState<boolean>(false);\n\n const calendarOptions: UseCalendarOptions = {};\n const portalContainer = useResolvedPortalContainer(container);\n\n if (selectedDate) {\n calendarOptions.defaultDate = selectedDate;\n }\n\n useEffect(() => {\n if (date) {\n setSelectedDate(date);\n }\n }, [date]);\n\n const resetPartialState = useCallback(() => {\n setPartialYear(undefined);\n setPartialMonth(undefined);\n }, []);\n\n const onOpenChange = useCallback(\n (open: boolean) => {\n setIsOpen(open);\n if (!open) {\n resetPartialState();\n setAutoFocusCalendar(false);\n }\n },\n [resetPartialState]\n );\n\n const onCloseDatePicker = useCallback(() => {\n setIsOpen(false);\n resetPartialState();\n }, [resetPartialState]);\n\n const onDateSelect = useCallback(\n (date: Date): void => {\n setSelectedDate(date);\n onSelectDate(date);\n resetPartialState();\n },\n [onSelectDate, resetPartialState]\n );\n\n const onYearSelect = useCallback((year: number) => {\n setPartialYear(year);\n setPartialMonth(undefined);\n }, []);\n\n const onMonthSelect = useCallback((year: number, month: number) => {\n setPartialYear(year);\n setPartialMonth(month);\n }, []);\n\n const onTriggerKeyDown = useCallback((e: KeyboardEvent<HTMLButtonElement>) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n setIsOpen(true);\n setAutoFocusCalendar(true);\n }\n }, []);\n\n return (\n <Popover.Root\n onOpenChange={onOpenChange}\n open={isOpen}\n >\n <Popover.Trigger\n className={styles['popover-trigger']}\n disabled={disabled}\n onKeyDown={onTriggerKeyDown}\n >\n <DatePickerInput\n data-testid=\"datepicker-input-container\"\n disabled={disabled}\n isActive={isOpen}\n partialMonth={partialMonth}\n partialYear={partialYear}\n placeholder={placeholder}\n selectedDate={selectedDate}\n timezone={timezone}\n />\n </Popover.Trigger>\n <Popover.Portal container={portalContainer}>\n <Popover.Content\n className={styles['popover-content']}\n align=\"start\"\n avoidCollisions={responsivePositioning}\n sideOffset={4}\n >\n <CalendarRenderer\n calendarOptions={calendarOptions}\n onYearSelect={onYearSelect}\n onMonthSelect={onMonthSelect}\n selectedDate={selectedDate}\n timezone={timezone}\n >\n {body => (\n <Calendar\n allowOnlyDatesList={allowOnlyDatesList}\n calendarBody={body}\n closeDatepicker={onCloseDatePicker}\n focusOnOpen={autoFocusCalendar}\n futureDatesDisabled={futureDatesDisabled}\n selectedDate={selectedDate}\n setSelectedDate={onDateSelect}\n timezone={timezone}\n />\n )}\n </CalendarRenderer>\n </Popover.Content>\n </Popover.Portal>\n </Popover.Root>\n );\n};\n"],"names":["shiftToTimezone","useMemo","isSameDate","useState","useRef","useEffect","useCallback","shiftFromTimezone","jsx","isDateNotInAllowList","DateTableCell","useResolvedPortalContainer","date","jsxs","Popover","styles","DatePickerInput","CalendarRenderer"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.cjs","sources":["../../../../src/components/DatePicker/utils.ts"],"sourcesContent":["import { isSameDate } from '@h6s/calendar';\nimport { dayjs } from '@/utils/date';\n\nexport type Timezone = 'system' | 'UTC';\n\nexport interface DateRange {\n startDate: Date;\n endDate: Date;\n}\n\nconst locale = 'en-US';\n\nexport type Meridiem = 'am' | 'pm';\n\nexport interface Time {\n hour: number;\n minutes: number;\n}\n\nexport interface DateRangeListItem {\n dateRange: DateRange;\n label: string;\n}\n\nconst createFormatter = (options: Intl.DateTimeFormatOptions) => {\n const timezoneFormatters: Partial<Record<Timezone, Intl.DateTimeFormat>> = {};\n\n return (timezone: Timezone, date: Date): string => {\n if (!timezoneFormatters[timezone]) {\n const opts = timezone === 'UTC' ? { ...options, timeZone: 'UTC' } : options;\n timezoneFormatters[timezone] = new Intl.DateTimeFormat(locale, opts);\n }\n return timezoneFormatters[timezone].format(date);\n };\n};\n\nexport const formatSelectedDate = createFormatter({\n day: '2-digit',\n month: 'short',\n year: 'numeric',\n});\n\nexport const formatWeekday = createFormatter({ weekday: 'short' });\n\nexport const formatSelectedDateTime = createFormatter({\n day: '2-digit',\n month: 'short',\n hour: '2-digit',\n minute: '2-digit',\n});\n\nexport const formatSelectedDateTimeWithSeconds = createFormatter({\n day: '2-digit',\n month: 'short',\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit',\n});\n\nexport const formatDateHeader = createFormatter({\n month: 'short',\n year: 'numeric',\n});\n\n// In UTC mode, shift by the host offset so local-time getters return UTC\n// values. shiftFromTimezone reverses it.\n//\n// Caveat: round-tripping across a DST boundary drifts by an hour — each\n// direction reads getTimezoneOffset on its own input. Call sites don't\n// round-trip the same Date, so this hasn't bitten us.\nexport const shiftToTimezone = (date: Date, timezone: Timezone): Date => {\n if (timezone !== 'UTC') {\n return date;\n }\n return new Date(date.getTime() + date.getTimezoneOffset() * 60_000);\n};\n\nexport const shiftFromTimezone = (date: Date, timezone: Timezone): Date => {\n if (timezone !== 'UTC') {\n return date;\n }\n return new Date(date.getTime() - date.getTimezoneOffset() * 60_000);\n};\n\nexport const getPredefinedMonthsForDateRangePicker = (\n numberOfMonths: number\n): DateRange[] => {\n const now = dayjs();\n\n if (numberOfMonths < 0) {\n const lastSixMonths: DateRange[] = [];\n for (let i = 0; i < Math.abs(numberOfMonths); i++) {\n const date = now.subtract(i, 'month');\n if (date.date() === 1 && date.month() === now.month()) {\n continue;\n }\n lastSixMonths.push({\n startDate: date.startOf('month').toDate(),\n endDate: i === 0 ? now.toDate() : date.endOf('month').toDate(),\n });\n }\n\n return lastSixMonths.reverse();\n }\n\n const nextSixMonths: DateRange[] = [];\n for (let i = 0; i < numberOfMonths; i++) {\n const date = now.add(i, 'month');\n nextSixMonths.push({\n startDate: date.startOf('month').toDate(),\n endDate: date.endOf('month').toDate(),\n });\n }\n\n return nextSixMonths;\n};\n\nexport const getPredefinedTimePeriodsForDateTimePicker = (): DateRangeListItem[] => {\n const now = dayjs();\n\n const fifteenMinutesAgo = now.subtract(15, 'minute');\n const thirtyMinutesAgo = now.subtract(30, 'minute');\n const oneHourAgo = now.subtract(1, 'hour');\n const sixHoursAgo = now.subtract(6, 'hour');\n const oneDayAgo = now.subtract(1, 'day');\n const oneMonthAgo = now.subtract(1, 'month');\n\n const dateRangeList: DateRangeListItem[] = [\n {\n dateRange: {\n startDate: fifteenMinutesAgo.toDate(),\n endDate: now.toDate(),\n },\n label: 'Past 15 minutes',\n },\n {\n dateRange: {\n startDate: thirtyMinutesAgo.toDate(),\n endDate: now.toDate(),\n },\n label: 'Past 30 minutes',\n },\n {\n dateRange: {\n startDate: oneHourAgo.toDate(),\n endDate: now.toDate(),\n },\n label: 'Past hour',\n },\n {\n dateRange: {\n startDate: sixHoursAgo.toDate(),\n endDate: now.toDate(),\n },\n label: 'Past 6 hours',\n },\n {\n dateRange: {\n startDate: oneDayAgo.toDate(),\n endDate: now.toDate(),\n },\n label: 'Past day',\n },\n {\n dateRange: {\n startDate: oneMonthAgo.toDate(),\n endDate: now.toDate(),\n },\n label: 'Past month',\n },\n ];\n\n return dateRangeList;\n};\n\nexport const getNextNDatesForDatePickerAllowOnlyList = (numberOfDays: number): Date[] => {\n const now = dayjs();\n\n return Array.from({ length: numberOfDays }, (_, i) =>\n now.add(i, 'day').startOf('day').toDate()\n );\n};\n\nexport const isDateNotInAllowList = (\n allowList: Array<Date> | undefined,\n date: Date\n): boolean =>\n Array.isArray(allowList) &&\n allowList.length > 0 &&\n !allowList.some(allowedDate => isSameDate(allowedDate, date));\n\nexport const areDatesWithinMaxRange = (\n startDate: Date,\n endDate: Date,\n maxRangeLength: number\n): boolean => {\n // Compare calendar days; dayjs would otherwise drop a partial day from the diff.\n const daysDifference = Math.abs(\n dayjs(startDate).startOf('day').diff(dayjs(endDate).startOf('day'), 'days')\n );\n\n return daysDifference < maxRangeLength;\n};\n\nconst ONE_DAY_MS = 24 * 60 * 60 * 1000;\nconst toleranceMs = 60 * 1000;\n\nexport const isDateRangeWithinRange = (\n selectedRange: DateRange,\n predefinedRange: DateRange,\n timezone: Timezone = 'system'\n): boolean => {\n const { startDate, endDate } = predefinedRange;\n\n if (endDate.getTime() - startDate.getTime() < ONE_DAY_MS) {\n return (\n Math.abs(selectedRange.startDate.getTime() - startDate.getTime()) <= toleranceMs &&\n Math.abs(selectedRange.endDate.getTime() - endDate.getTime()) <= toleranceMs\n );\n }\n\n // Shifted the same way the calendar is, so the check agrees with the days it marks.\n const shiftedSelectedStart = shiftToTimezone(selectedRange.startDate, timezone);\n const shiftedSelectedEnd = shiftToTimezone(selectedRange.endDate, timezone);\n const shiftedStart = shiftToTimezone(startDate, timezone);\n const shiftedEnd = shiftToTimezone(endDate, timezone);\n\n return (\n isSameDate(shiftedSelectedStart, shiftedStart) &&\n isSameDate(shiftedSelectedEnd, shiftedEnd)\n );\n};\n\nexport const isDateRangeTheWholeMonth = (\n { startDate, endDate }: DateRange,\n timezone: Timezone = 'system'\n): boolean => {\n const start = timezone === 'UTC' ? dayjs.utc(startDate) : dayjs(startDate);\n const end = timezone === 'UTC' ? dayjs.utc(endDate) : dayjs(endDate);\n\n if (start.month() !== end.month()) {\n return false;\n }\n\n const startDateIsFirstDay = start.isSame(start.startOf('month'), 'day');\n const endDateIsLastDay = end.isSame(end.endOf('month'), 'day');\n\n return startDateIsFirstDay && endDateIsLastDay;\n};\n\nexport const isDateRangeValid = (dateRange: DateRange): boolean => {\n if (!dateRange?.startDate || !dateRange?.endDate) {\n return false;\n }\n\n if (!(dateRange.startDate instanceof Date) || !dayjs(dateRange.startDate).isValid()) {\n return false;\n }\n\n if (!(dateRange.endDate instanceof Date) || !dayjs(dateRange.endDate).isValid()) {\n return false;\n }\n\n if (dateRange.startDate.getTime() > dateRange.endDate.getTime()) {\n return false;\n }\n\n return true;\n};\n"],"names":["dayjs","isSameDate"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"utils.cjs","sources":["../../../../src/components/DatePicker/utils.ts"],"sourcesContent":["import { isSameDate } from '@h6s/calendar';\nimport { dayjs } from '@/utils/date';\n\nexport type Timezone = 'system' | 'UTC';\n\nexport interface DateRange {\n startDate: Date;\n endDate: Date;\n}\n\nconst locale = 'en-US';\n\nexport type Meridiem = 'am' | 'pm';\n\nexport interface Time {\n hour: number;\n minutes: number;\n}\n\nexport interface DateRangeListItem {\n dateRange: DateRange;\n label: string;\n}\n\nconst createFormatter = (options: Intl.DateTimeFormatOptions) => {\n const timezoneFormatters: Partial<Record<Timezone, Intl.DateTimeFormat>> = {};\n\n return (timezone: Timezone, date: Date): string => {\n if (!timezoneFormatters[timezone]) {\n const opts = timezone === 'UTC' ? { ...options, timeZone: 'UTC' } : options;\n timezoneFormatters[timezone] = new Intl.DateTimeFormat(locale, opts);\n }\n return timezoneFormatters[timezone].format(date);\n };\n};\n\nexport const formatSelectedDate = createFormatter({\n day: '2-digit',\n month: 'short',\n year: 'numeric',\n});\n\nexport const formatWeekday = createFormatter({ weekday: 'short' });\n\nexport const formatSelectedDateTime = createFormatter({\n day: '2-digit',\n month: 'short',\n hour: '2-digit',\n minute: '2-digit',\n});\n\nexport const formatSelectedDateTimeWithSeconds = createFormatter({\n day: '2-digit',\n month: 'short',\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit',\n});\n\nexport const formatDateHeader = createFormatter({\n month: 'short',\n year: 'numeric',\n});\n\n// In UTC mode, shift by the host offset so local-time getters return UTC\n// values. shiftFromTimezone reverses it.\n//\n// Caveat: round-tripping across a DST boundary drifts by an hour — each\n// direction reads getTimezoneOffset on its own input. Call sites don't\n// round-trip the same Date, so this hasn't bitten us.\nexport const shiftToTimezone = (date: Date, timezone: Timezone): Date => {\n if (timezone !== 'UTC') {\n return date;\n }\n return new Date(date.getTime() + date.getTimezoneOffset() * 60_000);\n};\n\nexport const shiftFromTimezone = (date: Date, timezone: Timezone): Date => {\n if (timezone !== 'UTC') {\n return date;\n }\n return new Date(date.getTime() - date.getTimezoneOffset() * 60_000);\n};\n\nexport const getPredefinedMonthsForDateRangePicker = (\n numberOfMonths: number\n): DateRange[] => {\n const now = dayjs();\n\n if (numberOfMonths < 0) {\n const lastSixMonths: DateRange[] = [];\n for (let i = 0; i < Math.abs(numberOfMonths); i++) {\n const date = now.subtract(i, 'month');\n if (date.date() === 1 && date.month() === now.month()) {\n continue;\n }\n lastSixMonths.push({\n startDate: date.startOf('month').toDate(),\n endDate: i === 0 ? now.toDate() : date.endOf('month').toDate(),\n });\n }\n\n return lastSixMonths.reverse();\n }\n\n const nextSixMonths: DateRange[] = [];\n for (let i = 0; i < numberOfMonths; i++) {\n const date = now.add(i, 'month');\n nextSixMonths.push({\n startDate: date.startOf('month').toDate(),\n endDate: date.endOf('month').toDate(),\n });\n }\n\n return nextSixMonths;\n};\n\nexport const getPredefinedTimePeriodsForDateTimePicker = (): DateRangeListItem[] => {\n const now = dayjs();\n\n const fifteenMinutesAgo = now.subtract(15, 'minute');\n const thirtyMinutesAgo = now.subtract(30, 'minute');\n const oneHourAgo = now.subtract(1, 'hour');\n const sixHoursAgo = now.subtract(6, 'hour');\n const oneDayAgo = now.subtract(1, 'day');\n const oneMonthAgo = now.subtract(1, 'month');\n\n const dateRangeList: DateRangeListItem[] = [\n {\n dateRange: {\n startDate: fifteenMinutesAgo.toDate(),\n endDate: now.toDate(),\n },\n label: 'Past 15 minutes',\n },\n {\n dateRange: {\n startDate: thirtyMinutesAgo.toDate(),\n endDate: now.toDate(),\n },\n label: 'Past 30 minutes',\n },\n {\n dateRange: {\n startDate: oneHourAgo.toDate(),\n endDate: now.toDate(),\n },\n label: 'Past hour',\n },\n {\n dateRange: {\n startDate: sixHoursAgo.toDate(),\n endDate: now.toDate(),\n },\n label: 'Past 6 hours',\n },\n {\n dateRange: {\n startDate: oneDayAgo.toDate(),\n endDate: now.toDate(),\n },\n label: 'Past day',\n },\n {\n dateRange: {\n startDate: oneMonthAgo.toDate(),\n endDate: now.toDate(),\n },\n label: 'Past month',\n },\n ];\n\n return dateRangeList;\n};\n\nexport const getNextNDatesForDatePickerAllowOnlyList = (numberOfDays: number): Date[] => {\n const now = dayjs();\n\n return Array.from({ length: numberOfDays }, (_, i) =>\n now.add(i, 'day').startOf('day').toDate()\n );\n};\n\nexport const isDateNotInAllowList = (\n allowList: Array<Date> | undefined,\n date: Date\n): boolean =>\n Array.isArray(allowList) &&\n allowList.length > 0 &&\n !allowList.some(allowedDate => isSameDate(allowedDate, date));\n\nexport const areDatesWithinMaxRange = (\n startDate: Date,\n endDate: Date,\n maxRangeLength: number\n): boolean => {\n // Compare calendar days; dayjs would otherwise drop a partial day from the diff.\n const daysDifference = Math.abs(\n dayjs(startDate).startOf('day').diff(dayjs(endDate).startOf('day'), 'days')\n );\n\n return daysDifference < maxRangeLength;\n};\n\nconst ONE_DAY_MS = 24 * 60 * 60 * 1000;\nconst toleranceMs = 60 * 1000;\n\nexport const isDateRangeWithinRange = (\n selectedRange: DateRange,\n predefinedRange: DateRange,\n timezone: Timezone = 'system'\n): boolean => {\n const { startDate, endDate } = predefinedRange;\n\n if (endDate.getTime() - startDate.getTime() < ONE_DAY_MS) {\n return (\n Math.abs(selectedRange.startDate.getTime() - startDate.getTime()) <= toleranceMs &&\n Math.abs(selectedRange.endDate.getTime() - endDate.getTime()) <= toleranceMs\n );\n }\n\n // Shifted the same way the calendar is, so the check agrees with the days it marks.\n const shiftedSelectedStart = shiftToTimezone(selectedRange.startDate, timezone);\n const shiftedSelectedEnd = shiftToTimezone(selectedRange.endDate, timezone);\n const shiftedStart = shiftToTimezone(startDate, timezone);\n const shiftedEnd = shiftToTimezone(endDate, timezone);\n\n return (\n isSameDate(shiftedSelectedStart, shiftedStart) &&\n isSameDate(shiftedSelectedEnd, shiftedEnd)\n );\n};\n\nexport const isDateRangeTheWholeMonth = (\n { startDate, endDate }: DateRange,\n timezone: Timezone = 'system'\n): boolean => {\n const start = timezone === 'UTC' ? dayjs.utc(startDate) : dayjs(startDate);\n const end = timezone === 'UTC' ? dayjs.utc(endDate) : dayjs(endDate);\n\n if (start.month() !== end.month()) {\n return false;\n }\n\n const startDateIsFirstDay = start.isSame(start.startOf('month'), 'day');\n const endDateIsLastDay = end.isSame(end.endOf('month'), 'day');\n\n return startDateIsFirstDay && endDateIsLastDay;\n};\n\nexport const isDateRangeValid = (dateRange: DateRange): boolean => {\n if (!dateRange?.startDate || !dateRange?.endDate) {\n return false;\n }\n\n if (!(dateRange.startDate instanceof Date) || !dayjs(dateRange.startDate).isValid()) {\n return false;\n }\n\n if (!(dateRange.endDate instanceof Date) || !dayjs(dateRange.endDate).isValid()) {\n return false;\n }\n\n if (dateRange.startDate.getTime() > dateRange.endDate.getTime()) {\n return false;\n }\n\n return true;\n};\n"],"names":["dayjs","isSameDate"],"mappings":";;;;;;;;;;;;AAUA,MAAM,MAAA,GAAS,OAAA;AAcf,MAAM,eAAA,GAAkB,CAAC,OAAA,KAAwC;AAC/D,EAAA,MAAM,qBAAqE,EAAC;AAE5E,EAAA,OAAO,CAAC,UAAoB,IAAA,KAAuB;AACjD,IAAA,IAAI,CAAC,kBAAA,CAAmB,QAAQ,CAAA,EAAG;AACjC,MAAA,MAAM,IAAA,GAAO,aAAa,KAAA,GAAQ,EAAE,GAAG,OAAA,EAAS,QAAA,EAAU,OAAM,GAAI,OAAA;AACpE,MAAA,kBAAA,CAAmB,QAAQ,CAAA,GAAI,IAAI,IAAA,CAAK,cAAA,CAAe,QAAQ,IAAI,CAAA;AAAA,IACrE;AACA,IAAA,OAAO,kBAAA,CAAmB,QAAQ,CAAA,CAAE,MAAA,CAAO,IAAI,CAAA;AAAA,EACjD,CAAA;AACF,CAAA;AAEO,MAAM,qBAAqB,eAAA,CAAgB;AAAA,EAChD,GAAA,EAAK,SAAA;AAAA,EACL,KAAA,EAAO,OAAA;AAAA,EACP,IAAA,EAAM;AACR,CAAC;AAEM,MAAM,aAAA,GAAgB,eAAA,CAAgB,EAAE,OAAA,EAAS,SAAS;AAE1D,MAAM,yBAAyB,eAAA,CAAgB;AAAA,EACpD,GAAA,EAAK,SAAA;AAAA,EACL,KAAA,EAAO,OAAA;AAAA,EACP,IAAA,EAAM,SAAA;AAAA,EACN,MAAA,EAAQ;AACV,CAAC;AAEM,MAAM,oCAAoC,eAAA,CAAgB;AAAA,EAC/D,GAAA,EAAK,SAAA;AAAA,EACL,KAAA,EAAO,OAAA;AAAA,EACP,IAAA,EAAM,SAAA;AAAA,EACN,MAAA,EAAQ,SAAA;AAAA,EACR,MAAA,EAAQ;AACV,CAAC;AAEM,MAAM,mBAAmB,eAAA,CAAgB;AAAA,EAC9C,KAAA,EAAO,OAAA;AAAA,EACP,IAAA,EAAM;AACR,CAAC;AAQM,MAAM,eAAA,GAAkB,CAAC,IAAA,EAAY,QAAA,KAA6B;AACvE,EAAA,IAAI,aAAa,KAAA,EAAO;AACtB,IAAA,OAAO,IAAA;AAAA,EACT;AACA,EAAA,OAAO,IAAI,KAAK,IAAA,CAAK,OAAA,KAAY,IAAA,CAAK,iBAAA,KAAsB,GAAM,CAAA;AACpE;AAEO,MAAM,iBAAA,GAAoB,CAAC,IAAA,EAAY,QAAA,KAA6B;AACzE,EAAA,IAAI,aAAa,KAAA,EAAO;AACtB,IAAA,OAAO,IAAA;AAAA,EACT;AACA,EAAA,OAAO,IAAI,KAAK,IAAA,CAAK,OAAA,KAAY,IAAA,CAAK,iBAAA,KAAsB,GAAM,CAAA;AACpE;AAEO,MAAM,qCAAA,GAAwC,CACnD,cAAA,KACgB;AAChB,EAAA,MAAM,MAAMA,sBAAA,EAAM;AAElB,EAAA,IAAI,iBAAiB,CAAA,EAAG;AACtB,IAAA,MAAM,gBAA6B,EAAC;AACpC,IAAA,KAAA,IAAS,IAAI,CAAA,EAAG,CAAA,GAAI,KAAK,GAAA,CAAI,cAAc,GAAG,CAAA,EAAA,EAAK;AACjD,MAAA,MAAM,IAAA,GAAO,GAAA,CAAI,QAAA,CAAS,CAAA,EAAG,OAAO,CAAA;AACpC,MAAA,IAAI,IAAA,CAAK,MAAK,KAAM,CAAA,IAAK,KAAK,KAAA,EAAM,KAAM,GAAA,CAAI,KAAA,EAAM,EAAG;AACrD,QAAA;AAAA,MACF;AACA,MAAA,aAAA,CAAc,IAAA,CAAK;AAAA,QACjB,SAAA,EAAW,IAAA,CAAK,OAAA,CAAQ,OAAO,EAAE,MAAA,EAAO;AAAA,QACxC,OAAA,EAAS,CAAA,KAAM,CAAA,GAAI,GAAA,CAAI,MAAA,KAAW,IAAA,CAAK,KAAA,CAAM,OAAO,CAAA,CAAE,MAAA;AAAO,OAC9D,CAAA;AAAA,IACH;AAEA,IAAA,OAAO,cAAc,OAAA,EAAQ;AAAA,EAC/B;AAEA,EAAA,MAAM,gBAA6B,EAAC;AACpC,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,cAAA,EAAgB,CAAA,EAAA,EAAK;AACvC,IAAA,MAAM,IAAA,GAAO,GAAA,CAAI,GAAA,CAAI,CAAA,EAAG,OAAO,CAAA;AAC/B,IAAA,aAAA,CAAc,IAAA,CAAK;AAAA,MACjB,SAAA,EAAW,IAAA,CAAK,OAAA,CAAQ,OAAO,EAAE,MAAA,EAAO;AAAA,MACxC,OAAA,EAAS,IAAA,CAAK,KAAA,CAAM,OAAO,EAAE,MAAA;AAAO,KACrC,CAAA;AAAA,EACH;AAEA,EAAA,OAAO,aAAA;AACT;AAoEO,MAAM,uBAAuB,CAClC,SAAA,EACA,SAEA,KAAA,CAAM,OAAA,CAAQ,SAAS,CAAA,IACvB,SAAA,CAAU,MAAA,GAAS,CAAA,IACnB,CAAC,SAAA,CAAU,IAAA,CAAK,iBAAeC,mBAAA,CAAW,WAAA,EAAa,IAAI,CAAC;AAEvD,MAAM,sBAAA,GAAyB,CACpC,SAAA,EACA,OAAA,EACA,cAAA,KACY;AAEZ,EAAA,MAAM,iBAAiB,IAAA,CAAK,GAAA;AAAA,IAC1BD,sBAAA,CAAM,SAAS,CAAA,CAAE,OAAA,CAAQ,KAAK,CAAA,CAAE,IAAA,CAAKA,sBAAA,CAAM,OAAO,CAAA,CAAE,OAAA,CAAQ,KAAK,GAAG,MAAM;AAAA,GAC5E;AAEA,EAAA,OAAO,cAAA,GAAiB,cAAA;AAC1B;AAEA,MAAM,UAAA,GAAa,EAAA,GAAK,EAAA,GAAK,EAAA,GAAK,GAAA;AAClC,MAAM,cAAc,EAAA,GAAK,GAAA;AAElB,MAAM,sBAAA,GAAyB,CACpC,aAAA,EACA,eAAA,EACA,WAAqB,QAAA,KACT;AACZ,EAAA,MAAM,EAAE,SAAA,EAAW,OAAA,EAAQ,GAAI,eAAA;AAE/B,EAAA,IAAI,QAAQ,OAAA,EAAQ,GAAI,SAAA,CAAU,OAAA,KAAY,UAAA,EAAY;AACxD,IAAA,OACE,IAAA,CAAK,IAAI,aAAA,CAAc,SAAA,CAAU,SAAQ,GAAI,SAAA,CAAU,SAAS,CAAA,IAAK,eACrE,IAAA,CAAK,GAAA,CAAI,cAAc,OAAA,CAAQ,OAAA,KAAY,OAAA,CAAQ,OAAA,EAAS,CAAA,IAAK,WAAA;AAAA,EAErE;AAGA,EAAA,MAAM,oBAAA,GAAuB,eAAA,CAAgB,aAAA,CAAc,SAAA,EAAW,QAAQ,CAAA;AAC9E,EAAA,MAAM,kBAAA,GAAqB,eAAA,CAAgB,aAAA,CAAc,OAAA,EAAS,QAAQ,CAAA;AAC1E,EAAA,MAAM,YAAA,GAAe,eAAA,CAAgB,SAAA,EAAW,QAAQ,CAAA;AACxD,EAAA,MAAM,UAAA,GAAa,eAAA,CAAgB,OAAA,EAAS,QAAQ,CAAA;AAEpD,EAAA,OACEC,oBAAW,oBAAA,EAAsB,YAAY,CAAA,IAC7CA,mBAAA,CAAW,oBAAoB,UAAU,CAAA;AAE7C;AAEO,MAAM,2BAA2B,CACtC,EAAE,WAAW,OAAA,EAAQ,EACrB,WAAqB,QAAA,KACT;AACZ,EAAA,MAAM,KAAA,GAAQ,aAAa,KAAA,GAAQD,sBAAA,CAAM,IAAI,SAAS,CAAA,GAAIA,uBAAM,SAAS,CAAA;AACzE,EAAA,MAAM,GAAA,GAAM,aAAa,KAAA,GAAQA,sBAAA,CAAM,IAAI,OAAO,CAAA,GAAIA,uBAAM,OAAO,CAAA;AAEnE,EAAA,IAAI,KAAA,CAAM,KAAA,EAAM,KAAM,GAAA,CAAI,OAAM,EAAG;AACjC,IAAA,OAAO,KAAA;AAAA,EACT;AAEA,EAAA,MAAM,sBAAsB,KAAA,CAAM,MAAA,CAAO,MAAM,OAAA,CAAQ,OAAO,GAAG,KAAK,CAAA;AACtE,EAAA,MAAM,mBAAmB,GAAA,CAAI,MAAA,CAAO,IAAI,KAAA,CAAM,OAAO,GAAG,KAAK,CAAA;AAE7D,EAAA,OAAO,mBAAA,IAAuB,gBAAA;AAChC;AAEO,MAAM,gBAAA,GAAmB,CAAC,SAAA,KAAkC;AACjE,EAAA,IAAI,CAAC,SAAA,EAAW,SAAA,IAAa,CAAC,WAAW,OAAA,EAAS;AAChD,IAAA,OAAO,KAAA;AAAA,EACT;AAEA,EAAA,IAAI,EAAE,SAAA,CAAU,SAAA,YAAqB,IAAA,CAAA,IAAS,CAACA,uBAAM,SAAA,CAAU,SAAS,CAAA,CAAE,OAAA,EAAQ,EAAG;AACnF,IAAA,OAAO,KAAA;AAAA,EACT;AAEA,EAAA,IAAI,EAAE,SAAA,CAAU,OAAA,YAAmB,IAAA,CAAA,IAAS,CAACA,uBAAM,SAAA,CAAU,OAAO,CAAA,CAAE,OAAA,EAAQ,EAAG;AAC/E,IAAA,OAAO,KAAA;AAAA,EACT;AAEA,EAAA,IAAI,UAAU,SAAA,CAAU,OAAA,KAAY,SAAA,CAAU,OAAA,CAAQ,SAAQ,EAAG;AAC/D,IAAA,OAAO,KAAA;AAAA,EACT;AAEA,EAAA,OAAO,IAAA;AACT;;;;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dialog.module.css.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Dialog.module.css.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../../../../src/components/Dialog/Dialog.tsx"],"sourcesContent":["import * as RadixDialog from '@radix-ui/react-dialog';\nimport { Button, ButtonProps } from '@/components/Button';\nimport { Icon } from '@/components/Icon';\nimport { Spacer } from '@/components/Spacer';\nimport { CrossButton } from '@/components/CrossButton';\nimport { cn, cva } from '@/lib/cva';\nimport { DialogContentProps, DialogProps, DialogTriggerProps } from './Dialog.types';\nimport { useResolvedPortalContainer } from '@/providers/PortalContext';\nimport styles from './Dialog.module.css';\n\nexport const Dialog = ({ children, ...props }: DialogProps) => {\n return <RadixDialog.Root {...props}>{children}</RadixDialog.Root>;\n};\n\nconst DialogTrigger = ({\n children,\n asChild,\n className,\n ...props\n}: DialogTriggerProps) => {\n return (\n <RadixDialog.Trigger\n asChild={asChild}\n className={asChild ? className : cn(styles.trigger, className)}\n {...props}\n >\n {children}\n </RadixDialog.Trigger>\n );\n};\n\nDialogTrigger.displayName = 'DialogTrigger';\nDialog.Trigger = DialogTrigger;\n\nconst DialogClose = ({ label = 'Close', type = 'secondary', ...props }: ButtonProps) => (\n <RadixDialog.Close asChild>\n <Button\n type={type}\n label={label}\n {...props}\n />\n </RadixDialog.Close>\n);\n\nDialogClose.displayName = 'DialogClose';\nDialog.Close = DialogClose;\n\nconst contentAreaVariants = cva(styles.content, {\n variants: {\n reducePadding: {\n true: styles['content_reduce-padding'],\n },\n },\n});\n\nconst titleAreaVariants = cva(styles['title-area'], {\n variants: {\n onlyClose: {\n true: styles['title-area_only-close'],\n },\n },\n});\n\nconst CloseButton = ({ onClose }: { onClose?: () => void }) => (\n <RadixDialog.Close asChild>\n <CrossButton onClick={onClose}>\n <Icon\n name=\"cross\"\n size=\"lg\"\n />\n </CrossButton>\n </RadixDialog.Close>\n);\n\nconst DialogContent = ({\n title,\n description,\n children,\n showClose,\n onClose,\n forceMount,\n container,\n showOverlay = true,\n reducePadding = false,\n className,\n ...props\n}: DialogContentProps) => {\n const portalContainer = useResolvedPortalContainer(container);\n\n return (\n <RadixDialog.Portal\n forceMount={forceMount}\n container={portalContainer}\n >\n {showOverlay && <RadixDialog.Overlay className={styles.overlay} />}\n <RadixDialog.Content\n data-testid=\"click-dialog-contentarea\"\n {...props}\n className={cn(contentAreaVariants({ reducePadding }), className)}\n >\n {(title || showClose) && (\n <>\n <div className={cn(titleAreaVariants({ onlyClose: !!showClose && !title }))}>\n {title && (\n <RadixDialog.Title\n data-testid=\"click-dialog-title\"\n className={styles.title}\n >\n {title}\n </RadixDialog.Title>\n )}\n {showClose && (\n <CloseButton\n data-testid=\"click-dialog-close\"\n onClose={onClose}\n />\n )}\n </div>\n <Spacer size=\"sm\" />\n </>\n )}\n {description ? (\n <RadixDialog.Description className={styles.description}>\n {description}\n </RadixDialog.Description>\n ) : (\n <RadixDialog.Description hidden />\n )}\n {children}\n </RadixDialog.Content>\n </RadixDialog.Portal>\n );\n};\n\nDialogContent.displayName = 'DialogContent';\nDialog.Content = DialogContent;\n"],"names":["RadixDialog","jsx","cn","styles","Button","cva","CrossButton","Icon","useResolvedPortalContainer","jsxs","Fragment","Spacer"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../../src/components/Dialog/Dialog.tsx"],"sourcesContent":["import * as RadixDialog from '@radix-ui/react-dialog';\nimport { Button, ButtonProps } from '@/components/Button';\nimport { Icon } from '@/components/Icon';\nimport { Spacer } from '@/components/Spacer';\nimport { CrossButton } from '@/components/CrossButton';\nimport { cn, cva } from '@/lib/cva';\nimport { DialogContentProps, DialogProps, DialogTriggerProps } from './Dialog.types';\nimport { useResolvedPortalContainer } from '@/providers/PortalContext';\nimport styles from './Dialog.module.css';\n\nexport const Dialog = ({ children, ...props }: DialogProps) => {\n return <RadixDialog.Root {...props}>{children}</RadixDialog.Root>;\n};\n\nconst DialogTrigger = ({\n children,\n asChild,\n className,\n ...props\n}: DialogTriggerProps) => {\n return (\n <RadixDialog.Trigger\n asChild={asChild}\n className={asChild ? className : cn(styles.trigger, className)}\n {...props}\n >\n {children}\n </RadixDialog.Trigger>\n );\n};\n\nDialogTrigger.displayName = 'DialogTrigger';\nDialog.Trigger = DialogTrigger;\n\nconst DialogClose = ({ label = 'Close', type = 'secondary', ...props }: ButtonProps) => (\n <RadixDialog.Close asChild>\n <Button\n type={type}\n label={label}\n {...props}\n />\n </RadixDialog.Close>\n);\n\nDialogClose.displayName = 'DialogClose';\nDialog.Close = DialogClose;\n\nconst contentAreaVariants = cva(styles.content, {\n variants: {\n reducePadding: {\n true: styles['content_reduce-padding'],\n },\n },\n});\n\nconst titleAreaVariants = cva(styles['title-area'], {\n variants: {\n onlyClose: {\n true: styles['title-area_only-close'],\n },\n },\n});\n\nconst CloseButton = ({ onClose }: { onClose?: () => void }) => (\n <RadixDialog.Close asChild>\n <CrossButton onClick={onClose}>\n <Icon\n name=\"cross\"\n size=\"lg\"\n />\n </CrossButton>\n </RadixDialog.Close>\n);\n\nconst DialogContent = ({\n title,\n description,\n children,\n showClose,\n onClose,\n forceMount,\n container,\n showOverlay = true,\n reducePadding = false,\n className,\n ...props\n}: DialogContentProps) => {\n const portalContainer = useResolvedPortalContainer(container);\n\n return (\n <RadixDialog.Portal\n forceMount={forceMount}\n container={portalContainer}\n >\n {showOverlay && <RadixDialog.Overlay className={styles.overlay} />}\n <RadixDialog.Content\n data-testid=\"click-dialog-contentarea\"\n {...props}\n className={cn(contentAreaVariants({ reducePadding }), className)}\n >\n {(title || showClose) && (\n <>\n <div className={cn(titleAreaVariants({ onlyClose: !!showClose && !title }))}>\n {title && (\n <RadixDialog.Title\n data-testid=\"click-dialog-title\"\n className={styles.title}\n >\n {title}\n </RadixDialog.Title>\n )}\n {showClose && (\n <CloseButton\n data-testid=\"click-dialog-close\"\n onClose={onClose}\n />\n )}\n </div>\n <Spacer size=\"sm\" />\n </>\n )}\n {description ? (\n <RadixDialog.Description className={styles.description}>\n {description}\n </RadixDialog.Description>\n ) : (\n <RadixDialog.Description hidden />\n )}\n {children}\n </RadixDialog.Content>\n </RadixDialog.Portal>\n );\n};\n\nDialogContent.displayName = 'DialogContent';\nDialog.Content = DialogContent;\n"],"names":["RadixDialog","jsx","cn","styles","Button","cva","CrossButton","Icon","useResolvedPortalContainer","jsxs","Fragment","Spacer"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dropdown.module.css.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Dropdown.module.css.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
require("./Dropdown.css");
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
Object.
|
|
4
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
5
5
|
|
|
6
6
|
const jsxRuntime = require('react/jsx-runtime');
|
|
7
7
|
const DropdownMenu = require('@radix-ui/react-dropdown-menu');
|
|
8
|
+
const reactSlot = require('@radix-ui/react-slot');
|
|
8
9
|
const react = require('react');
|
|
9
10
|
const GenericMenu = require('../GenericMenu/index.cjs');
|
|
10
11
|
const cva = require('../../lib/cva.cjs');
|
|
@@ -156,24 +157,24 @@ const DropdownItem = ({
|
|
|
156
157
|
iconDir,
|
|
157
158
|
type = "default",
|
|
158
159
|
tooltipProps,
|
|
159
|
-
children,
|
|
160
160
|
...props
|
|
161
161
|
}) => {
|
|
162
|
+
const renderLabel = (label) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
163
|
+
IconWrapper.IconWrapper,
|
|
164
|
+
{
|
|
165
|
+
icon,
|
|
166
|
+
iconDir,
|
|
167
|
+
tooltipProps: { side: "right", ...tooltipProps },
|
|
168
|
+
children: label
|
|
169
|
+
}
|
|
170
|
+
);
|
|
162
171
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
163
172
|
DropdownMenuItem,
|
|
164
173
|
{
|
|
165
174
|
as: DropdownMenu__namespace.Item,
|
|
166
175
|
type,
|
|
167
176
|
...props,
|
|
168
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
169
|
-
IconWrapper.IconWrapper,
|
|
170
|
-
{
|
|
171
|
-
icon,
|
|
172
|
-
iconDir,
|
|
173
|
-
tooltipProps: { side: "right", ...tooltipProps },
|
|
174
|
-
children
|
|
175
|
-
}
|
|
176
|
-
)
|
|
177
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(reactSlot.Slottable, { child: props.children, children: renderLabel })
|
|
177
178
|
}
|
|
178
179
|
);
|
|
179
180
|
};
|
|
@@ -181,5 +182,4 @@ DropdownItem.displayName = "DropdownItem";
|
|
|
181
182
|
Dropdown.Item = DropdownItem;
|
|
182
183
|
|
|
183
184
|
exports.Dropdown = Dropdown;
|
|
184
|
-
exports.default = Dropdown;
|
|
185
185
|
//# sourceMappingURL=index.cjs.map
|