@clickhouse/click-ui 0.12.0 → 0.13.0
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 +3435 -3428
- 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.css +3 -3
- 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 +3435 -3428
- 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.css +3 -3
- 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":"index.js","sources":["../../../../src/components/Grid/Grid.tsx"],"sourcesContent":["import {\n CSSProperties,\n HTMLAttributes,\n KeyboardEventHandler,\n MouseEventHandler,\n PointerEventHandler,\n ReactElement,\n forwardRef,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport {\n GridOnScrollProps,\n VariableSizeGrid,\n GridOnItemsRenderedProps,\n GridChildComponentProps,\n} from 'react-window';\nimport AutoSizer, { Size } from 'react-virtualized-auto-sizer';\nimport RowNumberColumn from './RowNumberColumn';\nimport Header from './Header';\nimport { cn, cva } from '@/lib/cva';\nimport styles from './Grid.module.css';\nimport {\n GetResizerPositionFn,\n GridContextMenuItemProps,\n GridProps,\n ItemDataType,\n ResizerPosition,\n RoundedType,\n SelectedRegion,\n SelectionAction,\n SelectionFocus,\n onSelectFn,\n} from './types';\nimport { useSelectionActions } from './useSelectionActions';\nimport { mergeRefs } from '@/utils/mergeRefs';\nimport { Cell } from './Cell';\nimport { ContextMenu } from '@/components/ContextMenu';\nimport { createToast } from '@/components/Toast/toastEmitter';\nimport copyGridElements from './copyGridElements';\nimport useColumns from './useColumns';\nimport useResizingState from './useResizingState';\n\nconst gridVariants = cva(styles['grid'], {\n variants: {\n bordered: { true: styles['grid_bordered'] },\n },\n});\n\nconst NO_BUTTONS_PRESSED = 0;\nconst LEFT_BUTTON_PRESSED = 1;\nconst RIGHT_BUTTON_PRESSED = 2;\n\nconst getRenderedCursor = (children: ReactElement[]) =>\n children.reduce(\n ([minRow, maxRow, minColumn, maxColumn], { props: { columnIndex, rowIndex } }) => {\n if (rowIndex < minRow) {\n minRow = rowIndex;\n }\n if (rowIndex > maxRow) {\n maxRow = rowIndex;\n }\n if (columnIndex < minColumn) {\n minColumn = columnIndex;\n }\n if (columnIndex > maxColumn) {\n maxColumn = columnIndex;\n }\n\n return [minRow, maxRow, minColumn, maxColumn];\n },\n [\n Number.POSITIVE_INFINITY,\n Number.NEGATIVE_INFINITY,\n Number.POSITIVE_INFINITY,\n Number.NEGATIVE_INFINITY,\n ]\n );\n\nconst roundedRadii: Record<RoundedType, string> = {\n none: 'var(--click-grid-radii-none)',\n lg: 'var(--click-grid-radii-lg)',\n md: 'var(--click-grid-radii-md)',\n sm: 'var(--click-grid-radii-sm)',\n};\n\ninterface InnerElementTypeTypes extends HTMLAttributes<HTMLDivElement> {\n children: ReactElement[];\n}\n\nconst OuterElementType = forwardRef<HTMLDivElement>((props, ref) => (\n <div\n ref={ref}\n data-testid=\"grid-outer-element\"\n tabIndex={0}\n {...props}\n />\n));\n\nexport const Grid = forwardRef<HTMLDivElement, GridProps>(\n (\n {\n autoFocus,\n autoHeight = false,\n rowStart = 0,\n showRowNumber = true,\n rounded = 'none',\n showHeader = true,\n focus: focusProp,\n useIsScrolling = true,\n rowHeight = 33,\n columnCount,\n columnWidth: columnWidthProp,\n onSelect: onSelectProp,\n headerHeight = 33,\n rowCount,\n cell,\n onColumnResize: onColumnResizeProp,\n onFocusChange: onFocusChangeProp,\n getMenuOptions,\n onKeyDown: onKeyDownProp,\n selection: selectionProp,\n showToast,\n onMouseDown: onMouseDownProp,\n onMouseMove: onMouseMoveProp,\n showBorder = false,\n onCopy: onCopyProp,\n onCopyCallback,\n onContextMenu: onContextMenuProp,\n forwardedGridRef,\n onItemsRendered: onItemsRenderedProp,\n rowAutoHeight,\n ...props\n },\n forwardedRef\n ) => {\n const [focus, setFocus] = useState<SelectionFocus>(\n focusProp ?? {\n row: rowStart,\n column: 0,\n }\n );\n const [selection, setSelection] = useState<SelectedRegion>(\n selectionProp ?? {\n type: 'empty',\n }\n );\n\n const defaultOnCopy: () => Promise<void> = useCallback(async () => {\n try {\n await copyGridElements({\n cell,\n selection,\n focus: focusProp ?? focus,\n rowCount,\n columnCount,\n outerRef: outerRef,\n });\n\n if (onCopyCallback) {\n onCopyCallback(true);\n }\n if (showToast) {\n createToast({\n title: 'Copied successfully',\n description: 'Now you can paste the content',\n type: 'success',\n });\n }\n } catch (e) {\n console.error(e);\n\n if (onCopyCallback) {\n onCopyCallback(false);\n }\n\n if (showToast) {\n createToast({\n title: 'Failed to copy',\n description: 'Encountered an error while copying. Try again after sometime',\n type: 'danger',\n });\n }\n }\n }, [\n cell,\n columnCount,\n focus,\n focusProp,\n rowCount,\n selection,\n showToast,\n onCopyCallback,\n ]);\n\n const customOnCopy: () => Promise<void> = useMemo(() => {\n const result = async () => {\n if (onCopyProp) {\n await onCopyProp(selection, focus);\n }\n };\n return result;\n }, [onCopyProp, selection, focus]);\n\n const onCopy: () => Promise<void> =\n typeof onCopyProp === 'function' ? customOnCopy : defaultOnCopy;\n\n const defaultMenuOptions = [\n {\n label: 'Copy',\n onSelect: onCopy,\n },\n ];\n\n const [menuOptions, setMenuOptions] =\n useState<GridContextMenuItemProps[]>(defaultMenuOptions);\n const [contextMenuOpen, setContextMenuOpen] = useState(false);\n const [scrolledVertical, setScrolledVertical] = useState(false);\n const [scrolledHorizontal, setScrolledHorizontal] = useState(false);\n const dragState = useRef<number | false>(false);\n const gridRef = useRef<VariableSizeGrid>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n const outerRef = useRef<HTMLDivElement>(null);\n const elementBorderRef = useRef({\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n scrollBarWidth: 0,\n scrollBarHeight: 0,\n width: 0,\n height: 0,\n });\n const onCellSelect: onSelectFn = useCallback(\n (action, selection, focus) => {\n setSelection(selection);\n if (typeof onSelectProp === 'function') {\n onSelectProp(action, selection, focus);\n }\n },\n [onSelectProp]\n );\n const resizingState = useResizingState();\n\n const [rowHeights, setRowHeights] = useState<{ [key: number]: number }>({});\n\n const getRowHeight = useCallback(\n (index: number) => {\n if (rowAutoHeight && rowHeights[index] !== undefined) {\n return rowHeights[index] + rowHeight;\n }\n return rowHeight;\n },\n [rowHeight, rowAutoHeight, rowHeights]\n );\n\n const updateRowHeight = useCallback(\n (rowIndex: number, height: number) => {\n if (!rowAutoHeight) {\n return;\n }\n\n setRowHeights(prevRowHeights => {\n if (height > (prevRowHeights[rowIndex] || 0) && gridRef.current) {\n const newRowHeights = { ...prevRowHeights, [rowIndex]: height };\n gridRef.current.resetAfterRowIndex(rowIndex);\n return newRowHeights;\n }\n return prevRowHeights;\n });\n },\n [rowAutoHeight, gridRef]\n );\n\n const onFocusChange = useCallback(\n (row: number, column: number) => {\n setFocus(focus => ({\n row: row ?? focusProp?.row ?? focus.row,\n column: column ?? focusProp?.column ?? focus.column,\n }));\n if (typeof onFocusChangeProp === 'function') {\n onFocusChangeProp(row, column);\n }\n },\n [onFocusChangeProp, focusProp]\n );\n\n const rowNumberWidth = ((rowStart + rowCount).toString().length + 2) * 8 + 3; // 128 includes 8px left and right padding and (8px + 8px + 8x(1ch) * rowcount) and 3 is for avoiding ellipsis\n\n const { getColumnHorizontalPosition, onColumnResize, columnWidth, initColumnSize } =\n useColumns({\n columnCount,\n columnWidth: columnWidthProp,\n outerGridRef: outerRef,\n gridRef,\n onColumnResize: onColumnResizeProp,\n });\n\n const scrollGridTo = useCallback(\n async ({ row, column }: { row?: number; column?: number }) => {\n if (!outerRef.current || !gridRef.current) {\n return;\n }\n\n const rowIndex = row ?? 0;\n const columnIndex = column ?? 0;\n let element = outerRef.current?.querySelector<HTMLElement>(\n `[data-row=\"${rowIndex}\"][data-column=\"${columnIndex}\"]`\n );\n if (!element) {\n return;\n }\n\n const { scrollTop, scrollLeft } = outerRef.current;\n // this is for the test to perform correctly\n if (typeof element?.scrollIntoView === 'function') {\n element?.scrollIntoView({\n block: 'nearest',\n inline: 'nearest',\n });\n // This is for the element to be available after the scroll.\n await new Promise(requestAnimationFrame);\n }\n element = outerRef.current?.querySelector<HTMLElement>(\n `[data-row=\"${rowIndex}\"][data-column=\"${columnIndex}\"]`\n );\n if (!element) {\n return;\n }\n if (scrollLeft > element.offsetLeft || scrollTop > element.offsetTop) {\n outerRef.current?.scrollBy(\n scrollLeft > element.offsetLeft ? -rowNumberWidth : 0,\n scrollTop > element.offsetTop ? -headerHeight : 0\n );\n }\n },\n [headerHeight, rowNumberWidth]\n );\n\n const getFixedResizerLeftPosition = useCallback(\n (clientX: number, width: number, columnIndex: number): string | number => {\n const columnPosition = getColumnHorizontalPosition(columnIndex);\n const columnLeft = columnPosition + width;\n const { width: containerWidth, left, scrollBarWidth } = elementBorderRef.current;\n const scrollLeft = outerRef.current?.scrollLeft ?? 0;\n if (clientX + rowNumberWidth - left > containerWidth + scrollBarWidth) {\n return scrollLeft + containerWidth - scrollBarWidth - 4;\n }\n\n if (width < 50) {\n //50 is the minWidth for the column\n return columnPosition + rowNumberWidth + 50;\n }\n\n return columnLeft + rowNumberWidth - 4;\n },\n [getColumnHorizontalPosition, rowNumberWidth]\n );\n\n const getResizerPosition: GetResizerPositionFn = useCallback(\n (clientX, width, columnIndex) => {\n const result: ResizerPosition = {\n left: `${getFixedResizerLeftPosition(clientX, width, columnIndex)}px`,\n };\n\n if (outerRef.current) {\n result.top = `${outerRef.current.scrollTop}px`;\n }\n return result;\n },\n [getFixedResizerLeftPosition]\n );\n\n const clearSelectionAndFocus = useCallback(\n (force: boolean) => {\n setSelection(selection => {\n if (selection.type === 'columns' && !force) {\n return selection;\n } else {\n return { type: 'empty' };\n }\n });\n const newFocus = focusProp ?? focus;\n onFocusChange(newFocus.row, newFocus.column);\n scrollGridTo(newFocus);\n },\n [focus, focusProp, onFocusChange, scrollGridTo]\n );\n\n useEffect(() => {\n clearSelectionAndFocus(true);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [rowStart]);\n\n const { getSelectionType, onSelection, mouseMoveCellSelect, moveSelection } =\n useSelectionActions({\n onCellSelect,\n focus: focusProp ?? focus,\n columnCount,\n rowCount,\n onFocusChange,\n scrollGridTo,\n selection: selectionProp ?? selection,\n rowStart,\n });\n\n const data: ItemDataType = {\n showRowNumber,\n cell,\n rowCount,\n columnCount,\n showHeader,\n focus: focusProp ?? focus,\n getSelectionType,\n rowHeight,\n headerHeight,\n rowNumberWidth,\n rowStart,\n rowAutoHeight,\n updateRowHeight,\n getRowHeight,\n };\n\n const InnerElementType = forwardRef<HTMLDivElement, InnerElementTypeTypes>(\n ({ children, ...containerProps }, ref) => {\n const [minRow, maxRow, minColumn, maxColumn] = getRenderedCursor(children);\n return (\n <div\n {...containerProps}\n className={cn(\n styles['grid__inner'],\n `sticky-grid__container grid-outer ${props.className ?? ''}`\n )}\n >\n <div\n className={styles['grid__data']}\n style={\n {\n '--grid-data-top': `${showHeader ? headerHeight : 0}px`,\n '--grid-data-left': `${showRowNumber ? rowNumberWidth : 0}px`,\n } as CSSProperties\n }\n ref={ref}\n >\n {children}\n </div>\n {showRowNumber && (\n <RowNumberColumn\n scrolledHorizontal={scrolledHorizontal}\n minRow={minRow}\n maxRow={maxRow}\n rowHeight={rowHeight}\n headerHeight={headerHeight}\n rowWidth={rowNumberWidth}\n rowCount={rowCount}\n getSelectionType={getSelectionType}\n rowStart={rowStart}\n showBorder={showBorder}\n rowAutoHeight={rowAutoHeight}\n />\n )}\n\n {showHeader && (\n <Header\n scrolledVertical={scrolledVertical}\n scrolledHorizontal={scrolledHorizontal}\n showRowNumber={showRowNumber}\n minColumn={minColumn}\n maxColumn={maxColumn}\n height={headerHeight}\n getColumnWidth={columnWidth}\n cell={cell}\n rowNumberWidth={rowNumberWidth}\n getSelectionType={getSelectionType}\n columnCount={columnCount}\n onColumnResize={onColumnResize}\n getColumnHorizontalPosition={getColumnHorizontalPosition}\n getResizerPosition={getResizerPosition}\n showBorder={showBorder}\n resizingState={resizingState}\n />\n )}\n </div>\n );\n }\n );\n useEffect(() => {\n if (autoFocus) {\n containerRef.current?.focus();\n }\n }, [autoFocus]);\n\n const onMouseDown: MouseEventHandler<HTMLDivElement> = useCallback(\n e => {\n containerRef.current?.focus();\n if (typeof onMouseDownProp === 'function' && e.buttons === LEFT_BUTTON_PRESSED) {\n onMouseDownProp(e);\n }\n const target = (e.target as HTMLElement).closest(\n '[data-grid-row][data-grid-column]'\n ) as HTMLElement;\n if (\n !target ||\n target.dataset.gridRow === undefined ||\n target.dataset.gridColumn === undefined\n ) {\n return;\n }\n\n if (e.buttons === RIGHT_BUTTON_PRESSED && target.dataset.selected === 'true') {\n return;\n }\n\n const { gridRow: rowIndexString, gridColumn: columnIndexString } = target.dataset;\n const row = parseInt(rowIndexString);\n const column = parseInt(columnIndexString);\n if (row === -1 && column === -1) {\n onSelection({ type: 'all' });\n return;\n }\n const shiftKeyPressed = e.shiftKey;\n\n if (row === -1) {\n onSelection({\n type: shiftKeyPressed ? 'shiftColumnSelection' : 'columnSelection',\n column,\n event: 'click',\n });\n if (!shiftKeyPressed) {\n onFocusChange(rowStart, column);\n }\n return;\n }\n if (column === -1) {\n onSelection({\n type: shiftKeyPressed ? 'shiftRowSelection' : 'rowSelection',\n row,\n event: 'click',\n });\n if (!shiftKeyPressed) {\n onFocusChange(row, 0);\n }\n return;\n }\n onSelection({\n type: shiftKeyPressed ? 'shiftSelection' : 'normal',\n row,\n column,\n event: 'click',\n });\n if (!shiftKeyPressed) {\n onFocusChange(row, column);\n }\n },\n [onFocusChange, onMouseDownProp, onSelection, rowStart]\n );\n\n const onPointerDown: PointerEventHandler<HTMLDivElement> = useCallback(e => {\n dragState.current = e.pointerId;\n }, []);\n\n const setPointerCapture: PointerEventHandler<HTMLDivElement> = useCallback(e => {\n if (e.buttons === NO_BUTTONS_PRESSED || dragState.current === false) {\n return;\n }\n\n containerRef.current?.setPointerCapture(dragState.current);\n }, []);\n\n const onPointerUp: PointerEventHandler<HTMLDivElement> = useCallback(\n e => {\n if (containerRef.current) {\n containerRef.current.releasePointerCapture(e.pointerId);\n if (!contextMenuOpen) {\n containerRef.current.focus();\n }\n }\n\n dragState.current = false;\n const newFocus = focusProp ?? focus;\n onFocusChange(newFocus.row, newFocus.column);\n },\n [contextMenuOpen, focus, focusProp, onFocusChange]\n );\n\n const onMouseMove: MouseEventHandler<HTMLDivElement> = useCallback(\n async e => {\n e.preventDefault();\n e.stopPropagation();\n if (typeof onMouseMoveProp === 'function') {\n onMouseMoveProp(e);\n }\n if (\n dragState.current === false ||\n e.buttons === NO_BUTTONS_PRESSED ||\n !containerRef.current ||\n !outerRef.current\n ) {\n return;\n }\n\n containerRef.current.setPointerCapture(dragState.current);\n let verticalSign = 0,\n horizontalSign = 0,\n x = e.clientX,\n y = e.clientY;\n if (\n elementBorderRef.current.left >= e.clientX ||\n e.clientX >=\n elementBorderRef.current.right - elementBorderRef.current.scrollBarWidth\n ) {\n const scrollHorizontalDirection =\n e.clientX <= elementBorderRef.current.left ? 'left' : 'right';\n if (\n (scrollHorizontalDirection === 'left' && e.movementX < 0) ||\n (scrollHorizontalDirection === 'right' && e.movementX > 0)\n ) {\n horizontalSign = scrollHorizontalDirection === 'left' ? -1 : 1;\n }\n x =\n scrollHorizontalDirection === 'left'\n ? elementBorderRef.current.left + rowNumberWidth + 10\n : elementBorderRef.current.right -\n elementBorderRef.current.scrollBarWidth -\n 10;\n }\n\n if (\n elementBorderRef.current.top >= e.clientY ||\n e.clientY >=\n elementBorderRef.current.bottom - elementBorderRef.current.scrollBarHeight\n ) {\n const scrollVerticalDirection =\n e.clientY <= elementBorderRef.current.top ? 'top' : 'bottom';\n if (\n (scrollVerticalDirection === 'top' && e.movementY < 0) ||\n (scrollVerticalDirection === 'bottom' && e.movementY > 0)\n ) {\n verticalSign = scrollVerticalDirection === 'top' ? -1 : 1;\n }\n y =\n scrollVerticalDirection === 'top'\n ? elementBorderRef.current.top + headerHeight + 10\n : elementBorderRef.current.bottom -\n elementBorderRef.current.scrollBarHeight -\n 10;\n }\n\n await new Promise(requestAnimationFrame);\n const cell = document.elementFromPoint(x, y) as HTMLElement | null;\n\n if (!cell) {\n return;\n }\n\n const { gridRow, gridColumn } = cell.dataset;\n if (!gridRow || !gridColumn) {\n return;\n }\n const rowIndex = Number(gridRow) + verticalSign;\n const columnIndex = Number(gridColumn) + horizontalSign;\n\n mouseMoveCellSelect(rowIndex, columnIndex);\n },\n [headerHeight, mouseMoveCellSelect, onMouseMoveProp, rowNumberWidth]\n );\n\n const onScroll = ({ scrollLeft, scrollTop }: GridOnScrollProps) => {\n setScrolledVertical(scrollTop > 0);\n setScrolledHorizontal(scrollLeft > 0);\n };\n\n const onResize = useCallback(\n ({ height, width }: Size) => {\n setTimeout(() => {\n if (!outerRef.current) {\n return;\n }\n\n const { top, bottom, left, right } =\n outerRef.current.getBoundingClientRect() ?? {};\n elementBorderRef.current = {\n top,\n bottom,\n left,\n right,\n scrollBarWidth: width - outerRef.current.clientWidth,\n scrollBarHeight: height - outerRef.current.clientHeight,\n width,\n height,\n };\n initColumnSize(outerRef.current.clientWidth - rowNumberWidth);\n }, 0);\n },\n [initColumnSize, rowNumberWidth]\n );\n\n const onKeyDown: KeyboardEventHandler<HTMLDivElement> = useCallback(\n async e => {\n if (typeof onKeyDownProp === 'function') {\n onKeyDownProp(e);\n }\n if (!e.defaultPrevented) {\n e.preventDefault();\n e.stopPropagation();\n }\n const moveAnchor = e.shiftKey;\n const { row, column } = focusProp ?? focus;\n\n const applyAction = (action: SelectionAction | null): void => {\n if (action) {\n onSelection({ ...action, event: 'keypress' });\n }\n if (action?.type === 'normal') {\n onFocusChange(action.row, action.column);\n }\n };\n if ((e.ctrlKey || e.metaKey) && e.key === 'c') {\n onCopy();\n return;\n }\n\n switch (e.key) {\n case 'ArrowLeft':\n applyAction(moveSelection(-1, 0, moveAnchor, 'keypress'));\n break;\n case 'ArrowRight':\n applyAction(moveSelection(1, 0, moveAnchor, 'keypress'));\n break;\n case 'ArrowUp':\n applyAction(moveSelection(0, -1, moveAnchor, 'keypress'));\n break;\n case 'ArrowDown':\n applyAction(moveSelection(0, 1, moveAnchor, 'keypress'));\n break;\n case 'Enter':\n onSelection({\n type: 'normal',\n row,\n column,\n event: 'keypress',\n });\n onFocusChange(row, column);\n break;\n case 'Escape':\n clearSelectionAndFocus(true);\n break;\n }\n containerRef.current?.focus();\n },\n [\n onKeyDownProp,\n focusProp,\n focus,\n onSelection,\n onFocusChange,\n onCopy,\n moveSelection,\n clearSelectionAndFocus,\n ]\n );\n const onContextMenu: MouseEventHandler<HTMLDivElement> = e => {\n onMouseDown(e);\n\n if (typeof onContextMenuProp === 'function') {\n onContextMenuProp(e);\n }\n if (typeof getMenuOptions === 'function') {\n const newOptions = getMenuOptions(selection, focusProp ?? focus);\n setMenuOptions([...defaultMenuOptions, ...newOptions]);\n }\n };\n\n const lastItemsRenderedProps = useRef<GridOnItemsRenderedProps>();\n const lastRowStart = useRef(rowStart);\n\n const onItemsRendered = useCallback(\n (props: GridOnItemsRenderedProps) => {\n lastItemsRenderedProps.current = props;\n return onItemsRenderedProp?.({\n ...props,\n visibleRowStartIndex: props.visibleRowStartIndex + rowStart,\n visibleRowStopIndex: props.visibleRowStopIndex + rowStart,\n overscanRowStartIndex: props.overscanRowStartIndex + rowStart,\n overscanRowStopIndex: props.overscanRowStopIndex + rowStart,\n });\n },\n [onItemsRenderedProp, rowStart]\n );\n\n // handles the case where rowStart changes, make sure to inform caller\n // of the new visible rows.\n useEffect(() => {\n if (lastItemsRenderedProps.current && rowStart !== lastRowStart.current) {\n onItemsRendered(lastItemsRenderedProps.current);\n lastRowStart.current = rowStart;\n }\n }, [rowStart, onItemsRendered]);\n\n const CellWithWidth = (\n args: GridChildComponentProps<ItemDataType>\n ): React.JSX.Element => {\n const width = columnWidth(args.columnIndex);\n return (\n <Cell\n {...args}\n width={width}\n />\n );\n };\n\n // Handles the case when rowCount/columnCount changes, rerenders styles\n useEffect(() => {\n if (gridRef.current) {\n gridRef.current.resetAfterRowIndex(0);\n }\n }, [rowCount, columnCount]);\n\n const contextMenuTriggerHeight = autoHeight\n ? rowCount * rowHeight +\n (showHeader ? headerHeight : 0) +\n elementBorderRef.current.scrollBarHeight\n : undefined;\n\n return (\n <ContextMenu\n modal={false}\n onOpenChange={setContextMenuOpen}\n >\n <ContextMenu.Trigger\n className={gridVariants({ bordered: showBorder })}\n style={\n {\n '--grid-radius': roundedRadii[rounded],\n '--grid-height': contextMenuTriggerHeight\n ? `${contextMenuTriggerHeight}px`\n : '100%',\n } as CSSProperties\n }\n ref={mergeRefs([forwardedRef, containerRef])}\n tabIndex={0}\n onMouseDown={onMouseDown}\n onMouseMove={onMouseMove}\n onKeyDown={onKeyDown}\n onPointerDown={onPointerDown}\n onPointerUp={onPointerUp}\n onPointerLeave={setPointerCapture}\n onPointerEnter={setPointerCapture}\n onContextMenu={onContextMenu}\n >\n <AutoSizer onResize={onResize}>\n {({ height, width }) => (\n <VariableSizeGrid\n ref={forwardedGridRef ? mergeRefs([forwardedGridRef, gridRef]) : gridRef}\n height={height}\n width={width}\n columnCount={columnCount}\n rowHeight={getRowHeight}\n useIsScrolling={useIsScrolling}\n innerElementType={InnerElementType}\n itemData={data}\n initialScrollTop={\n focus.row < rowStart\n ? focus.row * rowHeight\n : (focus.row - rowStart) * rowHeight\n }\n initialScrollLeft={getColumnHorizontalPosition(focus.column)}\n columnWidth={columnWidth}\n rowCount={rowCount}\n onScroll={onScroll}\n outerRef={outerRef}\n outerElementType={OuterElementType}\n onItemsRendered={onItemsRendered}\n {...props}\n >\n {CellWithWidth}\n </VariableSizeGrid>\n )}\n </AutoSizer>\n </ContextMenu.Trigger>\n <ContextMenu.Content>\n {menuOptions.map((option, index) => (\n <ContextMenu.Item\n key={`grid-${index}`}\n onSelect={option.onSelect}\n >\n {option.label}\n </ContextMenu.Item>\n ))}\n </ContextMenu.Content>\n </ContextMenu>\n );\n }\n);\n"],"names":["selection","focus","cell","props"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/Grid/Grid.tsx"],"sourcesContent":["import {\n CSSProperties,\n HTMLAttributes,\n KeyboardEventHandler,\n MouseEventHandler,\n PointerEventHandler,\n ReactElement,\n forwardRef,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport {\n GridOnScrollProps,\n VariableSizeGrid,\n GridOnItemsRenderedProps,\n GridChildComponentProps,\n} from 'react-window';\nimport AutoSizer, { Size } from 'react-virtualized-auto-sizer';\nimport RowNumberColumn from './RowNumberColumn';\nimport Header from './Header';\nimport { cn, cva } from '@/lib/cva';\nimport styles from './Grid.module.css';\nimport {\n GetResizerPositionFn,\n GridContextMenuItemProps,\n GridProps,\n ItemDataType,\n ResizerPosition,\n RoundedType,\n SelectedRegion,\n SelectionAction,\n SelectionFocus,\n onSelectFn,\n} from './types';\nimport { useSelectionActions } from './useSelectionActions';\nimport { mergeRefs } from '@/utils/mergeRefs';\nimport { Cell } from './Cell';\nimport { ContextMenu } from '@/components/ContextMenu';\nimport { createToast } from '@/components/Toast/toastEmitter';\nimport copyGridElements from './copyGridElements';\nimport useColumns from './useColumns';\nimport useResizingState from './useResizingState';\n\nconst gridVariants = cva(styles['grid'], {\n variants: {\n bordered: { true: styles['grid_bordered'] },\n },\n});\n\nconst NO_BUTTONS_PRESSED = 0;\nconst LEFT_BUTTON_PRESSED = 1;\nconst RIGHT_BUTTON_PRESSED = 2;\n\nconst getRenderedCursor = (children: ReactElement[]) =>\n children.reduce(\n ([minRow, maxRow, minColumn, maxColumn], { props: { columnIndex, rowIndex } }) => {\n if (rowIndex < minRow) {\n minRow = rowIndex;\n }\n if (rowIndex > maxRow) {\n maxRow = rowIndex;\n }\n if (columnIndex < minColumn) {\n minColumn = columnIndex;\n }\n if (columnIndex > maxColumn) {\n maxColumn = columnIndex;\n }\n\n return [minRow, maxRow, minColumn, maxColumn];\n },\n [\n Number.POSITIVE_INFINITY,\n Number.NEGATIVE_INFINITY,\n Number.POSITIVE_INFINITY,\n Number.NEGATIVE_INFINITY,\n ]\n );\n\nconst roundedRadii: Record<RoundedType, string> = {\n none: 'var(--click-grid-radii-none)',\n lg: 'var(--click-grid-radii-lg)',\n md: 'var(--click-grid-radii-md)',\n sm: 'var(--click-grid-radii-sm)',\n};\n\ninterface InnerElementTypeTypes extends HTMLAttributes<HTMLDivElement> {\n children: ReactElement[];\n}\n\nconst OuterElementType = forwardRef<HTMLDivElement>((props, ref) => (\n <div\n ref={ref}\n data-testid=\"grid-outer-element\"\n // eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex -- react-window scroll region; focusable for axe scrollable-region-focusable, keys are handled by the grid container\n tabIndex={0}\n {...props}\n />\n));\n\nexport const Grid = forwardRef<HTMLDivElement, GridProps>(\n (\n {\n autoFocus,\n autoHeight = false,\n rowStart = 0,\n showRowNumber = true,\n rounded = 'none',\n showHeader = true,\n focus: focusProp,\n useIsScrolling = true,\n rowHeight = 33,\n columnCount,\n columnWidth: columnWidthProp,\n onSelect: onSelectProp,\n headerHeight = 33,\n rowCount,\n cell,\n onColumnResize: onColumnResizeProp,\n onFocusChange: onFocusChangeProp,\n getMenuOptions,\n onKeyDown: onKeyDownProp,\n selection: selectionProp,\n showToast,\n onMouseDown: onMouseDownProp,\n onMouseMove: onMouseMoveProp,\n showBorder = false,\n onCopy: onCopyProp,\n onCopyCallback,\n onContextMenu: onContextMenuProp,\n forwardedGridRef,\n onItemsRendered: onItemsRenderedProp,\n rowAutoHeight,\n ...props\n },\n forwardedRef\n ) => {\n const [focus, setFocus] = useState<SelectionFocus>(\n focusProp ?? {\n row: rowStart,\n column: 0,\n }\n );\n const [selection, setSelection] = useState<SelectedRegion>(\n selectionProp ?? {\n type: 'empty',\n }\n );\n\n const defaultOnCopy: () => Promise<void> = useCallback(async () => {\n try {\n await copyGridElements({\n cell,\n selection,\n focus: focusProp ?? focus,\n rowCount,\n columnCount,\n outerRef: outerRef,\n });\n\n if (onCopyCallback) {\n onCopyCallback(true);\n }\n if (showToast) {\n createToast({\n title: 'Copied successfully',\n description: 'Now you can paste the content',\n type: 'success',\n });\n }\n } catch (e) {\n console.error(e);\n\n if (onCopyCallback) {\n onCopyCallback(false);\n }\n\n if (showToast) {\n createToast({\n title: 'Failed to copy',\n description: 'Encountered an error while copying. Try again after sometime',\n type: 'danger',\n });\n }\n }\n }, [\n cell,\n columnCount,\n focus,\n focusProp,\n rowCount,\n selection,\n showToast,\n onCopyCallback,\n ]);\n\n const customOnCopy: () => Promise<void> = useMemo(() => {\n const result = async () => {\n if (onCopyProp) {\n await onCopyProp(selection, focus);\n }\n };\n return result;\n }, [onCopyProp, selection, focus]);\n\n const onCopy: () => Promise<void> =\n typeof onCopyProp === 'function' ? customOnCopy : defaultOnCopy;\n\n const defaultMenuOptions = [\n {\n label: 'Copy',\n onSelect: onCopy,\n },\n ];\n\n const [menuOptions, setMenuOptions] =\n useState<GridContextMenuItemProps[]>(defaultMenuOptions);\n const [contextMenuOpen, setContextMenuOpen] = useState(false);\n const [scrolledVertical, setScrolledVertical] = useState(false);\n const [scrolledHorizontal, setScrolledHorizontal] = useState(false);\n const dragState = useRef<number | false>(false);\n const gridRef = useRef<VariableSizeGrid>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n const outerRef = useRef<HTMLDivElement>(null);\n const elementBorderRef = useRef({\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n scrollBarWidth: 0,\n scrollBarHeight: 0,\n width: 0,\n height: 0,\n });\n const onCellSelect: onSelectFn = useCallback(\n (action, selection, focus) => {\n setSelection(selection);\n if (typeof onSelectProp === 'function') {\n onSelectProp(action, selection, focus);\n }\n },\n [onSelectProp]\n );\n const resizingState = useResizingState();\n\n const [rowHeights, setRowHeights] = useState<{ [key: number]: number }>({});\n\n const getRowHeight = useCallback(\n (index: number) => {\n if (rowAutoHeight && rowHeights[index] !== undefined) {\n return rowHeights[index] + rowHeight;\n }\n return rowHeight;\n },\n [rowHeight, rowAutoHeight, rowHeights]\n );\n\n const updateRowHeight = useCallback(\n (rowIndex: number, height: number) => {\n if (!rowAutoHeight) {\n return;\n }\n\n setRowHeights(prevRowHeights => {\n if (height > (prevRowHeights[rowIndex] || 0) && gridRef.current) {\n const newRowHeights = { ...prevRowHeights, [rowIndex]: height };\n gridRef.current.resetAfterRowIndex(rowIndex);\n return newRowHeights;\n }\n return prevRowHeights;\n });\n },\n [rowAutoHeight, gridRef]\n );\n\n const onFocusChange = useCallback(\n (row: number, column: number) => {\n setFocus(focus => ({\n row: row ?? focusProp?.row ?? focus.row,\n column: column ?? focusProp?.column ?? focus.column,\n }));\n if (typeof onFocusChangeProp === 'function') {\n onFocusChangeProp(row, column);\n }\n },\n [onFocusChangeProp, focusProp]\n );\n\n const rowNumberWidth = ((rowStart + rowCount).toString().length + 2) * 8 + 3; // 128 includes 8px left and right padding and (8px + 8px + 8x(1ch) * rowcount) and 3 is for avoiding ellipsis\n\n const { getColumnHorizontalPosition, onColumnResize, columnWidth, initColumnSize } =\n useColumns({\n columnCount,\n columnWidth: columnWidthProp,\n outerGridRef: outerRef,\n gridRef,\n onColumnResize: onColumnResizeProp,\n });\n\n const scrollGridTo = useCallback(\n async ({ row, column }: { row?: number; column?: number }) => {\n if (!outerRef.current || !gridRef.current) {\n return;\n }\n\n const rowIndex = row ?? 0;\n const columnIndex = column ?? 0;\n let element = outerRef.current?.querySelector<HTMLElement>(\n `[data-row=\"${rowIndex}\"][data-column=\"${columnIndex}\"]`\n );\n if (!element) {\n return;\n }\n\n const { scrollTop, scrollLeft } = outerRef.current;\n // this is for the test to perform correctly\n if (typeof element?.scrollIntoView === 'function') {\n element?.scrollIntoView({\n block: 'nearest',\n inline: 'nearest',\n });\n // This is for the element to be available after the scroll.\n await new Promise(requestAnimationFrame);\n }\n element = outerRef.current?.querySelector<HTMLElement>(\n `[data-row=\"${rowIndex}\"][data-column=\"${columnIndex}\"]`\n );\n if (!element) {\n return;\n }\n if (scrollLeft > element.offsetLeft || scrollTop > element.offsetTop) {\n outerRef.current?.scrollBy(\n scrollLeft > element.offsetLeft ? -rowNumberWidth : 0,\n scrollTop > element.offsetTop ? -headerHeight : 0\n );\n }\n },\n [headerHeight, rowNumberWidth]\n );\n\n const getFixedResizerLeftPosition = useCallback(\n (clientX: number, width: number, columnIndex: number): string | number => {\n const columnPosition = getColumnHorizontalPosition(columnIndex);\n const columnLeft = columnPosition + width;\n const { width: containerWidth, left, scrollBarWidth } = elementBorderRef.current;\n const scrollLeft = outerRef.current?.scrollLeft ?? 0;\n if (clientX + rowNumberWidth - left > containerWidth + scrollBarWidth) {\n return scrollLeft + containerWidth - scrollBarWidth - 4;\n }\n\n if (width < 50) {\n //50 is the minWidth for the column\n return columnPosition + rowNumberWidth + 50;\n }\n\n return columnLeft + rowNumberWidth - 4;\n },\n [getColumnHorizontalPosition, rowNumberWidth]\n );\n\n const getResizerPosition: GetResizerPositionFn = useCallback(\n (clientX, width, columnIndex) => {\n const result: ResizerPosition = {\n left: `${getFixedResizerLeftPosition(clientX, width, columnIndex)}px`,\n };\n\n if (outerRef.current) {\n result.top = `${outerRef.current.scrollTop}px`;\n }\n return result;\n },\n [getFixedResizerLeftPosition]\n );\n\n const clearSelectionAndFocus = useCallback(\n (force: boolean) => {\n setSelection(selection => {\n if (selection.type === 'columns' && !force) {\n return selection;\n } else {\n return { type: 'empty' };\n }\n });\n const newFocus = focusProp ?? focus;\n onFocusChange(newFocus.row, newFocus.column);\n scrollGridTo(newFocus);\n },\n [focus, focusProp, onFocusChange, scrollGridTo]\n );\n\n useEffect(() => {\n clearSelectionAndFocus(true);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [rowStart]);\n\n const { getSelectionType, onSelection, mouseMoveCellSelect, moveSelection } =\n useSelectionActions({\n onCellSelect,\n focus: focusProp ?? focus,\n columnCount,\n rowCount,\n onFocusChange,\n scrollGridTo,\n selection: selectionProp ?? selection,\n rowStart,\n });\n\n const data: ItemDataType = {\n showRowNumber,\n cell,\n rowCount,\n columnCount,\n showHeader,\n focus: focusProp ?? focus,\n getSelectionType,\n rowHeight,\n headerHeight,\n rowNumberWidth,\n rowStart,\n rowAutoHeight,\n updateRowHeight,\n getRowHeight,\n };\n\n const InnerElementType = forwardRef<HTMLDivElement, InnerElementTypeTypes>(\n ({ children, ...containerProps }, ref) => {\n const [minRow, maxRow, minColumn, maxColumn] = getRenderedCursor(children);\n return (\n <div\n {...containerProps}\n className={cn(\n styles['grid__inner'],\n `sticky-grid__container grid-outer ${props.className ?? ''}`\n )}\n >\n <div\n className={styles['grid__data']}\n style={\n {\n '--grid-data-top': `${showHeader ? headerHeight : 0}px`,\n '--grid-data-left': `${showRowNumber ? rowNumberWidth : 0}px`,\n } as CSSProperties\n }\n ref={ref}\n >\n {children}\n </div>\n {showRowNumber && (\n <RowNumberColumn\n scrolledHorizontal={scrolledHorizontal}\n minRow={minRow}\n maxRow={maxRow}\n rowHeight={rowHeight}\n headerHeight={headerHeight}\n rowWidth={rowNumberWidth}\n rowCount={rowCount}\n getSelectionType={getSelectionType}\n rowStart={rowStart}\n showBorder={showBorder}\n rowAutoHeight={rowAutoHeight}\n />\n )}\n\n {showHeader && (\n <Header\n scrolledVertical={scrolledVertical}\n scrolledHorizontal={scrolledHorizontal}\n showRowNumber={showRowNumber}\n minColumn={minColumn}\n maxColumn={maxColumn}\n height={headerHeight}\n getColumnWidth={columnWidth}\n cell={cell}\n rowNumberWidth={rowNumberWidth}\n getSelectionType={getSelectionType}\n columnCount={columnCount}\n onColumnResize={onColumnResize}\n getColumnHorizontalPosition={getColumnHorizontalPosition}\n getResizerPosition={getResizerPosition}\n showBorder={showBorder}\n resizingState={resizingState}\n />\n )}\n </div>\n );\n }\n );\n useEffect(() => {\n if (autoFocus) {\n containerRef.current?.focus();\n }\n }, [autoFocus]);\n\n const onMouseDown: MouseEventHandler<HTMLDivElement> = useCallback(\n e => {\n containerRef.current?.focus();\n if (typeof onMouseDownProp === 'function' && e.buttons === LEFT_BUTTON_PRESSED) {\n onMouseDownProp(e);\n }\n const target = (e.target as HTMLElement).closest(\n '[data-grid-row][data-grid-column]'\n ) as HTMLElement;\n if (\n !target ||\n target.dataset.gridRow === undefined ||\n target.dataset.gridColumn === undefined\n ) {\n return;\n }\n\n if (e.buttons === RIGHT_BUTTON_PRESSED && target.dataset.selected === 'true') {\n return;\n }\n\n const { gridRow: rowIndexString, gridColumn: columnIndexString } = target.dataset;\n const row = parseInt(rowIndexString);\n const column = parseInt(columnIndexString);\n if (row === -1 && column === -1) {\n onSelection({ type: 'all' });\n return;\n }\n const shiftKeyPressed = e.shiftKey;\n\n if (row === -1) {\n onSelection({\n type: shiftKeyPressed ? 'shiftColumnSelection' : 'columnSelection',\n column,\n event: 'click',\n });\n if (!shiftKeyPressed) {\n onFocusChange(rowStart, column);\n }\n return;\n }\n if (column === -1) {\n onSelection({\n type: shiftKeyPressed ? 'shiftRowSelection' : 'rowSelection',\n row,\n event: 'click',\n });\n if (!shiftKeyPressed) {\n onFocusChange(row, 0);\n }\n return;\n }\n onSelection({\n type: shiftKeyPressed ? 'shiftSelection' : 'normal',\n row,\n column,\n event: 'click',\n });\n if (!shiftKeyPressed) {\n onFocusChange(row, column);\n }\n },\n [onFocusChange, onMouseDownProp, onSelection, rowStart]\n );\n\n const onPointerDown: PointerEventHandler<HTMLDivElement> = useCallback(e => {\n dragState.current = e.pointerId;\n }, []);\n\n const setPointerCapture: PointerEventHandler<HTMLDivElement> = useCallback(e => {\n if (e.buttons === NO_BUTTONS_PRESSED || dragState.current === false) {\n return;\n }\n\n containerRef.current?.setPointerCapture(dragState.current);\n }, []);\n\n const onPointerUp: PointerEventHandler<HTMLDivElement> = useCallback(\n e => {\n if (containerRef.current) {\n containerRef.current.releasePointerCapture(e.pointerId);\n if (!contextMenuOpen) {\n containerRef.current.focus();\n }\n }\n\n dragState.current = false;\n const newFocus = focusProp ?? focus;\n onFocusChange(newFocus.row, newFocus.column);\n },\n [contextMenuOpen, focus, focusProp, onFocusChange]\n );\n\n const onMouseMove: MouseEventHandler<HTMLDivElement> = useCallback(\n async e => {\n e.preventDefault();\n e.stopPropagation();\n if (typeof onMouseMoveProp === 'function') {\n onMouseMoveProp(e);\n }\n if (\n dragState.current === false ||\n e.buttons === NO_BUTTONS_PRESSED ||\n !containerRef.current ||\n !outerRef.current\n ) {\n return;\n }\n\n containerRef.current.setPointerCapture(dragState.current);\n let verticalSign = 0,\n horizontalSign = 0,\n x = e.clientX,\n y = e.clientY;\n if (\n elementBorderRef.current.left >= e.clientX ||\n e.clientX >=\n elementBorderRef.current.right - elementBorderRef.current.scrollBarWidth\n ) {\n const scrollHorizontalDirection =\n e.clientX <= elementBorderRef.current.left ? 'left' : 'right';\n if (\n (scrollHorizontalDirection === 'left' && e.movementX < 0) ||\n (scrollHorizontalDirection === 'right' && e.movementX > 0)\n ) {\n horizontalSign = scrollHorizontalDirection === 'left' ? -1 : 1;\n }\n x =\n scrollHorizontalDirection === 'left'\n ? elementBorderRef.current.left + rowNumberWidth + 10\n : elementBorderRef.current.right -\n elementBorderRef.current.scrollBarWidth -\n 10;\n }\n\n if (\n elementBorderRef.current.top >= e.clientY ||\n e.clientY >=\n elementBorderRef.current.bottom - elementBorderRef.current.scrollBarHeight\n ) {\n const scrollVerticalDirection =\n e.clientY <= elementBorderRef.current.top ? 'top' : 'bottom';\n if (\n (scrollVerticalDirection === 'top' && e.movementY < 0) ||\n (scrollVerticalDirection === 'bottom' && e.movementY > 0)\n ) {\n verticalSign = scrollVerticalDirection === 'top' ? -1 : 1;\n }\n y =\n scrollVerticalDirection === 'top'\n ? elementBorderRef.current.top + headerHeight + 10\n : elementBorderRef.current.bottom -\n elementBorderRef.current.scrollBarHeight -\n 10;\n }\n\n await new Promise(requestAnimationFrame);\n const cell = document.elementFromPoint(x, y) as HTMLElement | null;\n\n if (!cell) {\n return;\n }\n\n const { gridRow, gridColumn } = cell.dataset;\n if (!gridRow || !gridColumn) {\n return;\n }\n const rowIndex = Number(gridRow) + verticalSign;\n const columnIndex = Number(gridColumn) + horizontalSign;\n\n mouseMoveCellSelect(rowIndex, columnIndex);\n },\n [headerHeight, mouseMoveCellSelect, onMouseMoveProp, rowNumberWidth]\n );\n\n const onScroll = ({ scrollLeft, scrollTop }: GridOnScrollProps) => {\n setScrolledVertical(scrollTop > 0);\n setScrolledHorizontal(scrollLeft > 0);\n };\n\n const onResize = useCallback(\n ({ height, width }: Size) => {\n setTimeout(() => {\n if (!outerRef.current) {\n return;\n }\n\n const { top, bottom, left, right } =\n outerRef.current.getBoundingClientRect() ?? {};\n elementBorderRef.current = {\n top,\n bottom,\n left,\n right,\n scrollBarWidth: width - outerRef.current.clientWidth,\n scrollBarHeight: height - outerRef.current.clientHeight,\n width,\n height,\n };\n initColumnSize(outerRef.current.clientWidth - rowNumberWidth);\n }, 0);\n },\n [initColumnSize, rowNumberWidth]\n );\n\n const onKeyDown: KeyboardEventHandler<HTMLDivElement> = useCallback(\n async e => {\n if (typeof onKeyDownProp === 'function') {\n onKeyDownProp(e);\n }\n if (!e.defaultPrevented) {\n e.preventDefault();\n e.stopPropagation();\n }\n const moveAnchor = e.shiftKey;\n const { row, column } = focusProp ?? focus;\n\n const applyAction = (action: SelectionAction | null): void => {\n if (action) {\n onSelection({ ...action, event: 'keypress' });\n }\n if (action?.type === 'normal') {\n onFocusChange(action.row, action.column);\n }\n };\n if ((e.ctrlKey || e.metaKey) && e.key === 'c') {\n onCopy();\n return;\n }\n\n switch (e.key) {\n case 'ArrowLeft':\n applyAction(moveSelection(-1, 0, moveAnchor, 'keypress'));\n break;\n case 'ArrowRight':\n applyAction(moveSelection(1, 0, moveAnchor, 'keypress'));\n break;\n case 'ArrowUp':\n applyAction(moveSelection(0, -1, moveAnchor, 'keypress'));\n break;\n case 'ArrowDown':\n applyAction(moveSelection(0, 1, moveAnchor, 'keypress'));\n break;\n case 'Enter':\n onSelection({\n type: 'normal',\n row,\n column,\n event: 'keypress',\n });\n onFocusChange(row, column);\n break;\n case 'Escape':\n clearSelectionAndFocus(true);\n break;\n }\n containerRef.current?.focus();\n },\n [\n onKeyDownProp,\n focusProp,\n focus,\n onSelection,\n onFocusChange,\n onCopy,\n moveSelection,\n clearSelectionAndFocus,\n ]\n );\n const onContextMenu: MouseEventHandler<HTMLDivElement> = e => {\n onMouseDown(e);\n\n if (typeof onContextMenuProp === 'function') {\n onContextMenuProp(e);\n }\n if (typeof getMenuOptions === 'function') {\n const newOptions = getMenuOptions(selection, focusProp ?? focus);\n setMenuOptions([...defaultMenuOptions, ...newOptions]);\n }\n };\n\n const lastItemsRenderedProps = useRef<GridOnItemsRenderedProps>();\n const lastRowStart = useRef(rowStart);\n\n const onItemsRendered = useCallback(\n (props: GridOnItemsRenderedProps) => {\n lastItemsRenderedProps.current = props;\n return onItemsRenderedProp?.({\n ...props,\n visibleRowStartIndex: props.visibleRowStartIndex + rowStart,\n visibleRowStopIndex: props.visibleRowStopIndex + rowStart,\n overscanRowStartIndex: props.overscanRowStartIndex + rowStart,\n overscanRowStopIndex: props.overscanRowStopIndex + rowStart,\n });\n },\n [onItemsRenderedProp, rowStart]\n );\n\n // handles the case where rowStart changes, make sure to inform caller\n // of the new visible rows.\n useEffect(() => {\n if (lastItemsRenderedProps.current && rowStart !== lastRowStart.current) {\n onItemsRendered(lastItemsRenderedProps.current);\n lastRowStart.current = rowStart;\n }\n }, [rowStart, onItemsRendered]);\n\n const CellWithWidth = (\n args: GridChildComponentProps<ItemDataType>\n ): React.JSX.Element => {\n const width = columnWidth(args.columnIndex);\n return (\n <Cell\n {...args}\n width={width}\n />\n );\n };\n\n // Handles the case when rowCount/columnCount changes, rerenders styles\n useEffect(() => {\n if (gridRef.current) {\n gridRef.current.resetAfterRowIndex(0);\n }\n }, [rowCount, columnCount]);\n\n const contextMenuTriggerHeight = autoHeight\n ? rowCount * rowHeight +\n (showHeader ? headerHeight : 0) +\n elementBorderRef.current.scrollBarHeight\n : undefined;\n\n return (\n <ContextMenu\n modal={false}\n onOpenChange={setContextMenuOpen}\n >\n <ContextMenu.Trigger\n className={gridVariants({ bordered: showBorder })}\n style={\n {\n '--grid-radius': roundedRadii[rounded],\n '--grid-height': contextMenuTriggerHeight\n ? `${contextMenuTriggerHeight}px`\n : '100%',\n } as CSSProperties\n }\n ref={mergeRefs([forwardedRef, containerRef])}\n tabIndex={0}\n onMouseDown={onMouseDown}\n onMouseMove={onMouseMove}\n onKeyDown={onKeyDown}\n onPointerDown={onPointerDown}\n onPointerUp={onPointerUp}\n onPointerLeave={setPointerCapture}\n onPointerEnter={setPointerCapture}\n onContextMenu={onContextMenu}\n >\n <AutoSizer onResize={onResize}>\n {({ height, width }) => (\n <VariableSizeGrid\n ref={forwardedGridRef ? mergeRefs([forwardedGridRef, gridRef]) : gridRef}\n height={height}\n width={width}\n columnCount={columnCount}\n rowHeight={getRowHeight}\n useIsScrolling={useIsScrolling}\n innerElementType={InnerElementType}\n itemData={data}\n initialScrollTop={\n focus.row < rowStart\n ? focus.row * rowHeight\n : (focus.row - rowStart) * rowHeight\n }\n initialScrollLeft={getColumnHorizontalPosition(focus.column)}\n columnWidth={columnWidth}\n rowCount={rowCount}\n onScroll={onScroll}\n outerRef={outerRef}\n outerElementType={OuterElementType}\n onItemsRendered={onItemsRendered}\n {...props}\n >\n {CellWithWidth}\n </VariableSizeGrid>\n )}\n </AutoSizer>\n </ContextMenu.Trigger>\n <ContextMenu.Content>\n {menuOptions.map((option, index) => (\n <ContextMenu.Item\n key={`grid-${index}`}\n onSelect={option.onSelect}\n >\n {option.label}\n </ContextMenu.Item>\n ))}\n </ContextMenu.Content>\n </ContextMenu>\n );\n }\n);\n"],"names":["selection","focus","cell","props"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useColumns.js","sources":["../../../../src/components/Grid/useColumns.ts"],"sourcesContent":["import { RefObject, useCallback, useRef, useState } from 'react';\nimport { ColumnResizeFn } from './types';\nimport { VariableSizeGrid } from 'react-window';\n\nconst DEFAULT_WIDTH = 100;\nconst MIN_COLUMN_WIDTH = 32;\n\n/**\n * Measures the minimum width required to display all content in a column without wrapping or truncation.\n * Note. We cannot simply measure item.scrollWidth, because it will return the current width if it is larger than needed.\n * To workaround it, we temporary shrink the column width to MIN_COLUMN_WIDTH and measure the scrollWidth.\n * @param {number} columnIndex - The index of the column to measure.\n * @param {HTMLDivElement} outerGrid - The grid element containing the column.\n * @returns {number} The minimum width needed for the column's content (in pixels).\n */\nconst measureColumnWidth = (columnIndex: number, outerGrid: HTMLDivElement): number => {\n // Store the original widths\n const cells = outerGrid.querySelectorAll<HTMLDivElement>(\n `[data-grid-column=\"${columnIndex}\"]`\n );\n\n // Store the original widths and temporarily set cells to minimum width\n const originalWidths: string[] = [];\n cells.forEach(cell => {\n originalWidths.push(cell.style.width);\n cell.style.width = `${MIN_COLUMN_WIDTH}px`;\n });\n\n // Measure the actual content width\n const maxWidth = Array.from(cells).reduce((max, item) => {\n return Math.max(max, item.scrollWidth + 2);\n }, MIN_COLUMN_WIDTH);\n\n // Restore original widths\n cells.forEach((cell, i) => {\n cell.style.width = originalWidths[i];\n });\n\n return maxWidth;\n};\n\ninterface Props {\n columnCount: number;\n columnWidth?: (index: number) => number;\n outerGridRef: RefObject<HTMLDivElement>;\n gridRef: RefObject<VariableSizeGrid>;\n onColumnResize?: (columnIndex: number, newWidth: number) => void;\n}\nconst useColumns = ({\n columnCount,\n columnWidth: columnWidthProp,\n outerGridRef,\n onColumnResize: onColumnResizeProp,\n gridRef,\n}: Props) => {\n const columnResized = useRef(false);\n const prevWidth = useRef<Record<string, number>>({});\n const columnWidthRefs = useRef<number[]>([]);\n const autoWidthIndices = useRef<number[]>([]);\n const [columnHorizontalPosition, setColumnHorizontalPosition] = useState<number[]>([]);\n\n const initColumnSize = useCallback(\n (containerWidth: number) => {\n const newWidth =\n containerWidth > DEFAULT_WIDTH * columnCount\n ? containerWidth / columnCount\n : DEFAULT_WIDTH;\n if (columnResized.current) {\n return;\n }\n const getWidth = (index: number) => {\n if (typeof columnWidthProp === 'function') {\n return columnWidthProp(index);\n }\n return newWidth;\n };\n\n const columnWidthList = [...Array(columnCount).keys()];\n\n setColumnHorizontalPosition(() => {\n return columnWidthList.reduce(\n (acc, _, index) => {\n const width = getWidth(index);\n prevWidth.current[index.toString()] = width;\n columnWidthRefs.current[index] = width;\n acc.push(acc[index] + width);\n return acc;\n },\n [0]\n );\n });\n gridRef.current?.resetAfterColumnIndex(0);\n },\n [columnCount, columnWidthProp, gridRef]\n );\n\n const onColumnResize: ColumnResizeFn = useCallback(\n (columnIndex, newWidth, type) => {\n columnResized.current = true;\n if (type === 'auto') {\n const widthIndex = autoWidthIndices.current.findIndex(\n index => index === columnIndex\n );\n if (widthIndex > -1) {\n newWidth = prevWidth.current[columnIndex.toString()];\n autoWidthIndices.current.splice(widthIndex, 1);\n } else if (outerGridRef.current) {\n newWidth = measureColumnWidth(columnIndex, outerGridRef.current);\n autoWidthIndices.current.push(columnIndex);\n }\n } else {\n const widthIndex = autoWidthIndices.current.findIndex(\n index => index === columnIndex\n );\n autoWidthIndices.current.splice(widthIndex, 1);\n prevWidth.current[columnIndex.toString()] = newWidth;\n }\n\n columnWidthRefs.current[columnIndex] = newWidth;\n setColumnHorizontalPosition(columnHorizontalPosition => {\n const currentWidth =\n columnHorizontalPosition[columnIndex + 1] -\n columnHorizontalPosition[columnIndex];\n const diff = newWidth - currentWidth;\n\n for (let i = columnIndex + 1; i < columnCount; i++) {\n columnHorizontalPosition[i] = columnHorizontalPosition[i] + diff;\n }\n return [...columnHorizontalPosition];\n });\n gridRef.current?.resetAfterColumnIndex(columnIndex);\n if (typeof onColumnResizeProp === 'function') {\n onColumnResizeProp(columnIndex, newWidth);\n }\n },\n [gridRef, onColumnResizeProp, outerGridRef, columnCount]\n );\n\n const columnWidth = useCallback(\n (columnIndex: number) => {\n if (columnWidthProp) {\n return columnWidthProp(columnIndex);\n }\n return columnWidthRefs.current[columnIndex] ?? DEFAULT_WIDTH;\n },\n [columnWidthProp]\n );\n\n const getColumnHorizontalPosition = useCallback(\n (index: number) => {\n return columnHorizontalPosition[index] ?? DEFAULT_WIDTH * index;\n },\n [columnHorizontalPosition]\n );\n\n return {\n getColumnHorizontalPosition,\n onColumnResize,\n columnWidth,\n initColumnSize,\n };\n};\n\nexport default useColumns;\n"],"names":["columnHorizontalPosition"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"useColumns.js","sources":["../../../../src/components/Grid/useColumns.ts"],"sourcesContent":["import { RefObject, useCallback, useRef, useState } from 'react';\nimport { ColumnResizeFn } from './types';\nimport { VariableSizeGrid } from 'react-window';\n\nconst DEFAULT_WIDTH = 100;\nconst MIN_COLUMN_WIDTH = 32;\n\n/**\n * Measures the minimum width required to display all content in a column without wrapping or truncation.\n * Note. We cannot simply measure item.scrollWidth, because it will return the current width if it is larger than needed.\n * To workaround it, we temporary shrink the column width to MIN_COLUMN_WIDTH and measure the scrollWidth.\n * @param {number} columnIndex - The index of the column to measure.\n * @param {HTMLDivElement} outerGrid - The grid element containing the column.\n * @returns {number} The minimum width needed for the column's content (in pixels).\n */\nconst measureColumnWidth = (columnIndex: number, outerGrid: HTMLDivElement): number => {\n // Store the original widths\n const cells = outerGrid.querySelectorAll<HTMLDivElement>(\n `[data-grid-column=\"${columnIndex}\"]`\n );\n\n // Store the original widths and temporarily set cells to minimum width\n const originalWidths: string[] = [];\n cells.forEach(cell => {\n originalWidths.push(cell.style.width);\n cell.style.width = `${MIN_COLUMN_WIDTH}px`;\n });\n\n // Measure the actual content width\n const maxWidth = Array.from(cells).reduce((max, item) => {\n return Math.max(max, item.scrollWidth + 2);\n }, MIN_COLUMN_WIDTH);\n\n // Restore original widths\n cells.forEach((cell, i) => {\n cell.style.width = originalWidths[i];\n });\n\n return maxWidth;\n};\n\ninterface Props {\n columnCount: number;\n columnWidth?: (index: number) => number;\n outerGridRef: RefObject<HTMLDivElement>;\n gridRef: RefObject<VariableSizeGrid>;\n onColumnResize?: (columnIndex: number, newWidth: number) => void;\n}\nconst useColumns = ({\n columnCount,\n columnWidth: columnWidthProp,\n outerGridRef,\n onColumnResize: onColumnResizeProp,\n gridRef,\n}: Props) => {\n const columnResized = useRef(false);\n const prevWidth = useRef<Record<string, number>>({});\n const columnWidthRefs = useRef<number[]>([]);\n const autoWidthIndices = useRef<number[]>([]);\n const [columnHorizontalPosition, setColumnHorizontalPosition] = useState<number[]>([]);\n\n const initColumnSize = useCallback(\n (containerWidth: number) => {\n const newWidth =\n containerWidth > DEFAULT_WIDTH * columnCount\n ? containerWidth / columnCount\n : DEFAULT_WIDTH;\n if (columnResized.current) {\n return;\n }\n const getWidth = (index: number) => {\n if (typeof columnWidthProp === 'function') {\n return columnWidthProp(index);\n }\n return newWidth;\n };\n\n const columnWidthList = [...Array(columnCount).keys()];\n\n setColumnHorizontalPosition(() => {\n return columnWidthList.reduce(\n (acc, _, index) => {\n const width = getWidth(index);\n prevWidth.current[index.toString()] = width;\n columnWidthRefs.current[index] = width;\n acc.push(acc[index] + width);\n return acc;\n },\n [0]\n );\n });\n gridRef.current?.resetAfterColumnIndex(0);\n },\n [columnCount, columnWidthProp, gridRef]\n );\n\n const onColumnResize: ColumnResizeFn = useCallback(\n (columnIndex, newWidth, type) => {\n columnResized.current = true;\n if (type === 'auto') {\n const widthIndex = autoWidthIndices.current.findIndex(\n index => index === columnIndex\n );\n if (widthIndex > -1) {\n newWidth = prevWidth.current[columnIndex.toString()];\n autoWidthIndices.current.splice(widthIndex, 1);\n } else if (outerGridRef.current) {\n newWidth = measureColumnWidth(columnIndex, outerGridRef.current);\n autoWidthIndices.current.push(columnIndex);\n }\n } else {\n const widthIndex = autoWidthIndices.current.findIndex(\n index => index === columnIndex\n );\n autoWidthIndices.current.splice(widthIndex, 1);\n prevWidth.current[columnIndex.toString()] = newWidth;\n }\n\n columnWidthRefs.current[columnIndex] = newWidth;\n setColumnHorizontalPosition(columnHorizontalPosition => {\n const currentWidth =\n columnHorizontalPosition[columnIndex + 1] -\n columnHorizontalPosition[columnIndex];\n const diff = newWidth - currentWidth;\n\n for (let i = columnIndex + 1; i < columnCount; i++) {\n columnHorizontalPosition[i] = columnHorizontalPosition[i] + diff;\n }\n return [...columnHorizontalPosition];\n });\n gridRef.current?.resetAfterColumnIndex(columnIndex);\n if (typeof onColumnResizeProp === 'function') {\n onColumnResizeProp(columnIndex, newWidth);\n }\n },\n [gridRef, onColumnResizeProp, outerGridRef, columnCount]\n );\n\n const columnWidth = useCallback(\n (columnIndex: number) => {\n if (columnWidthProp) {\n return columnWidthProp(columnIndex);\n }\n return columnWidthRefs.current[columnIndex] ?? DEFAULT_WIDTH;\n },\n [columnWidthProp]\n );\n\n const getColumnHorizontalPosition = useCallback(\n (index: number) => {\n return columnHorizontalPosition[index] ?? DEFAULT_WIDTH * index;\n },\n [columnHorizontalPosition]\n );\n\n return {\n getColumnHorizontalPosition,\n onColumnResize,\n columnWidth,\n initColumnSize,\n };\n};\n\nexport default useColumns;\n"],"names":["columnHorizontalPosition"],"mappings":";;AAIA,MAAM,aAAA,GAAgB,GAAA;AACtB,MAAM,gBAAA,GAAmB,EAAA;AAUzB,MAAM,kBAAA,GAAqB,CAAC,WAAA,EAAqB,SAAA,KAAsC;AAErF,EAAA,MAAM,QAAQ,SAAA,CAAU,gBAAA;AAAA,IACtB,sBAAsB,WAAW,CAAA,EAAA;AAAA,GACnC;AAGA,EAAA,MAAM,iBAA2B,EAAC;AAClC,EAAA,KAAA,CAAM,QAAQ,CAAA,IAAA,KAAQ;AACpB,IAAA,cAAA,CAAe,IAAA,CAAK,IAAA,CAAK,KAAA,CAAM,KAAK,CAAA;AACpC,IAAA,IAAA,CAAK,KAAA,CAAM,KAAA,GAAQ,CAAA,EAAG,gBAAgB,CAAA,EAAA,CAAA;AAAA,EACxC,CAAC,CAAA;AAGD,EAAA,MAAM,QAAA,GAAW,MAAM,IAAA,CAAK,KAAK,EAAE,MAAA,CAAO,CAAC,KAAK,IAAA,KAAS;AACvD,IAAA,OAAO,IAAA,CAAK,GAAA,CAAI,GAAA,EAAK,IAAA,CAAK,cAAc,CAAC,CAAA;AAAA,EAC3C,GAAG,gBAAgB,CAAA;AAGnB,EAAA,KAAA,CAAM,OAAA,CAAQ,CAAC,IAAA,EAAM,CAAA,KAAM;AACzB,IAAA,IAAA,CAAK,KAAA,CAAM,KAAA,GAAQ,cAAA,CAAe,CAAC,CAAA;AAAA,EACrC,CAAC,CAAA;AAED,EAAA,OAAO,QAAA;AACT,CAAA;AASA,MAAM,aAAa,CAAC;AAAA,EAClB,WAAA;AAAA,EACA,WAAA,EAAa,eAAA;AAAA,EACb,YAAA;AAAA,EACA,cAAA,EAAgB,kBAAA;AAAA,EAChB;AACF,CAAA,KAAa;AACX,EAAA,MAAM,aAAA,GAAgB,OAAO,KAAK,CAAA;AAClC,EAAA,MAAM,SAAA,GAAY,MAAA,CAA+B,EAAE,CAAA;AACnD,EAAA,MAAM,eAAA,GAAkB,MAAA,CAAiB,EAAE,CAAA;AAC3C,EAAA,MAAM,gBAAA,GAAmB,MAAA,CAAiB,EAAE,CAAA;AAC5C,EAAA,MAAM,CAAC,wBAAA,EAA0B,2BAA2B,CAAA,GAAI,QAAA,CAAmB,EAAE,CAAA;AAErF,EAAA,MAAM,cAAA,GAAiB,WAAA;AAAA,IACrB,CAAC,cAAA,KAA2B;AAC1B,MAAA,MAAM,QAAA,GACJ,cAAA,GAAiB,aAAA,GAAgB,WAAA,GAC7B,iBAAiB,WAAA,GACjB,aAAA;AACN,MAAA,IAAI,cAAc,OAAA,EAAS;AACzB,QAAA;AAAA,MACF;AACA,MAAA,MAAM,QAAA,GAAW,CAAC,KAAA,KAAkB;AAClC,QAAA,IAAI,OAAO,oBAAoB,UAAA,EAAY;AACzC,UAAA,OAAO,gBAAgB,KAAK,CAAA;AAAA,QAC9B;AACA,QAAA,OAAO,QAAA;AAAA,MACT,CAAA;AAEA,MAAA,MAAM,kBAAkB,CAAC,GAAG,MAAM,WAAW,CAAA,CAAE,MAAM,CAAA;AAErD,MAAA,2BAAA,CAA4B,MAAM;AAChC,QAAA,OAAO,eAAA,CAAgB,MAAA;AAAA,UACrB,CAAC,GAAA,EAAK,CAAA,EAAG,KAAA,KAAU;AACjB,YAAA,MAAM,KAAA,GAAQ,SAAS,KAAK,CAAA;AAC5B,YAAA,SAAA,CAAU,OAAA,CAAQ,KAAA,CAAM,QAAA,EAAU,CAAA,GAAI,KAAA;AACtC,YAAA,eAAA,CAAgB,OAAA,CAAQ,KAAK,CAAA,GAAI,KAAA;AACjC,YAAA,GAAA,CAAI,IAAA,CAAK,GAAA,CAAI,KAAK,CAAA,GAAI,KAAK,CAAA;AAC3B,YAAA,OAAO,GAAA;AAAA,UACT,CAAA;AAAA,UACA,CAAC,CAAC;AAAA,SACJ;AAAA,MACF,CAAC,CAAA;AACD,MAAA,OAAA,CAAQ,OAAA,EAAS,sBAAsB,CAAC,CAAA;AAAA,IAC1C,CAAA;AAAA,IACA,CAAC,WAAA,EAAa,eAAA,EAAiB,OAAO;AAAA,GACxC;AAEA,EAAA,MAAM,cAAA,GAAiC,WAAA;AAAA,IACrC,CAAC,WAAA,EAAa,QAAA,EAAU,IAAA,KAAS;AAC/B,MAAA,aAAA,CAAc,OAAA,GAAU,IAAA;AACxB,MAAA,IAAI,SAAS,MAAA,EAAQ;AACnB,QAAA,MAAM,UAAA,GAAa,iBAAiB,OAAA,CAAQ,SAAA;AAAA,UAC1C,WAAS,KAAA,KAAU;AAAA,SACrB;AACA,QAAA,IAAI,aAAa,EAAA,EAAI;AACnB,UAAA,QAAA,GAAW,SAAA,CAAU,OAAA,CAAQ,WAAA,CAAY,QAAA,EAAU,CAAA;AACnD,UAAA,gBAAA,CAAiB,OAAA,CAAQ,MAAA,CAAO,UAAA,EAAY,CAAC,CAAA;AAAA,QAC/C,CAAA,MAAA,IAAW,aAAa,OAAA,EAAS;AAC/B,UAAA,QAAA,GAAW,kBAAA,CAAmB,WAAA,EAAa,YAAA,CAAa,OAAO,CAAA;AAC/D,UAAA,gBAAA,CAAiB,OAAA,CAAQ,KAAK,WAAW,CAAA;AAAA,QAC3C;AAAA,MACF,CAAA,MAAO;AACL,QAAA,MAAM,UAAA,GAAa,iBAAiB,OAAA,CAAQ,SAAA;AAAA,UAC1C,WAAS,KAAA,KAAU;AAAA,SACrB;AACA,QAAA,gBAAA,CAAiB,OAAA,CAAQ,MAAA,CAAO,UAAA,EAAY,CAAC,CAAA;AAC7C,QAAA,SAAA,CAAU,OAAA,CAAQ,WAAA,CAAY,QAAA,EAAU,CAAA,GAAI,QAAA;AAAA,MAC9C;AAEA,MAAA,eAAA,CAAgB,OAAA,CAAQ,WAAW,CAAA,GAAI,QAAA;AACvC,MAAA,2BAAA,CAA4B,CAAAA,yBAAAA,KAA4B;AACtD,QAAA,MAAM,eACJA,yBAAAA,CAAyB,WAAA,GAAc,CAAC,CAAA,GACxCA,0BAAyB,WAAW,CAAA;AACtC,QAAA,MAAM,OAAO,QAAA,GAAW,YAAA;AAExB,QAAA,KAAA,IAAS,CAAA,GAAI,WAAA,GAAc,CAAA,EAAG,CAAA,GAAI,aAAa,CAAA,EAAA,EAAK;AAClD,UAAAA,yBAAAA,CAAyB,CAAC,CAAA,GAAIA,yBAAAA,CAAyB,CAAC,CAAA,GAAI,IAAA;AAAA,QAC9D;AACA,QAAA,OAAO,CAAC,GAAGA,yBAAwB,CAAA;AAAA,MACrC,CAAC,CAAA;AACD,MAAA,OAAA,CAAQ,OAAA,EAAS,sBAAsB,WAAW,CAAA;AAClD,MAAA,IAAI,OAAO,uBAAuB,UAAA,EAAY;AAC5C,QAAA,kBAAA,CAAmB,aAAa,QAAQ,CAAA;AAAA,MAC1C;AAAA,IACF,CAAA;AAAA,IACA,CAAC,OAAA,EAAS,kBAAA,EAAoB,YAAA,EAAc,WAAW;AAAA,GACzD;AAEA,EAAA,MAAM,WAAA,GAAc,WAAA;AAAA,IAClB,CAAC,WAAA,KAAwB;AACvB,MAAA,IAAI,eAAA,EAAiB;AACnB,QAAA,OAAO,gBAAgB,WAAW,CAAA;AAAA,MACpC;AACA,MAAA,OAAO,eAAA,CAAgB,OAAA,CAAQ,WAAW,CAAA,IAAK,aAAA;AAAA,IACjD,CAAA;AAAA,IACA,CAAC,eAAe;AAAA,GAClB;AAEA,EAAA,MAAM,2BAAA,GAA8B,WAAA;AAAA,IAClC,CAAC,KAAA,KAAkB;AACjB,MAAA,OAAO,wBAAA,CAAyB,KAAK,CAAA,IAAK,aAAA,GAAgB,KAAA;AAAA,IAC5D,CAAA;AAAA,IACA,CAAC,wBAAwB;AAAA,GAC3B;AAEA,EAAA,OAAO;AAAA,IACL,2BAAA;AAAA,IACA,cAAA;AAAA,IACA,WAAA;AAAA,IACA;AAAA,GACF;AACF;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useResizingState.js","sources":["../../../../src/components/Grid/useResizingState.ts"],"sourcesContent":["import { useState, useCallback } from 'react';\nimport { ResizerPosition } from './types';\n\n/**\n * Defines the type for pointer information used in resizing.\n * @typedef {Object} PointerType\n * @property {number} width - The width of the pointer component.\n * @property {number} pointerId - Unique identifier for the pointer from a touch event.\n * @property {number} initialClientX - The initial X coordinate of the pointer when resizing started.\n */\nexport type PointerType = {\n width: number;\n pointerId: number;\n initialClientX: number;\n};\n\n/**\n * Defines the state and methods used for managing the column resizing.\n * @typedef {Object} ResizingState\n * @property {PointerType | null} pointer - The current pointer data, or null if no pointer is active.\n * @property {(pointer: PointerType | null) => void} setPointer - Setter to update the pointer.\n * @property {(columnIndex: number) => boolean} getIsPressed - Indicates if a resizer for the given column is currently pressed/dragged.\n * @property {(columnIndex: number, pressed: boolean) => void} setIsPressed - Sets the pressed state for a given column.\n * @property {(columnIndex: number) => ResizerPosition} getPosition - Gets the position of the resizer for the specified column.\n * @property {(position: ResizerPosition) => void} setPosition - Updates the position of the resizer.\n * @property {number} lastPressedTimestamp - Timestamp of the last time a column was pressed, used to detect double-clicks.\n */\nexport interface ResizingState {\n pointer: PointerType | null;\n setPointer: (pointer: PointerType | null) => void;\n getIsPressed: (columnIndex: number) => boolean;\n setIsPressed: (columnIndex: number, pressed: boolean) => void;\n getPosition: (columnIndex: number) => ResizerPosition;\n setPosition: (position: ResizerPosition) => void;\n lastPressedTimestamp: number;\n}\n\n/**\n * The initial position of the resizer element.\n * @type {ResizerPosition}\n */\nexport const initialPosition = {\n left: 'calc(100% - 4px)',\n top: '0',\n};\n\n/**\n * Custom hook that provides the state and methods needed to manage a resizing operation on columns.\n * @returns {ResizingState} The resizing state and methods for controlling resizing behavior.\n */\nconst useResizingState = (): ResizingState => {\n const [pressedColumnIndex, setPressedColumnIndex] = useState<number>(-1);\n const [pointer, setPointer] = useState<PointerType | null>(null);\n const [position, setPosition] = useState<ResizerPosition>(initialPosition);\n const [lastPressedTimestamp, setLastPressedTimestamp] = useState<number>(0);\n\n /**\n * Checks if the specified column index is currently in a pressed state.\n * @param {number} columnIndex - The index of the column to check.\n * @returns {boolean} True if the column is pressed, false otherwise.\n */\n const getIsPressed = useCallback(\n (columnIndex: number) => {\n return pressedColumnIndex === columnIndex;\n },\n [pressedColumnIndex]\n );\n\n /**\n * Updates the pressed state for a specified column.\n * @param {number} columnIndex - The index of the column.\n * @param {boolean} pressed - True to set the column as pressed, false to release it.\n */\n const setIsPressed = useCallback((columnIndex: number, pressed: boolean) => {\n if (pressed) {\n setPressedColumnIndex(columnIndex);\n setLastPressedTimestamp(Date.now());\n } else {\n setPressedColumnIndex(-1);\n }\n }, []);\n\n /**\n * Gets the position of the resizer for the specified column index.\n * @param {number} columnIndex - The index of the column to retrieve the position for.\n * @returns {ResizerPosition} The position of the resizer.\n */\n const getPosition = useCallback(\n (columnIndex: number) => {\n if (pressedColumnIndex !== columnIndex) {\n return initialPosition;\n }\n return position;\n },\n [position, pressedColumnIndex]\n );\n\n return {\n pointer,\n setPointer,\n getIsPressed,\n setIsPressed,\n getPosition,\n setPosition,\n lastPressedTimestamp,\n };\n};\n\nexport default useResizingState;\n"],"names":[],"mappings":";;AAyCO,MAAM,eAAA,GAAkB;AAAA,EAC7B,IAAA,EAAM,kBAAA;AAAA,EACN,GAAA,EAAK;AACP;AAMA,MAAM,mBAAmB,MAAqB;AAC5C,EAAA,MAAM,CAAC,kBAAA,EAAoB,qBAAqB,CAAA,GAAI,SAAiB,EAAE,CAAA;AACvE,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAI,SAA6B,IAAI,CAAA;AAC/D,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAI,SAA0B,eAAe,CAAA;AACzE,EAAA,MAAM,CAAC,oBAAA,EAAsB,uBAAuB,CAAA,GAAI,SAAiB,CAAC,CAAA;AAO1E,EAAA,MAAM,YAAA,GAAe,WAAA;AAAA,IACnB,CAAC,WAAA,KAAwB;AACvB,MAAA,OAAO,kBAAA,KAAuB,WAAA;AAAA,IAChC,CAAA;AAAA,IACA,CAAC,kBAAkB;AAAA,GACrB;AAOA,EAAA,MAAM,YAAA,GAAe,WAAA,CAAY,CAAC,WAAA,EAAqB,OAAA,KAAqB;AAC1E,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,qBAAA,CAAsB,WAAW,CAAA;AACjC,MAAA,uBAAA,CAAwB,IAAA,CAAK,KAAK,CAAA;AAAA,IACpC,CAAA,MAAO;AACL,MAAA,qBAAA,CAAsB,EAAE,CAAA;AAAA,IAC1B;AAAA,EACF,CAAA,EAAG,EAAE,CAAA;AAOL,EAAA,MAAM,WAAA,GAAc,WAAA;AAAA,IAClB,CAAC,WAAA,KAAwB;AACvB,MAAA,IAAI,uBAAuB,WAAA,EAAa;AACtC,QAAA,OAAO,eAAA;AAAA,MACT;AACA,MAAA,OAAO,QAAA;AAAA,IACT,CAAA;AAAA,IACA,CAAC,UAAU,kBAAkB;AAAA,GAC/B;AAEA,EAAA,OAAO;AAAA,IACL,OAAA;AAAA,IACA,UAAA;AAAA,IACA,YAAA;AAAA,IACA,YAAA;AAAA,IACA,WAAA;AAAA,IACA,WAAA;AAAA,IACA;AAAA,GACF;AACF
|
|
1
|
+
{"version":3,"file":"useResizingState.js","sources":["../../../../src/components/Grid/useResizingState.ts"],"sourcesContent":["import { useState, useCallback } from 'react';\nimport { ResizerPosition } from './types';\n\n/**\n * Defines the type for pointer information used in resizing.\n * @typedef {Object} PointerType\n * @property {number} width - The width of the pointer component.\n * @property {number} pointerId - Unique identifier for the pointer from a touch event.\n * @property {number} initialClientX - The initial X coordinate of the pointer when resizing started.\n */\nexport type PointerType = {\n width: number;\n pointerId: number;\n initialClientX: number;\n};\n\n/**\n * Defines the state and methods used for managing the column resizing.\n * @typedef {Object} ResizingState\n * @property {PointerType | null} pointer - The current pointer data, or null if no pointer is active.\n * @property {(pointer: PointerType | null) => void} setPointer - Setter to update the pointer.\n * @property {(columnIndex: number) => boolean} getIsPressed - Indicates if a resizer for the given column is currently pressed/dragged.\n * @property {(columnIndex: number, pressed: boolean) => void} setIsPressed - Sets the pressed state for a given column.\n * @property {(columnIndex: number) => ResizerPosition} getPosition - Gets the position of the resizer for the specified column.\n * @property {(position: ResizerPosition) => void} setPosition - Updates the position of the resizer.\n * @property {number} lastPressedTimestamp - Timestamp of the last time a column was pressed, used to detect double-clicks.\n */\nexport interface ResizingState {\n pointer: PointerType | null;\n setPointer: (pointer: PointerType | null) => void;\n getIsPressed: (columnIndex: number) => boolean;\n setIsPressed: (columnIndex: number, pressed: boolean) => void;\n getPosition: (columnIndex: number) => ResizerPosition;\n setPosition: (position: ResizerPosition) => void;\n lastPressedTimestamp: number;\n}\n\n/**\n * The initial position of the resizer element.\n * @type {ResizerPosition}\n */\nexport const initialPosition = {\n left: 'calc(100% - 4px)',\n top: '0',\n};\n\n/**\n * Custom hook that provides the state and methods needed to manage a resizing operation on columns.\n * @returns {ResizingState} The resizing state and methods for controlling resizing behavior.\n */\nconst useResizingState = (): ResizingState => {\n const [pressedColumnIndex, setPressedColumnIndex] = useState<number>(-1);\n const [pointer, setPointer] = useState<PointerType | null>(null);\n const [position, setPosition] = useState<ResizerPosition>(initialPosition);\n const [lastPressedTimestamp, setLastPressedTimestamp] = useState<number>(0);\n\n /**\n * Checks if the specified column index is currently in a pressed state.\n * @param {number} columnIndex - The index of the column to check.\n * @returns {boolean} True if the column is pressed, false otherwise.\n */\n const getIsPressed = useCallback(\n (columnIndex: number) => {\n return pressedColumnIndex === columnIndex;\n },\n [pressedColumnIndex]\n );\n\n /**\n * Updates the pressed state for a specified column.\n * @param {number} columnIndex - The index of the column.\n * @param {boolean} pressed - True to set the column as pressed, false to release it.\n */\n const setIsPressed = useCallback((columnIndex: number, pressed: boolean) => {\n if (pressed) {\n setPressedColumnIndex(columnIndex);\n setLastPressedTimestamp(Date.now());\n } else {\n setPressedColumnIndex(-1);\n }\n }, []);\n\n /**\n * Gets the position of the resizer for the specified column index.\n * @param {number} columnIndex - The index of the column to retrieve the position for.\n * @returns {ResizerPosition} The position of the resizer.\n */\n const getPosition = useCallback(\n (columnIndex: number) => {\n if (pressedColumnIndex !== columnIndex) {\n return initialPosition;\n }\n return position;\n },\n [position, pressedColumnIndex]\n );\n\n return {\n pointer,\n setPointer,\n getIsPressed,\n setIsPressed,\n getPosition,\n setPosition,\n lastPressedTimestamp,\n };\n};\n\nexport default useResizingState;\n"],"names":[],"mappings":";;AAyCO,MAAM,eAAA,GAAkB;AAAA,EAC7B,IAAA,EAAM,kBAAA;AAAA,EACN,GAAA,EAAK;AACP;AAMA,MAAM,mBAAmB,MAAqB;AAC5C,EAAA,MAAM,CAAC,kBAAA,EAAoB,qBAAqB,CAAA,GAAI,SAAiB,EAAE,CAAA;AACvE,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAI,SAA6B,IAAI,CAAA;AAC/D,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAI,SAA0B,eAAe,CAAA;AACzE,EAAA,MAAM,CAAC,oBAAA,EAAsB,uBAAuB,CAAA,GAAI,SAAiB,CAAC,CAAA;AAO1E,EAAA,MAAM,YAAA,GAAe,WAAA;AAAA,IACnB,CAAC,WAAA,KAAwB;AACvB,MAAA,OAAO,kBAAA,KAAuB,WAAA;AAAA,IAChC,CAAA;AAAA,IACA,CAAC,kBAAkB;AAAA,GACrB;AAOA,EAAA,MAAM,YAAA,GAAe,WAAA,CAAY,CAAC,WAAA,EAAqB,OAAA,KAAqB;AAC1E,IAAA,IAAI,OAAA,EAAS;AACX,MAAA,qBAAA,CAAsB,WAAW,CAAA;AACjC,MAAA,uBAAA,CAAwB,IAAA,CAAK,KAAK,CAAA;AAAA,IACpC,CAAA,MAAO;AACL,MAAA,qBAAA,CAAsB,EAAE,CAAA;AAAA,IAC1B;AAAA,EACF,CAAA,EAAG,EAAE,CAAA;AAOL,EAAA,MAAM,WAAA,GAAc,WAAA;AAAA,IAClB,CAAC,WAAA,KAAwB;AACvB,MAAA,IAAI,uBAAuB,WAAA,EAAa;AACtC,QAAA,OAAO,eAAA;AAAA,MACT;AACA,MAAA,OAAO,QAAA;AAAA,IACT,CAAA;AAAA,IACA,CAAC,UAAU,kBAAkB;AAAA,GAC/B;AAEA,EAAA,OAAO;AAAA,IACL,OAAA;AAAA,IACA,UAAA;AAAA,IACA,YAAA;AAAA,IACA,YAAA;AAAA,IACA,WAAA;AAAA,IACA,WAAA;AAAA,IACA;AAAA,GACF;AACF;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSelectionActions.js","sources":["../../../../src/components/Grid/useSelectionActions.ts"],"sourcesContent":["import { useCallback } from 'react';\n\nimport {\n SelectionAction,\n SelectedRegion,\n SelectionPos,\n RowsSelection,\n Rectangle,\n ColumnsSelection,\n KeyEventType,\n onSelectFn,\n RowSelectionAction,\n ColumnSelectionAction,\n CellSelectionAction,\n SelectionType,\n IsSelectedType,\n SelectionTypeFn,\n AllSelection,\n} from './types';\n\ninterface Props {\n onCellSelect: onSelectFn;\n focus: { row: number; column: number };\n columnCount: number;\n rowCount: number;\n onFocusChange: (rowIndex: number, columnIndex: number) => void;\n scrollGridTo: (props: { row?: number; column?: number }) => void;\n selection: SelectedRegion;\n rowStart: number;\n}\n\ninterface SelectionActions {\n getSelectionType: SelectionTypeFn;\n onSelection: (action: SelectionAction) => void;\n mouseMoveCellSelect: (row: number, column: number) => void;\n moveSelection: (\n columnDiff: number,\n rowDiff: number,\n moveAnchor: boolean,\n event: KeyEventType\n ) => SelectionAction | null;\n}\n\nexport const singleCellSelected = (selection: SelectedRegion): SelectionPos | null => {\n if (\n selection.type === 'rectangle' &&\n selection.bounds.left === selection.bounds.right &&\n selection.bounds.top === selection.bounds.bottom\n ) {\n return {\n column: selection.bounds.left,\n row: selection.bounds.top,\n };\n } else {\n return null;\n }\n};\n\nconst orderedRect = (x1: number, y1: number, x2: number, y2: number): Rectangle => {\n const left = Math.min(x1, x2);\n const right = Math.max(x1, x2);\n const top = Math.min(y1, y2);\n const bottom = Math.max(y1, y2);\n return { left, right, top, bottom };\n};\n\nexport const cellRectSelected = (\n selection: SelectedRegion,\n x1: number,\n y1: number,\n x2: number,\n y2: number\n): boolean => {\n const { left, right, top, bottom } = orderedRect(x1, y1, x2, y2);\n switch (selection.type) {\n case 'columns':\n for (let i = left; i <= right; ++i) {\n if (!selection.columns.has(i)) {\n return false;\n }\n }\n return true;\n case 'rows':\n for (let i = top; i <= bottom; ++i) {\n if (!selection.rows.has(i)) {\n return false;\n }\n }\n return true;\n case 'rectangle':\n return (\n selection.bounds.left <= left &&\n selection.bounds.right >= right &&\n selection.bounds.top <= top &&\n selection.bounds.bottom >= bottom\n );\n default:\n return false;\n }\n};\n\nconst rowSelection = (rows: Iterable<number>, anchorRow: number): RowsSelection => ({\n type: 'rows',\n rows: new Set(rows),\n anchorRow,\n});\n\nconst columnSelection = (\n columns: Iterable<number>,\n anchorColumn: number\n): ColumnsSelection => ({\n type: 'columns',\n columns: new Set(columns),\n anchorColumn,\n});\n\nexport const rectangleSelection = (\n anchorColumn: number,\n anchorRow: number,\n focusColumn: number,\n focusRow: number\n): SelectedRegion => {\n if (anchorColumn === focusColumn && focusRow === anchorRow) {\n return emptySelection();\n }\n return {\n type: 'rectangle',\n bounds: orderedRect(anchorColumn, anchorRow, focusColumn, focusRow),\n anchor: { column: anchorColumn, row: anchorRow },\n };\n};\n\nexport const emptySelection = (): SelectedRegion => ({ type: 'empty' });\n\nexport const columnIsSelected = (\n selection: SelectedRegion,\n column: number,\n bounds: Rectangle\n): boolean => cellRectSelected(selection, column, bounds.top, column, bounds.bottom);\nconst rowAnySelected = (selection: SelectedRegion, row: number): boolean =>\n selection.type === 'columns' ||\n (selection.type === 'rows' && selection.rows.has(row)) ||\n (selection.type === 'rectangle' &&\n selection.bounds.top <= row &&\n selection.bounds.bottom >= row);\n\nconst columnAnySelected = (selection: SelectedRegion, column: number): boolean =>\n selection.type === 'rows' ||\n (selection.type === 'columns' && selection.columns.has(column)) ||\n (selection.type === 'rectangle' &&\n selection.bounds.left <= column &&\n selection.bounds.right >= column);\n\nexport const rangeIndices = (a: number, b: number): number[] => {\n const low = Math.min(a, b);\n const high = Math.max(a, b);\n const indices: number[] = [];\n for (let i = low; i <= high; ++i) {\n indices.push(i);\n }\n return indices;\n};\n\nexport const useSelectionActions = ({\n onCellSelect,\n focus,\n columnCount,\n rowCount,\n onFocusChange,\n scrollGridTo,\n selection,\n rowStart,\n}: Props): SelectionActions => {\n const allSelect = useCallback(\n (action: AllSelection) => {\n const newSelection: SelectedRegion = {\n type: 'rows',\n rows: new Set(rangeIndices(rowStart, rowCount + rowStart - 1)),\n anchorRow: 0,\n };\n scrollGridTo({ row: rowStart, column: 0 });\n onFocusChange(rowStart, 0);\n onCellSelect(action, newSelection, {\n row: rowStart,\n column: 0,\n });\n },\n [onCellSelect, onFocusChange, rowCount, rowStart, scrollGridTo]\n );\n\n const cellSelect = useCallback(\n (action: CellSelectionAction) => {\n const { row, column } = action;\n scrollGridTo({ row, column });\n onFocusChange(row, column);\n const newSelection: SelectedRegion = emptySelection();\n onCellSelect(action, newSelection, focus);\n },\n [focus, onCellSelect, onFocusChange, scrollGridTo]\n );\n\n const shiftSelect = useCallback(\n (action: CellSelectionAction) => {\n const { row: rowIndex, column: columnIndex } = action;\n const newSelection = rectangleSelection(\n columnIndex,\n rowIndex,\n focus.column,\n focus.row\n );\n scrollGridTo({ row: rowIndex, column: columnIndex });\n onCellSelect(action, newSelection, focus);\n },\n [focus, onCellSelect, scrollGridTo]\n );\n\n const rowSelect = useCallback(\n (action: RowSelectionAction) => {\n const rowIndex = action.row;\n const newSelection = rowSelection([rowIndex], rowIndex);\n scrollGridTo({ row: rowIndex });\n onCellSelect(action, newSelection, focus);\n },\n [focus, onCellSelect, scrollGridTo]\n );\n\n const shiftRowSelect = useCallback(\n (action: RowSelectionAction) => {\n const rowIndex = action.row;\n const newSelection = rowSelection(rangeIndices(focus.row, rowIndex), rowIndex);\n scrollGridTo({ row: rowIndex });\n onCellSelect(action, newSelection, focus);\n },\n [focus, onCellSelect, scrollGridTo]\n );\n\n const columnSelect = useCallback(\n (action: ColumnSelectionAction) => {\n const columnIndex = action.column;\n const newSelection = columnSelection([columnIndex], columnIndex);\n scrollGridTo({ column: columnIndex });\n onCellSelect(action, newSelection, focus);\n },\n [focus, onCellSelect, scrollGridTo]\n );\n\n const shiftColumnSelect = useCallback(\n (action: ColumnSelectionAction) => {\n const columnIndex = action.column;\n const newSelection = columnSelection(\n rangeIndices(focus.column, columnIndex),\n columnIndex\n );\n onCellSelect(action, newSelection, focus);\n scrollGridTo({ column: columnIndex });\n },\n [focus, onCellSelect, scrollGridTo]\n );\n\n const onSelection = useCallback(\n (action: SelectionAction): void => {\n switch (action.type) {\n case 'all':\n allSelect(action);\n break;\n case 'normal':\n cellSelect(action);\n break;\n case 'shiftSelection':\n shiftSelect(action);\n break;\n case 'columnSelection':\n columnSelect(action);\n break;\n case 'shiftColumnSelection':\n shiftColumnSelect(action);\n break;\n case 'rowSelection':\n rowSelect(action);\n break;\n case 'shiftRowSelection':\n shiftRowSelect(action);\n break;\n default:\n throw new Error(`Value should not occur ${action}`);\n }\n },\n [\n allSelect,\n cellSelect,\n shiftSelect,\n columnSelect,\n shiftColumnSelect,\n rowSelect,\n shiftRowSelect,\n ]\n );\n\n const moveSelection = useCallback(\n (\n columnDiff: number,\n rowDiff: number,\n moveAnchor: boolean,\n event: KeyEventType\n ): SelectionAction | null => {\n const clamp = (n: number, low: number, high: number) => {\n return Math.max(low, Math.min(high, n));\n };\n\n let action: SelectionAction | null = null;\n\n if (moveAnchor) {\n if (selection.type === 'rows') {\n const row = clamp(selection.anchorRow + rowDiff, 0, rowCount + rowStart - 1);\n action = { type: 'shiftRowSelection', row, event };\n } else if (selection.type === 'columns') {\n const column = clamp(selection.anchorColumn + columnDiff, 0, columnCount - 1);\n action = { type: 'shiftColumnSelection', column, event };\n } else if (selection.type === 'rectangle') {\n const row = clamp(selection.anchor.row + rowDiff, 0, rowCount + rowStart - 1);\n const column = clamp(selection.anchor.column + columnDiff, 0, columnCount - 1);\n action = { type: 'shiftSelection', row, column, event };\n }\n } else {\n const row = clamp(focus.row + rowDiff, 0, rowCount + rowStart - 1);\n const column = clamp(focus.column + columnDiff, 0, columnCount - 1);\n action = { type: 'normal', row, column, event };\n }\n\n if (action) {\n onSelection(action);\n }\n\n return action;\n },\n [onSelection, columnCount, rowCount, selection, focus, rowStart]\n );\n\n const getSelectionType = useCallback(\n (args: IsSelectedType): SelectionType => {\n if (args.type === 'all') {\n const isSelected = cellRectSelected(\n selection,\n 0,\n rowStart,\n columnCount - 1,\n rowCount + rowStart - 1\n );\n return isSelected ? 'selectDirect' : 'default';\n }\n\n if (args.type === 'column') {\n if (\n cellRectSelected(\n selection,\n args.column,\n rowStart,\n args.column,\n rowCount + rowStart\n )\n ) {\n return 'selectDirect';\n }\n\n return columnAnySelected(selection, args.column) ? 'selectIndirect' : 'default';\n }\n\n const isRowSelected = cellRectSelected(\n selection,\n 0,\n args.row,\n columnCount,\n args.row\n );\n const isRowAnySelected =\n focus.row === args.row || rowAnySelected(selection, args.row);\n\n if (args.type === 'cell' && args.column == -1) {\n return 'default';\n }\n\n if (isRowSelected) {\n return 'selectDirect';\n }\n\n if (!isRowAnySelected) {\n return 'default';\n }\n\n if (args.type === 'cell') {\n const { row, column } = args;\n if (\n row >= rowCount + rowStart ||\n column >= columnCount ||\n row < rowStart ||\n column < 0\n ) {\n return 'default';\n }\n\n if (cellRectSelected(selection, column, row, column, row)) {\n return 'selectDirect';\n }\n }\n\n if (selection.type === 'columns') {\n return 'default';\n }\n\n return 'selectIndirect';\n },\n [columnCount, focus.row, rowCount, rowStart, selection]\n );\n\n const mouseMoveCellSelect = useCallback(\n (row: number, column: number) => {\n const selectionType = selection.type;\n const event = 'click';\n if (row === -1 && column == -1) {\n return;\n }\n\n if (selectionType === 'columns') {\n onSelection({\n type: 'shiftColumnSelection',\n column,\n event,\n });\n return;\n }\n\n if (selectionType === 'rows') {\n onSelection({\n type: 'shiftRowSelection',\n row,\n event,\n });\n return;\n }\n\n if (row === -1) {\n let row = focus.row;\n if (selection.type !== 'empty') {\n const {\n bounds: { top, bottom },\n } = selection;\n if (top <= row) {\n row = top;\n } else {\n row = bottom;\n }\n }\n onSelection({\n type: 'shiftSelection',\n row,\n column,\n event,\n });\n return;\n }\n if (column === -1) {\n let column = focus.column;\n if (selection.type !== 'empty') {\n const {\n bounds: { left, right },\n } = selection;\n if (left <= column) {\n column = left;\n } else {\n column = right;\n }\n }\n onSelection({\n type: 'shiftSelection',\n row,\n column,\n event,\n });\n return;\n }\n\n onSelection({\n type: 'shiftSelection',\n row,\n column,\n event,\n });\n },\n [focus.column, focus.row, onSelection, selection]\n );\n\n return {\n getSelectionType,\n onSelection,\n mouseMoveCellSelect,\n moveSelection,\n };\n};\n"],"names":["row","column"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useSelectionActions.js","sources":["../../../../src/components/Grid/useSelectionActions.ts"],"sourcesContent":["import { useCallback } from 'react';\n\nimport {\n SelectionAction,\n SelectedRegion,\n SelectionPos,\n RowsSelection,\n Rectangle,\n ColumnsSelection,\n KeyEventType,\n onSelectFn,\n RowSelectionAction,\n ColumnSelectionAction,\n CellSelectionAction,\n SelectionType,\n IsSelectedType,\n SelectionTypeFn,\n AllSelection,\n} from './types';\n\ninterface Props {\n onCellSelect: onSelectFn;\n focus: { row: number; column: number };\n columnCount: number;\n rowCount: number;\n onFocusChange: (rowIndex: number, columnIndex: number) => void;\n scrollGridTo: (props: { row?: number; column?: number }) => void;\n selection: SelectedRegion;\n rowStart: number;\n}\n\ninterface SelectionActions {\n getSelectionType: SelectionTypeFn;\n onSelection: (action: SelectionAction) => void;\n mouseMoveCellSelect: (row: number, column: number) => void;\n moveSelection: (\n columnDiff: number,\n rowDiff: number,\n moveAnchor: boolean,\n event: KeyEventType\n ) => SelectionAction | null;\n}\n\nexport const singleCellSelected = (selection: SelectedRegion): SelectionPos | null => {\n if (\n selection.type === 'rectangle' &&\n selection.bounds.left === selection.bounds.right &&\n selection.bounds.top === selection.bounds.bottom\n ) {\n return {\n column: selection.bounds.left,\n row: selection.bounds.top,\n };\n } else {\n return null;\n }\n};\n\nconst orderedRect = (x1: number, y1: number, x2: number, y2: number): Rectangle => {\n const left = Math.min(x1, x2);\n const right = Math.max(x1, x2);\n const top = Math.min(y1, y2);\n const bottom = Math.max(y1, y2);\n return { left, right, top, bottom };\n};\n\nexport const cellRectSelected = (\n selection: SelectedRegion,\n x1: number,\n y1: number,\n x2: number,\n y2: number\n): boolean => {\n const { left, right, top, bottom } = orderedRect(x1, y1, x2, y2);\n switch (selection.type) {\n case 'columns':\n for (let i = left; i <= right; ++i) {\n if (!selection.columns.has(i)) {\n return false;\n }\n }\n return true;\n case 'rows':\n for (let i = top; i <= bottom; ++i) {\n if (!selection.rows.has(i)) {\n return false;\n }\n }\n return true;\n case 'rectangle':\n return (\n selection.bounds.left <= left &&\n selection.bounds.right >= right &&\n selection.bounds.top <= top &&\n selection.bounds.bottom >= bottom\n );\n default:\n return false;\n }\n};\n\nconst rowSelection = (rows: Iterable<number>, anchorRow: number): RowsSelection => ({\n type: 'rows',\n rows: new Set(rows),\n anchorRow,\n});\n\nconst columnSelection = (\n columns: Iterable<number>,\n anchorColumn: number\n): ColumnsSelection => ({\n type: 'columns',\n columns: new Set(columns),\n anchorColumn,\n});\n\nexport const rectangleSelection = (\n anchorColumn: number,\n anchorRow: number,\n focusColumn: number,\n focusRow: number\n): SelectedRegion => {\n if (anchorColumn === focusColumn && focusRow === anchorRow) {\n return emptySelection();\n }\n return {\n type: 'rectangle',\n bounds: orderedRect(anchorColumn, anchorRow, focusColumn, focusRow),\n anchor: { column: anchorColumn, row: anchorRow },\n };\n};\n\nexport const emptySelection = (): SelectedRegion => ({ type: 'empty' });\n\nexport const columnIsSelected = (\n selection: SelectedRegion,\n column: number,\n bounds: Rectangle\n): boolean => cellRectSelected(selection, column, bounds.top, column, bounds.bottom);\nconst rowAnySelected = (selection: SelectedRegion, row: number): boolean =>\n selection.type === 'columns' ||\n (selection.type === 'rows' && selection.rows.has(row)) ||\n (selection.type === 'rectangle' &&\n selection.bounds.top <= row &&\n selection.bounds.bottom >= row);\n\nconst columnAnySelected = (selection: SelectedRegion, column: number): boolean =>\n selection.type === 'rows' ||\n (selection.type === 'columns' && selection.columns.has(column)) ||\n (selection.type === 'rectangle' &&\n selection.bounds.left <= column &&\n selection.bounds.right >= column);\n\nexport const rangeIndices = (a: number, b: number): number[] => {\n const low = Math.min(a, b);\n const high = Math.max(a, b);\n const indices: number[] = [];\n for (let i = low; i <= high; ++i) {\n indices.push(i);\n }\n return indices;\n};\n\nexport const useSelectionActions = ({\n onCellSelect,\n focus,\n columnCount,\n rowCount,\n onFocusChange,\n scrollGridTo,\n selection,\n rowStart,\n}: Props): SelectionActions => {\n const allSelect = useCallback(\n (action: AllSelection) => {\n const newSelection: SelectedRegion = {\n type: 'rows',\n rows: new Set(rangeIndices(rowStart, rowCount + rowStart - 1)),\n anchorRow: 0,\n };\n scrollGridTo({ row: rowStart, column: 0 });\n onFocusChange(rowStart, 0);\n onCellSelect(action, newSelection, {\n row: rowStart,\n column: 0,\n });\n },\n [onCellSelect, onFocusChange, rowCount, rowStart, scrollGridTo]\n );\n\n const cellSelect = useCallback(\n (action: CellSelectionAction) => {\n const { row, column } = action;\n scrollGridTo({ row, column });\n onFocusChange(row, column);\n const newSelection: SelectedRegion = emptySelection();\n onCellSelect(action, newSelection, focus);\n },\n [focus, onCellSelect, onFocusChange, scrollGridTo]\n );\n\n const shiftSelect = useCallback(\n (action: CellSelectionAction) => {\n const { row: rowIndex, column: columnIndex } = action;\n const newSelection = rectangleSelection(\n columnIndex,\n rowIndex,\n focus.column,\n focus.row\n );\n scrollGridTo({ row: rowIndex, column: columnIndex });\n onCellSelect(action, newSelection, focus);\n },\n [focus, onCellSelect, scrollGridTo]\n );\n\n const rowSelect = useCallback(\n (action: RowSelectionAction) => {\n const rowIndex = action.row;\n const newSelection = rowSelection([rowIndex], rowIndex);\n scrollGridTo({ row: rowIndex });\n onCellSelect(action, newSelection, focus);\n },\n [focus, onCellSelect, scrollGridTo]\n );\n\n const shiftRowSelect = useCallback(\n (action: RowSelectionAction) => {\n const rowIndex = action.row;\n const newSelection = rowSelection(rangeIndices(focus.row, rowIndex), rowIndex);\n scrollGridTo({ row: rowIndex });\n onCellSelect(action, newSelection, focus);\n },\n [focus, onCellSelect, scrollGridTo]\n );\n\n const columnSelect = useCallback(\n (action: ColumnSelectionAction) => {\n const columnIndex = action.column;\n const newSelection = columnSelection([columnIndex], columnIndex);\n scrollGridTo({ column: columnIndex });\n onCellSelect(action, newSelection, focus);\n },\n [focus, onCellSelect, scrollGridTo]\n );\n\n const shiftColumnSelect = useCallback(\n (action: ColumnSelectionAction) => {\n const columnIndex = action.column;\n const newSelection = columnSelection(\n rangeIndices(focus.column, columnIndex),\n columnIndex\n );\n onCellSelect(action, newSelection, focus);\n scrollGridTo({ column: columnIndex });\n },\n [focus, onCellSelect, scrollGridTo]\n );\n\n const onSelection = useCallback(\n (action: SelectionAction): void => {\n switch (action.type) {\n case 'all':\n allSelect(action);\n break;\n case 'normal':\n cellSelect(action);\n break;\n case 'shiftSelection':\n shiftSelect(action);\n break;\n case 'columnSelection':\n columnSelect(action);\n break;\n case 'shiftColumnSelection':\n shiftColumnSelect(action);\n break;\n case 'rowSelection':\n rowSelect(action);\n break;\n case 'shiftRowSelection':\n shiftRowSelect(action);\n break;\n default:\n throw new Error(`Value should not occur ${action}`);\n }\n },\n [\n allSelect,\n cellSelect,\n shiftSelect,\n columnSelect,\n shiftColumnSelect,\n rowSelect,\n shiftRowSelect,\n ]\n );\n\n const moveSelection = useCallback(\n (\n columnDiff: number,\n rowDiff: number,\n moveAnchor: boolean,\n event: KeyEventType\n ): SelectionAction | null => {\n const clamp = (n: number, low: number, high: number) => {\n return Math.max(low, Math.min(high, n));\n };\n\n let action: SelectionAction | null = null;\n\n if (moveAnchor) {\n if (selection.type === 'rows') {\n const row = clamp(selection.anchorRow + rowDiff, 0, rowCount + rowStart - 1);\n action = { type: 'shiftRowSelection', row, event };\n } else if (selection.type === 'columns') {\n const column = clamp(selection.anchorColumn + columnDiff, 0, columnCount - 1);\n action = { type: 'shiftColumnSelection', column, event };\n } else if (selection.type === 'rectangle') {\n const row = clamp(selection.anchor.row + rowDiff, 0, rowCount + rowStart - 1);\n const column = clamp(selection.anchor.column + columnDiff, 0, columnCount - 1);\n action = { type: 'shiftSelection', row, column, event };\n }\n } else {\n const row = clamp(focus.row + rowDiff, 0, rowCount + rowStart - 1);\n const column = clamp(focus.column + columnDiff, 0, columnCount - 1);\n action = { type: 'normal', row, column, event };\n }\n\n if (action) {\n onSelection(action);\n }\n\n return action;\n },\n [onSelection, columnCount, rowCount, selection, focus, rowStart]\n );\n\n const getSelectionType = useCallback(\n (args: IsSelectedType): SelectionType => {\n if (args.type === 'all') {\n const isSelected = cellRectSelected(\n selection,\n 0,\n rowStart,\n columnCount - 1,\n rowCount + rowStart - 1\n );\n return isSelected ? 'selectDirect' : 'default';\n }\n\n if (args.type === 'column') {\n if (\n cellRectSelected(\n selection,\n args.column,\n rowStart,\n args.column,\n rowCount + rowStart\n )\n ) {\n return 'selectDirect';\n }\n\n return columnAnySelected(selection, args.column) ? 'selectIndirect' : 'default';\n }\n\n const isRowSelected = cellRectSelected(\n selection,\n 0,\n args.row,\n columnCount,\n args.row\n );\n const isRowAnySelected =\n focus.row === args.row || rowAnySelected(selection, args.row);\n\n if (args.type === 'cell' && args.column == -1) {\n return 'default';\n }\n\n if (isRowSelected) {\n return 'selectDirect';\n }\n\n if (!isRowAnySelected) {\n return 'default';\n }\n\n if (args.type === 'cell') {\n const { row, column } = args;\n if (\n row >= rowCount + rowStart ||\n column >= columnCount ||\n row < rowStart ||\n column < 0\n ) {\n return 'default';\n }\n\n if (cellRectSelected(selection, column, row, column, row)) {\n return 'selectDirect';\n }\n }\n\n if (selection.type === 'columns') {\n return 'default';\n }\n\n return 'selectIndirect';\n },\n [columnCount, focus.row, rowCount, rowStart, selection]\n );\n\n const mouseMoveCellSelect = useCallback(\n (row: number, column: number) => {\n const selectionType = selection.type;\n const event = 'click';\n if (row === -1 && column == -1) {\n return;\n }\n\n if (selectionType === 'columns') {\n onSelection({\n type: 'shiftColumnSelection',\n column,\n event,\n });\n return;\n }\n\n if (selectionType === 'rows') {\n onSelection({\n type: 'shiftRowSelection',\n row,\n event,\n });\n return;\n }\n\n if (row === -1) {\n let row = focus.row;\n if (selection.type !== 'empty') {\n const {\n bounds: { top, bottom },\n } = selection;\n if (top <= row) {\n row = top;\n } else {\n row = bottom;\n }\n }\n onSelection({\n type: 'shiftSelection',\n row,\n column,\n event,\n });\n return;\n }\n if (column === -1) {\n let column = focus.column;\n if (selection.type !== 'empty') {\n const {\n bounds: { left, right },\n } = selection;\n if (left <= column) {\n column = left;\n } else {\n column = right;\n }\n }\n onSelection({\n type: 'shiftSelection',\n row,\n column,\n event,\n });\n return;\n }\n\n onSelection({\n type: 'shiftSelection',\n row,\n column,\n event,\n });\n },\n [focus.column, focus.row, onSelection, selection]\n );\n\n return {\n getSelectionType,\n onSelection,\n mouseMoveCellSelect,\n moveSelection,\n };\n};\n"],"names":["row","column"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GridContainer.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"GridContainer.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/GridContainer/GridContainer.tsx"],"sourcesContent":["import {\n ComponentProps,\n ComponentPropsWithRef,\n CSSProperties,\n ElementType,\n forwardRef,\n ReactNode,\n useMemo,\n} from 'react';\nimport { cn } from '@/lib/cva';\nimport
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/GridContainer/GridContainer.tsx"],"sourcesContent":["import {\n ComponentProps,\n ComponentPropsWithRef,\n CSSProperties,\n ElementType,\n forwardRef,\n ReactNode,\n useMemo,\n} from 'react';\nimport { cn } from '@/lib/cva';\nimport type { GridContainerProps } from './GridContainer.types';\nimport styles from './GridContainer.module.css';\n\ntype GridContainerPolymorphicComponent = <T extends ElementType = 'div'>(\n props: Omit<ComponentProps<T>, keyof GridContainerProps<T>> & GridContainerProps<T>\n) => ReactNode;\n\nconst _GridContainer = <T extends ElementType = 'div'>(\n {\n alignItems = 'stretch',\n alignContent = 'stretch',\n children,\n columnGap,\n gap,\n gridAutoColumns,\n gridAutoFlow,\n gridAutoRows,\n gridTemplateAreas,\n gridTemplateColumns,\n gridTemplateRows,\n gridTemplate,\n inline = false,\n isResponsive = true,\n justifyContent = 'stretch',\n justifyItems = 'stretch',\n rowGap,\n height,\n maxHeight,\n minHeight,\n fillWidth = true,\n maxWidth,\n minWidth,\n overflow,\n component,\n className,\n style,\n ...props\n }: Omit<ComponentProps<T>, keyof GridContainerProps<T>> & GridContainerProps<T>,\n ref: ComponentPropsWithRef<T>['ref']\n) => {\n const Component = component ?? 'div';\n\n // `_GridContainer` is a real component (wrapped by `forwardRef` below); the\n // rules-of-hooks PascalCase-name heuristic false-positives on our\n // `_`-prefixed polymorphic-component naming convention.\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const mergedStyle = useMemo(\n () =>\n ({\n '--grid-container-display': inline === true ? 'inline-grid' : 'grid',\n '--grid-container-align-items': alignItems,\n '--grid-container-align-content': alignContent,\n '--grid-container-justify-content': justifyContent,\n '--grid-container-justify-items': justifyItems,\n '--grid-container-width': fillWidth ? '100%' : 'auto',\n ...(gap && {\n '--grid-container-gap': `var(--click-gridContainer-gap-${gap})`,\n }),\n ...(columnGap && {\n columnGap: `var(--click-gridContainer-gap-${columnGap})`,\n }),\n ...(rowGap && {\n rowGap: `var(--click-gridContainer-gap-${rowGap})`,\n }),\n ...(gridAutoColumns && {\n '--grid-container-auto-columns': gridAutoColumns,\n }),\n ...(gridAutoFlow && { '--grid-container-auto-flow': gridAutoFlow }),\n ...(gridAutoRows && { '--grid-container-auto-rows': gridAutoRows }),\n ...(gridTemplateAreas && {\n '--grid-container-template-area': gridTemplateAreas,\n }),\n ...(gridTemplateColumns && {\n '--grid-container-template-columns': gridTemplateColumns,\n }),\n ...(gridTemplateRows && {\n '--grid-container-template-rows': gridTemplateRows,\n }),\n ...(gridTemplate && { gridTemplate }),\n ...(typeof maxWidth === 'string' && {\n '--grid-container-max-width': maxWidth,\n }),\n ...(typeof minWidth === 'string' && {\n '--grid-container-min-width': minWidth,\n }),\n ...(typeof height === 'string' && {\n '--grid-container-height': height,\n }),\n ...(typeof maxHeight === 'string' && {\n '--grid-container-max-height': maxHeight,\n }),\n ...(typeof minHeight === 'string' && {\n '--grid-container-min-height': minHeight,\n }),\n ...(typeof overflow === 'string' && {\n '--grid-container-overflow': overflow,\n }),\n ...style,\n }) as CSSProperties,\n [\n inline,\n alignItems,\n alignContent,\n justifyContent,\n justifyItems,\n fillWidth,\n gap,\n columnGap,\n rowGap,\n gridAutoColumns,\n gridAutoFlow,\n gridAutoRows,\n gridTemplateAreas,\n gridTemplateColumns,\n gridTemplateRows,\n gridTemplate,\n maxWidth,\n minWidth,\n height,\n maxHeight,\n minHeight,\n overflow,\n style,\n ]\n );\n\n return (\n <Component\n data-testid=\"grid-container\"\n ref={ref}\n {...props}\n style={mergedStyle}\n className={cn(\n styles['grid-container'],\n isResponsive\n ? styles['grid-container_responsive']\n : styles['grid-container_not-responsive'],\n className\n )}\n >\n {children}\n </Component>\n );\n};\n\nexport const GridContainer: GridContainerPolymorphicComponent =\n forwardRef(_GridContainer);\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HoverCard.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"HoverCard.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/HoverCard/HoverCard.tsx"],"sourcesContent":["import * as RadixHoverCard from '@radix-ui/react-hover-card';\nimport {
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/HoverCard/HoverCard.tsx"],"sourcesContent":["import * as RadixHoverCard from '@radix-ui/react-hover-card';\nimport { Arrow, GenericPopoverMenuPanel } from '@/components/GenericMenu';\nimport { cn } from '@/lib/cva';\nimport Popover_Arrow from '@/components/Assets/Icons/Popover-Arrow';\nimport { useResolvedPortalContainer } from '@/providers/PortalContext';\nimport type { HoverCardContentProps } from './HoverCard.types';\nimport styles from './HoverCard.module.css';\n\nexport const HoverCard = ({ children, ...props }: RadixHoverCard.HoverCardProps) => {\n return <RadixHoverCard.Root {...props}>{children}</RadixHoverCard.Root>;\n};\n\nconst HoverCardTrigger = ({\n children,\n className,\n ...props\n}: RadixHoverCard.HoverCardTriggerProps) => {\n return (\n <RadixHoverCard.Trigger\n {...props}\n className={cn(styles['hover-card__trigger'], className)}\n >\n {children}\n </RadixHoverCard.Trigger>\n );\n};\nHoverCardTrigger.displayName = 'HoverCardTrigger';\nHoverCard.Trigger = HoverCardTrigger;\n\nconst HoverCardContent = ({\n children,\n showArrow,\n forceMount,\n container,\n ...props\n}: HoverCardContentProps) => {\n const portalContainer = useResolvedPortalContainer(container);\n\n return (\n <RadixHoverCard.Portal\n forceMount={forceMount}\n container={portalContainer}\n >\n <GenericPopoverMenuPanel\n as={RadixHoverCard.Content}\n type=\"hover-card\"\n showArrow={showArrow}\n {...props}\n >\n {showArrow && (\n <Arrow\n asChild\n as={RadixHoverCard.Arrow}\n width={15}\n height={10}\n >\n <Popover_Arrow />\n </Arrow>\n )}\n {children}\n </GenericPopoverMenuPanel>\n </RadixHoverCard.Portal>\n );\n};\nHoverCardContent.displayName = 'HoverCardContent';\nHoverCard.Content = HoverCardContent;\n"],"names":[],"mappings":";;;;;;;;AAQO,MAAM,YAAY,CAAC,EAAE,QAAA,EAAU,GAAG,OAAM,KAAqC;AAClF,EAAA,2BAAQ,cAAA,CAAe,IAAA,EAAf,EAAqB,GAAG,OAAQ,QAAA,EAAS,CAAA;AACnD;AAEA,MAAM,mBAAmB,CAAC;AAAA,EACxB,QAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAG;AACL,CAAA,KAA4C;AAC1C,EAAA,uBACE,GAAA;AAAA,IAAC,cAAA,CAAe,OAAA;AAAA,IAAf;AAAA,MACE,GAAG,KAAA;AAAA,MACJ,SAAA,EAAW,EAAA,CAAG,MAAA,CAAO,qBAAqB,GAAG,SAAS,CAAA;AAAA,MAErD;AAAA;AAAA,GACH;AAEJ,CAAA;AACA,gBAAA,CAAiB,WAAA,GAAc,kBAAA;AAC/B,SAAA,CAAU,OAAA,GAAU,gBAAA;AAEpB,MAAM,mBAAmB,CAAC;AAAA,EACxB,QAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAG;AACL,CAAA,KAA6B;AAC3B,EAAA,MAAM,eAAA,GAAkB,2BAA2B,SAAS,CAAA;AAE5D,EAAA,uBACE,GAAA;AAAA,IAAC,cAAA,CAAe,MAAA;AAAA,IAAf;AAAA,MACC,UAAA;AAAA,MACA,SAAA,EAAW,eAAA;AAAA,MAEX,QAAA,kBAAA,IAAA;AAAA,QAAC,uBAAA;AAAA,QAAA;AAAA,UACC,IAAI,cAAA,CAAe,OAAA;AAAA,UACnB,IAAA,EAAK,YAAA;AAAA,UACL,SAAA;AAAA,UACC,GAAG,KAAA;AAAA,UAEH,QAAA,EAAA;AAAA,YAAA,SAAA,oBACC,GAAA;AAAA,cAAC,KAAA;AAAA,cAAA;AAAA,gBACC,OAAA,EAAO,IAAA;AAAA,gBACP,IAAI,cAAA,CAAe,KAAA;AAAA,gBACnB,KAAA,EAAO,EAAA;AAAA,gBACP,MAAA,EAAQ,EAAA;AAAA,gBAER,8BAAC,aAAA,EAAA,EAAc;AAAA;AAAA,aACjB;AAAA,YAED;AAAA;AAAA;AAAA;AACH;AAAA,GACF;AAEJ,CAAA;AACA,gBAAA,CAAiB,WAAA,GAAc,kBAAA;AAC/B,SAAA,CAAU,OAAA,GAAU,gBAAA;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Icon.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Icon.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IconCommon.js","sources":["../../../../src/components/Icon/IconCommon.tsx"],"sourcesContent":["import IconsLight from '@/components/Assets/Icons/system/IconsLight';\n\nexport const ICON_NAMES = Object.keys(IconsLight) as (keyof typeof IconsLight)[];\n\nexport const ICONS_MAP = IconsLight;\n"],"names":[],"mappings":";;AAIO,MAAM,SAAA,GAAY
|
|
1
|
+
{"version":3,"file":"IconCommon.js","sources":["../../../../src/components/Icon/IconCommon.tsx"],"sourcesContent":["import IconsLight from '@/components/Assets/Icons/system/IconsLight';\n\nexport const ICON_NAMES = Object.keys(IconsLight) as (keyof typeof IconsLight)[];\n\nexport const ICONS_MAP = IconsLight;\n"],"names":[],"mappings":";;AAIO,MAAM,SAAA,GAAY;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SvgImageElement.js","sources":["../../../../src/components/Icon/SvgImageElement.tsx"],"sourcesContent":["import { ComponentType, SVGAttributes } from 'react';\nimport { cn, cva } from '@/lib/cva';\nimport type { AssetSize } from '@/types';\nimport styles from './Icon.module.css';\n\nconst svgImageVariants = cva(styles['svg-image'], {\n variants: {\n size: {\n xs: styles['svg-image_size_xs'],\n sm: styles['svg-image_size_sm'],\n md: styles['svg-image_size_md'],\n lg: styles['svg-image_size_lg'],\n xl: styles['svg-image_size_xl'],\n xxl: styles['svg-image_size_xxl'],\n },\n },\n});\n\nexport interface SvgImageElementProps extends SVGAttributes<SVGElement> {\n as?: ComponentType<SVGAttributes<SVGElement>>;\n size?: AssetSize;\n}\n\nexport const SvgImageElement = ({\n as: Component,\n size,\n className,\n ...props\n}: SvgImageElementProps) => {\n const mergedClassName = cn(svgImageVariants({ size }), className);\n if (Component) {\n return (\n <Component\n {...props}\n className={mergedClassName}\n />\n );\n }\n return (\n <svg\n {...props}\n className={mergedClassName}\n />\n );\n};\n"],"names":[],"mappings":";;;;;AAKA,MAAM,gBAAA,GAAmB,GAAA,CAAI,MAAA,CAAO,WAAW,CAAA,EAAG;AAAA,EAChD,QAAA,EAAU;AAAA,IACR,IAAA,EAAM;AAAA,MACJ,EAAA,EAAI,OAAO,mBAAmB,CAAA;AAAA,MAC9B,EAAA,EAAI,OAAO,mBAAmB,CAAA;AAAA,MAC9B,EAAA,EAAI,OAAO,mBAAmB,CAAA;AAAA,MAC9B,EAAA,EAAI,OAAO,mBAAmB,CAAA;AAAA,MAC9B,EAAA,EAAI,OAAO,mBAAmB,CAAA;AAAA,MAC9B,GAAA,EAAK,OAAO,oBAAoB;AAAA;AAClC;AAEJ,CAAC,CAAA;AAOM,MAAM,kBAAkB,CAAC;AAAA,EAC9B,EAAA,EAAI,SAAA;AAAA,EACJ,IAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAG;AACL,CAAA,KAA4B;AAC1B,EAAA,MAAM,kBAAkB,EAAA,CAAG,gBAAA,CAAiB,EAAE,IAAA,EAAM,GAAG,SAAS,CAAA;AAChE,EAAA,IAAI,SAAA,EAAW;AACb,IAAA,uBACE,GAAA;AAAA,MAAC,SAAA;AAAA,MAAA;AAAA,QACE,GAAG,KAAA;AAAA,QACJ,SAAA,EAAW;AAAA;AAAA,KACb;AAAA,EAEJ;AACA,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACE,GAAG,KAAA;AAAA,MACJ,SAAA,EAAW;AAAA;AAAA,GACb;AAEJ
|
|
1
|
+
{"version":3,"file":"SvgImageElement.js","sources":["../../../../src/components/Icon/SvgImageElement.tsx"],"sourcesContent":["import { ComponentType, SVGAttributes } from 'react';\nimport { cn, cva } from '@/lib/cva';\nimport type { AssetSize } from '@/types';\nimport styles from './Icon.module.css';\n\nconst svgImageVariants = cva(styles['svg-image'], {\n variants: {\n size: {\n xs: styles['svg-image_size_xs'],\n sm: styles['svg-image_size_sm'],\n md: styles['svg-image_size_md'],\n lg: styles['svg-image_size_lg'],\n xl: styles['svg-image_size_xl'],\n xxl: styles['svg-image_size_xxl'],\n },\n },\n});\n\nexport interface SvgImageElementProps extends SVGAttributes<SVGElement> {\n as?: ComponentType<SVGAttributes<SVGElement>>;\n size?: AssetSize;\n}\n\nexport const SvgImageElement = ({\n as: Component,\n size,\n className,\n ...props\n}: SvgImageElementProps) => {\n const mergedClassName = cn(svgImageVariants({ size }), className);\n if (Component) {\n return (\n <Component\n {...props}\n className={mergedClassName}\n />\n );\n }\n return (\n <svg\n {...props}\n className={mergedClassName}\n />\n );\n};\n"],"names":[],"mappings":";;;;;AAKA,MAAM,gBAAA,GAAmB,GAAA,CAAI,MAAA,CAAO,WAAW,CAAA,EAAG;AAAA,EAChD,QAAA,EAAU;AAAA,IACR,IAAA,EAAM;AAAA,MACJ,EAAA,EAAI,OAAO,mBAAmB,CAAA;AAAA,MAC9B,EAAA,EAAI,OAAO,mBAAmB,CAAA;AAAA,MAC9B,EAAA,EAAI,OAAO,mBAAmB,CAAA;AAAA,MAC9B,EAAA,EAAI,OAAO,mBAAmB,CAAA;AAAA,MAC9B,EAAA,EAAI,OAAO,mBAAmB,CAAA;AAAA,MAC9B,GAAA,EAAK,OAAO,oBAAoB;AAAA;AAClC;AAEJ,CAAC,CAAA;AAOM,MAAM,kBAAkB,CAAC;AAAA,EAC9B,EAAA,EAAI,SAAA;AAAA,EACJ,IAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAG;AACL,CAAA,KAA4B;AAC1B,EAAA,MAAM,kBAAkB,EAAA,CAAG,gBAAA,CAAiB,EAAE,IAAA,EAAM,GAAG,SAAS,CAAA;AAChE,EAAA,IAAI,SAAA,EAAW;AACb,IAAA,uBACE,GAAA;AAAA,MAAC,SAAA;AAAA,MAAA;AAAA,QACE,GAAG,KAAA;AAAA,QACJ,SAAA,EAAW;AAAA;AAAA,KACb;AAAA,EAEJ;AACA,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACE,GAAG,KAAA;AAAA,MACJ,SAAA,EAAW;AAAA;AAAA,GACb;AAEJ;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/Icon/Icon.tsx"],"sourcesContent":["import { CSSProperties, useMemo } from 'react';\nimport { cn, cva } from '@/lib/cva';\nimport { IconName, IconProps, ImageName, ImageType } from './Icon.types';\nimport { ICONS_MAP } from '@/components/Icon/IconCommon';\nimport { resolveAssetName } from '@/components/Assets/config';\nimport { Flag } from '@/components/Assets/Flags/system/Flag';\nimport FlagsLight from '@/components/Assets/Flags/system/FlagsLight';\nimport { FlagName } from '@/components/Assets/Flags/system/types';\nimport { Logo } from '@/components/Assets/Logos/system/Logo';\nimport LogosLight from '@/components/Assets/Logos/system/LogosLight';\nimport { LogoName } from '@/components/Assets/Logos/system/types';\nimport { Payment } from '@/components/Assets/Payments/system/Payment';\nimport { PaymentName } from '@/components/Assets/Payments/system/types';\nimport PaymentsLight from '@/components/Assets/Payments/system/PaymentsLight';\nimport styles from './Icon.module.css';\n\nconst svgWrapperVariants = cva(styles['svg-wrapper'], {\n variants: {\n size: {\n xs: styles['svg-wrapper_size_xs'],\n sm: styles['svg-wrapper_size_sm'],\n md: styles['svg-wrapper_size_md'],\n lg: styles['svg-wrapper_size_lg'],\n xl: styles['svg-wrapper_size_xl'],\n xxl: styles['svg-wrapper_size_xxl'],\n },\n state: {\n default: '',\n success: styles['svg-wrapper_state_success'],\n warning: styles['svg-wrapper_state_warning'],\n danger: styles['svg-wrapper_state_danger'],\n info: styles['svg-wrapper_state_info'],\n },\n },\n defaultVariants: {\n size: 'md',\n state: 'default',\n },\n});\n\nconst SVGIcon = ({\n name,\n color,\n width,\n height,\n state,\n className,\n size,\n ...props\n}: IconProps) => {\n const Component = ICONS_MAP[name];\n\n const wrapperStyle = useMemo(\n () =>\n ({\n ...(color !== undefined ? { '--svg-icon-color': color } : {}),\n ...(width !== undefined ? { '--svg-width': String(width) } : {}),\n ...(height !== undefined ? { '--svg-height': String(height) } : {}),\n }) as CSSProperties,\n [color, width, height]\n );\n\n if (!Component) {\n return null;\n }\n\n return (\n <div\n className={cn(svgWrapperVariants({ size, state }), className)}\n style={wrapperStyle}\n >\n <Component {...props} />\n </div>\n );\n};\n\nconst SvgImage = ({ name: rawName, size, theme, ...props }: ImageType) => {\n // Resolve aliases and deprecated names once, before dispatching to the\n // per-asset components - they each resolve too, but only ever see the raw\n // name via the kebab-case key checks below.\n const name = resolveAssetName(rawName) as ImageName;\n\n if (Object.keys(FlagsLight).includes(name)) {\n return (\n <Flag\n name={name as FlagName}\n size={size}\n {...props}\n />\n );\n }\n if (Object.keys(LogosLight).includes(name)) {\n return (\n <Logo\n name={name as LogoName}\n theme={theme}\n size={size}\n {...props}\n />\n );\n }\n if (Object.keys(PaymentsLight).includes(name)) {\n return (\n <Payment\n name={name as PaymentName}\n size={size}\n {...props}\n />\n );\n }\n return (\n <SVGIcon\n name={name as IconName}\n size={size}\n role=\"img\"\n aria-label={name}\n {...props}\n />\n );\n};\n\nSvgImage.displayName = 'Icon';\n\nexport { SvgImage as Icon };\n"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/Icon/Icon.tsx"],"sourcesContent":["import { CSSProperties, useMemo } from 'react';\nimport { cn, cva } from '@/lib/cva';\nimport { IconName, IconProps, ImageName, ImageType } from './Icon.types';\nimport { ICONS_MAP } from '@/components/Icon/IconCommon';\nimport { resolveAssetName } from '@/components/Assets/config';\nimport { Flag } from '@/components/Assets/Flags/system/Flag';\nimport FlagsLight from '@/components/Assets/Flags/system/FlagsLight';\nimport { FlagName } from '@/components/Assets/Flags/system/types';\nimport { Logo } from '@/components/Assets/Logos/system/Logo';\nimport LogosLight from '@/components/Assets/Logos/system/LogosLight';\nimport { LogoName } from '@/components/Assets/Logos/system/types';\nimport { Payment } from '@/components/Assets/Payments/system/Payment';\nimport { PaymentName } from '@/components/Assets/Payments/system/types';\nimport PaymentsLight from '@/components/Assets/Payments/system/PaymentsLight';\nimport styles from './Icon.module.css';\n\nconst svgWrapperVariants = cva(styles['svg-wrapper'], {\n variants: {\n size: {\n xs: styles['svg-wrapper_size_xs'],\n sm: styles['svg-wrapper_size_sm'],\n md: styles['svg-wrapper_size_md'],\n lg: styles['svg-wrapper_size_lg'],\n xl: styles['svg-wrapper_size_xl'],\n xxl: styles['svg-wrapper_size_xxl'],\n },\n state: {\n default: '',\n success: styles['svg-wrapper_state_success'],\n warning: styles['svg-wrapper_state_warning'],\n danger: styles['svg-wrapper_state_danger'],\n info: styles['svg-wrapper_state_info'],\n },\n },\n defaultVariants: {\n size: 'md',\n state: 'default',\n },\n});\n\nconst SVGIcon = ({\n name,\n color,\n width,\n height,\n state,\n className,\n size,\n ...props\n}: IconProps) => {\n const Component = ICONS_MAP[name];\n\n const wrapperStyle = useMemo(\n () =>\n ({\n ...(color !== undefined ? { '--svg-icon-color': color } : {}),\n ...(width !== undefined ? { '--svg-width': String(width) } : {}),\n ...(height !== undefined ? { '--svg-height': String(height) } : {}),\n }) as CSSProperties,\n [color, width, height]\n );\n\n if (!Component) {\n return null;\n }\n\n return (\n <div\n className={cn(svgWrapperVariants({ size, state }), className)}\n style={wrapperStyle}\n >\n <Component {...props} />\n </div>\n );\n};\n\nconst SvgImage = ({ name: rawName, size, theme, ...props }: ImageType) => {\n // Resolve aliases and deprecated names once, before dispatching to the\n // per-asset components - they each resolve too, but only ever see the raw\n // name via the kebab-case key checks below.\n const name = resolveAssetName(rawName) as ImageName;\n\n if (Object.keys(FlagsLight).includes(name)) {\n return (\n <Flag\n name={name as FlagName}\n size={size}\n {...props}\n />\n );\n }\n if (Object.keys(LogosLight).includes(name)) {\n return (\n <Logo\n name={name as LogoName}\n theme={theme}\n size={size}\n {...props}\n />\n );\n }\n if (Object.keys(PaymentsLight).includes(name)) {\n return (\n <Payment\n name={name as PaymentName}\n size={size}\n {...props}\n />\n );\n }\n return (\n <SVGIcon\n name={name as IconName}\n size={size}\n role=\"img\"\n aria-label={name}\n {...props}\n />\n );\n};\n\nSvgImage.displayName = 'Icon';\n\nexport { SvgImage as Icon };\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IconButton.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"IconButton.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;"}
|