@oneonefour/rkui 0.0.0-stage → 0.0.3
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 +21 -0
- package/README.md +67 -2
- package/THIRD_PARTY_NOTICES.md +60 -0
- package/astro/index.d.ts +14 -0
- package/astro/index.js +153 -0
- package/dist/colors.d.ts +74 -0
- package/dist/colors.js +263 -0
- package/dist/fonts/jetbrains-mono/OFL.txt +93 -0
- package/dist/fonts/jetbrains-mono/jetbrains-mono-greek.woff2 +0 -0
- package/dist/fonts/jetbrains-mono/jetbrains-mono-italic-greek.woff2 +0 -0
- package/dist/fonts/jetbrains-mono/jetbrains-mono-italic-latin.woff2 +0 -0
- package/dist/fonts/jetbrains-mono/jetbrains-mono-italic-symbols.woff2 +0 -0
- package/dist/fonts/jetbrains-mono/jetbrains-mono-latin.woff2 +0 -0
- package/dist/fonts/jetbrains-mono/jetbrains-mono-symbols.woff2 +0 -0
- package/dist/fonts/roboto-slab/LICENSE.txt +202 -0
- package/dist/fonts/roboto-slab/roboto-slab-greek.woff2 +0 -0
- package/dist/fonts/roboto-slab/roboto-slab-latin.woff2 +0 -0
- package/dist/fonts/roboto-slab/roboto-slab-symbols.woff2 +0 -0
- package/dist/fonts/xmind/OFL.txt +93 -0
- package/dist/fonts/xmind/xmind-greek.woff2 +0 -0
- package/dist/fonts/xmind/xmind-italic-greek.woff2 +0 -0
- package/dist/fonts/xmind/xmind-italic-latin.woff2 +0 -0
- package/dist/fonts/xmind/xmind-italic-symbols.woff2 +0 -0
- package/dist/fonts/xmind/xmind-latin.woff2 +0 -0
- package/dist/fonts/xmind/xmind-symbols.woff2 +0 -0
- package/dist/icons/LICENSE-phosphor.txt +21 -0
- package/dist/icons/LICENSE-tabler.txt +21 -0
- package/dist/icons/acorn.svg +1 -0
- package/dist/icons/acorn.vue +1 -0
- package/dist/icons/air-traffic-control.svg +1 -0
- package/dist/icons/air-traffic-control.vue +1 -0
- package/dist/icons/airplane-in-flight.svg +1 -0
- package/dist/icons/airplane-in-flight.vue +1 -0
- package/dist/icons/airplane-landing.svg +1 -0
- package/dist/icons/airplane-landing.vue +1 -0
- package/dist/icons/airplane-takeoff.svg +1 -0
- package/dist/icons/airplane-takeoff.vue +1 -0
- package/dist/icons/airplane-taxiing.svg +1 -0
- package/dist/icons/airplane-taxiing.vue +1 -0
- package/dist/icons/airplane-tilt.svg +1 -0
- package/dist/icons/airplane-tilt.vue +1 -0
- package/dist/icons/airplane.svg +1 -0
- package/dist/icons/airplane.vue +1 -0
- package/dist/icons/ambulance.svg +1 -0
- package/dist/icons/ambulance.vue +1 -0
- package/dist/icons/anchor-simple.svg +1 -0
- package/dist/icons/anchor-simple.vue +1 -0
- package/dist/icons/anchor.svg +1 -0
- package/dist/icons/anchor.vue +1 -0
- package/dist/icons/angle.svg +1 -0
- package/dist/icons/angle.vue +1 -0
- package/dist/icons/aperture.svg +1 -0
- package/dist/icons/aperture.vue +1 -0
- package/dist/icons/app-window.svg +1 -0
- package/dist/icons/app-window.vue +1 -0
- package/dist/icons/approximate-equals.svg +1 -0
- package/dist/icons/approximate-equals.vue +1 -0
- package/dist/icons/arrow-counter-clockwise.svg +1 -0
- package/dist/icons/arrow-counter-clockwise.vue +1 -0
- package/dist/icons/arrow-left.svg +1 -0
- package/dist/icons/arrow-left.vue +1 -0
- package/dist/icons/arrow-right.svg +1 -0
- package/dist/icons/arrow-right.vue +1 -0
- package/dist/icons/arrow-square-out.svg +1 -0
- package/dist/icons/arrow-square-out.vue +1 -0
- package/dist/icons/arrow-up.svg +1 -0
- package/dist/icons/arrow-up.vue +1 -0
- package/dist/icons/arrows-out.svg +1 -0
- package/dist/icons/arrows-out.vue +1 -0
- package/dist/icons/atom.svg +1 -0
- package/dist/icons/atom.vue +1 -0
- package/dist/icons/bank.svg +1 -0
- package/dist/icons/bank.vue +1 -0
- package/dist/icons/barn.svg +1 -0
- package/dist/icons/barn.vue +1 -0
- package/dist/icons/barricade.svg +1 -0
- package/dist/icons/barricade.vue +1 -0
- package/dist/icons/battery-charging.svg +1 -0
- package/dist/icons/battery-charging.vue +1 -0
- package/dist/icons/bezier-curve.svg +1 -0
- package/dist/icons/bezier-curve.vue +1 -0
- package/dist/icons/bicycle.svg +1 -0
- package/dist/icons/bicycle.vue +1 -0
- package/dist/icons/binary.svg +1 -0
- package/dist/icons/binary.vue +1 -0
- package/dist/icons/binoculars.svg +1 -0
- package/dist/icons/binoculars.vue +1 -0
- package/dist/icons/biohazard.svg +1 -0
- package/dist/icons/biohazard.vue +1 -0
- package/dist/icons/bird.svg +1 -0
- package/dist/icons/bird.vue +1 -0
- package/dist/icons/blueprint.svg +1 -0
- package/dist/icons/blueprint.vue +1 -0
- package/dist/icons/boat.svg +1 -0
- package/dist/icons/boat.vue +1 -0
- package/dist/icons/book-open-text.svg +1 -0
- package/dist/icons/book-open-text.vue +1 -0
- package/dist/icons/bounding-box.svg +1 -0
- package/dist/icons/bounding-box.vue +1 -0
- package/dist/icons/brackets-angle.svg +1 -0
- package/dist/icons/brackets-angle.vue +1 -0
- package/dist/icons/brackets-curly.svg +1 -0
- package/dist/icons/brackets-curly.vue +1 -0
- package/dist/icons/brackets-round.svg +1 -0
- package/dist/icons/brackets-round.vue +1 -0
- package/dist/icons/brackets-square.svg +1 -0
- package/dist/icons/brackets-square.vue +1 -0
- package/dist/icons/brain.svg +1 -0
- package/dist/icons/brain.vue +1 -0
- package/dist/icons/bridge.svg +1 -0
- package/dist/icons/bridge.vue +1 -0
- package/dist/icons/briefcase.svg +1 -0
- package/dist/icons/briefcase.vue +1 -0
- package/dist/icons/browser.svg +1 -0
- package/dist/icons/browser.vue +1 -0
- package/dist/icons/bug-beetle.svg +1 -0
- package/dist/icons/bug-beetle.vue +1 -0
- package/dist/icons/bug.svg +1 -0
- package/dist/icons/bug.vue +1 -0
- package/dist/icons/building-apartment.svg +1 -0
- package/dist/icons/building-apartment.vue +1 -0
- package/dist/icons/building-office.svg +1 -0
- package/dist/icons/building-office.vue +1 -0
- package/dist/icons/building.svg +1 -0
- package/dist/icons/building.vue +1 -0
- package/dist/icons/buildings.svg +1 -0
- package/dist/icons/buildings.vue +1 -0
- package/dist/icons/bulldozer.svg +1 -0
- package/dist/icons/bulldozer.vue +1 -0
- package/dist/icons/bus.svg +1 -0
- package/dist/icons/bus.vue +1 -0
- package/dist/icons/butterfly.svg +1 -0
- package/dist/icons/butterfly.vue +1 -0
- package/dist/icons/cable-car.svg +1 -0
- package/dist/icons/cable-car.vue +1 -0
- package/dist/icons/cactus.svg +1 -0
- package/dist/icons/cactus.vue +1 -0
- package/dist/icons/calculator.svg +1 -0
- package/dist/icons/calculator.vue +1 -0
- package/dist/icons/calendar-blank.svg +1 -0
- package/dist/icons/calendar-blank.vue +1 -0
- package/dist/icons/camera.svg +1 -0
- package/dist/icons/camera.vue +1 -0
- package/dist/icons/campfire.svg +1 -0
- package/dist/icons/campfire.vue +1 -0
- package/dist/icons/car-battery.svg +1 -0
- package/dist/icons/car-battery.vue +1 -0
- package/dist/icons/car-profile.svg +1 -0
- package/dist/icons/car-profile.vue +1 -0
- package/dist/icons/car-simple.svg +1 -0
- package/dist/icons/car-simple.vue +1 -0
- package/dist/icons/car.svg +1 -0
- package/dist/icons/car.vue +1 -0
- package/dist/icons/caret-down.svg +1 -0
- package/dist/icons/caret-down.vue +1 -0
- package/dist/icons/caret-left.svg +1 -0
- package/dist/icons/caret-left.vue +1 -0
- package/dist/icons/caret-right.svg +1 -0
- package/dist/icons/caret-right.vue +1 -0
- package/dist/icons/caret-up.svg +1 -0
- package/dist/icons/caret-up.vue +1 -0
- package/dist/icons/cell-tower.svg +1 -0
- package/dist/icons/cell-tower.vue +1 -0
- package/dist/icons/chalkboard-teacher.svg +1 -0
- package/dist/icons/chalkboard-teacher.vue +1 -0
- package/dist/icons/charging-station.svg +1 -0
- package/dist/icons/charging-station.vue +1 -0
- package/dist/icons/chart-bar-horizontal.svg +1 -0
- package/dist/icons/chart-bar-horizontal.vue +1 -0
- package/dist/icons/chart-bar.svg +1 -0
- package/dist/icons/chart-bar.vue +1 -0
- package/dist/icons/chart-donut.svg +1 -0
- package/dist/icons/chart-donut.vue +1 -0
- package/dist/icons/chart-line-down.svg +1 -0
- package/dist/icons/chart-line-down.vue +1 -0
- package/dist/icons/chart-line-up.svg +1 -0
- package/dist/icons/chart-line-up.vue +1 -0
- package/dist/icons/chart-line.svg +1 -0
- package/dist/icons/chart-line.vue +1 -0
- package/dist/icons/chart-pie-slice.svg +1 -0
- package/dist/icons/chart-pie-slice.vue +1 -0
- package/dist/icons/chart-pie.svg +1 -0
- package/dist/icons/chart-pie.vue +1 -0
- package/dist/icons/chart-polar.svg +1 -0
- package/dist/icons/chart-polar.vue +1 -0
- package/dist/icons/chart-scatter.svg +1 -0
- package/dist/icons/chart-scatter.vue +1 -0
- package/dist/icons/check-circle.svg +1 -0
- package/dist/icons/check-circle.vue +1 -0
- package/dist/icons/check.svg +1 -0
- package/dist/icons/check.vue +1 -0
- package/dist/icons/circle-half.svg +1 -0
- package/dist/icons/circle-half.vue +1 -0
- package/dist/icons/circle-notch.svg +1 -0
- package/dist/icons/circle-notch.vue +1 -0
- package/dist/icons/circuitry.svg +1 -0
- package/dist/icons/circuitry.vue +1 -0
- package/dist/icons/city.svg +1 -0
- package/dist/icons/city.vue +1 -0
- package/dist/icons/clock.svg +1 -0
- package/dist/icons/clock.vue +1 -0
- package/dist/icons/closed-captioning.svg +1 -0
- package/dist/icons/closed-captioning.vue +1 -0
- package/dist/icons/cloud-arrow-down.svg +1 -0
- package/dist/icons/cloud-arrow-down.vue +1 -0
- package/dist/icons/cloud-arrow-up.svg +1 -0
- package/dist/icons/cloud-arrow-up.vue +1 -0
- package/dist/icons/cloud-check.svg +1 -0
- package/dist/icons/cloud-check.vue +1 -0
- package/dist/icons/cloud-fog.svg +1 -0
- package/dist/icons/cloud-fog.vue +1 -0
- package/dist/icons/cloud-lightning.svg +1 -0
- package/dist/icons/cloud-lightning.vue +1 -0
- package/dist/icons/cloud-moon.svg +1 -0
- package/dist/icons/cloud-moon.vue +1 -0
- package/dist/icons/cloud-rain.svg +1 -0
- package/dist/icons/cloud-rain.vue +1 -0
- package/dist/icons/cloud-slash.svg +1 -0
- package/dist/icons/cloud-slash.vue +1 -0
- package/dist/icons/cloud-snow.svg +1 -0
- package/dist/icons/cloud-snow.vue +1 -0
- package/dist/icons/cloud-sun.svg +1 -0
- package/dist/icons/cloud-sun.vue +1 -0
- package/dist/icons/cloud-warning.svg +1 -0
- package/dist/icons/cloud-warning.vue +1 -0
- package/dist/icons/cloud-x.svg +1 -0
- package/dist/icons/cloud-x.vue +1 -0
- package/dist/icons/cloud.svg +1 -0
- package/dist/icons/cloud.vue +1 -0
- package/dist/icons/clover.svg +1 -0
- package/dist/icons/clover.vue +1 -0
- package/dist/icons/code-block.svg +1 -0
- package/dist/icons/code-block.vue +1 -0
- package/dist/icons/code-simple.svg +1 -0
- package/dist/icons/code-simple.vue +1 -0
- package/dist/icons/code.svg +1 -0
- package/dist/icons/code.vue +1 -0
- package/dist/icons/columns.svg +1 -0
- package/dist/icons/columns.vue +1 -0
- package/dist/icons/command.svg +1 -0
- package/dist/icons/command.vue +1 -0
- package/dist/icons/compass-rose.svg +1 -0
- package/dist/icons/compass-rose.vue +1 -0
- package/dist/icons/compass-tool.svg +1 -0
- package/dist/icons/compass-tool.vue +1 -0
- package/dist/icons/compass.svg +1 -0
- package/dist/icons/compass.vue +1 -0
- package/dist/icons/computer-tower.svg +1 -0
- package/dist/icons/computer-tower.vue +1 -0
- package/dist/icons/copy.svg +1 -0
- package/dist/icons/copy.vue +1 -0
- package/dist/icons/cow.svg +1 -0
- package/dist/icons/cow.vue +1 -0
- package/dist/icons/cpu.svg +1 -0
- package/dist/icons/cpu.vue +1 -0
- package/dist/icons/crane-tower.svg +1 -0
- package/dist/icons/crane-tower.vue +1 -0
- package/dist/icons/crane.svg +1 -0
- package/dist/icons/crane.vue +1 -0
- package/dist/icons/cube-focus.svg +1 -0
- package/dist/icons/cube-focus.vue +1 -0
- package/dist/icons/cube-transparent.svg +1 -0
- package/dist/icons/cube-transparent.vue +1 -0
- package/dist/icons/cube.svg +1 -0
- package/dist/icons/cube.vue +1 -0
- package/dist/icons/cylinder.svg +1 -0
- package/dist/icons/cylinder.vue +1 -0
- package/dist/icons/database.svg +1 -0
- package/dist/icons/database.vue +1 -0
- package/dist/icons/desktop-tower.svg +1 -0
- package/dist/icons/desktop-tower.vue +1 -0
- package/dist/icons/desktop.svg +1 -0
- package/dist/icons/desktop.vue +1 -0
- package/dist/icons/dice-five.svg +1 -0
- package/dist/icons/dice-five.vue +1 -0
- package/dist/icons/divide.svg +1 -0
- package/dist/icons/divide.vue +1 -0
- package/dist/icons/dna.svg +1 -0
- package/dist/icons/dna.vue +1 -0
- package/dist/icons/download-simple.svg +1 -0
- package/dist/icons/download-simple.vue +1 -0
- package/dist/icons/drone.svg +1 -0
- package/dist/icons/drone.vue +1 -0
- package/dist/icons/drop-half-bottom.svg +1 -0
- package/dist/icons/drop-half-bottom.vue +1 -0
- package/dist/icons/drop-half.svg +1 -0
- package/dist/icons/drop-half.vue +1 -0
- package/dist/icons/drop-simple.svg +1 -0
- package/dist/icons/drop-simple.vue +1 -0
- package/dist/icons/drop-slash.svg +1 -0
- package/dist/icons/drop-slash.vue +1 -0
- package/dist/icons/drop.svg +1 -0
- package/dist/icons/drop.vue +1 -0
- package/dist/icons/engine.svg +1 -0
- package/dist/icons/engine.vue +1 -0
- package/dist/icons/envelope-simple.svg +1 -0
- package/dist/icons/envelope-simple.vue +1 -0
- package/dist/icons/equals.svg +1 -0
- package/dist/icons/equals.vue +1 -0
- package/dist/icons/eye-slash.svg +1 -0
- package/dist/icons/eye-slash.vue +1 -0
- package/dist/icons/eye.svg +1 -0
- package/dist/icons/eye.vue +1 -0
- package/dist/icons/face-mask.svg +1 -0
- package/dist/icons/face-mask.vue +1 -0
- package/dist/icons/factory.svg +1 -0
- package/dist/icons/factory.vue +1 -0
- package/dist/icons/farm.svg +1 -0
- package/dist/icons/farm.vue +1 -0
- package/dist/icons/file-archive.svg +1 -0
- package/dist/icons/file-archive.vue +1 -0
- package/dist/icons/file-arrow-down.svg +1 -0
- package/dist/icons/file-arrow-down.vue +1 -0
- package/dist/icons/file-c-sharp.svg +1 -0
- package/dist/icons/file-c-sharp.vue +1 -0
- package/dist/icons/file-c.svg +1 -0
- package/dist/icons/file-c.vue +1 -0
- package/dist/icons/file-cloud.svg +1 -0
- package/dist/icons/file-cloud.vue +1 -0
- package/dist/icons/file-code.svg +1 -0
- package/dist/icons/file-code.vue +1 -0
- package/dist/icons/file-cpp.svg +1 -0
- package/dist/icons/file-cpp.vue +1 -0
- package/dist/icons/file-css.svg +1 -0
- package/dist/icons/file-css.vue +1 -0
- package/dist/icons/file-csv.svg +1 -0
- package/dist/icons/file-csv.vue +1 -0
- package/dist/icons/file-html.svg +1 -0
- package/dist/icons/file-html.vue +1 -0
- package/dist/icons/file-image.svg +1 -0
- package/dist/icons/file-image.vue +1 -0
- package/dist/icons/file-ini.svg +1 -0
- package/dist/icons/file-ini.vue +1 -0
- package/dist/icons/file-js.svg +1 -0
- package/dist/icons/file-js.vue +1 -0
- package/dist/icons/file-jsx.svg +1 -0
- package/dist/icons/file-jsx.vue +1 -0
- package/dist/icons/file-md.svg +1 -0
- package/dist/icons/file-md.vue +1 -0
- package/dist/icons/file-pdf.svg +1 -0
- package/dist/icons/file-pdf.vue +1 -0
- package/dist/icons/file-py.svg +1 -0
- package/dist/icons/file-py.vue +1 -0
- package/dist/icons/file-rs.svg +1 -0
- package/dist/icons/file-rs.vue +1 -0
- package/dist/icons/file-sql.svg +1 -0
- package/dist/icons/file-sql.vue +1 -0
- package/dist/icons/file-svg.svg +1 -0
- package/dist/icons/file-svg.vue +1 -0
- package/dist/icons/file-text.svg +1 -0
- package/dist/icons/file-text.vue +1 -0
- package/dist/icons/file-ts.svg +1 -0
- package/dist/icons/file-ts.vue +1 -0
- package/dist/icons/file-tsx.svg +1 -0
- package/dist/icons/file-tsx.vue +1 -0
- package/dist/icons/file-txt.svg +1 -0
- package/dist/icons/file-txt.vue +1 -0
- package/dist/icons/file-vue.svg +1 -0
- package/dist/icons/file-vue.vue +1 -0
- package/dist/icons/file-xls.svg +1 -0
- package/dist/icons/file-xls.vue +1 -0
- package/dist/icons/file-zip.svg +1 -0
- package/dist/icons/file-zip.vue +1 -0
- package/dist/icons/fire-simple.svg +1 -0
- package/dist/icons/fire-simple.vue +1 -0
- package/dist/icons/fire-truck.svg +1 -0
- package/dist/icons/fire-truck.vue +1 -0
- package/dist/icons/fire.svg +1 -0
- package/dist/icons/fire.vue +1 -0
- package/dist/icons/fish-simple.svg +1 -0
- package/dist/icons/fish-simple.vue +1 -0
- package/dist/icons/fish.svg +1 -0
- package/dist/icons/fish.vue +1 -0
- package/dist/icons/flame.svg +1 -0
- package/dist/icons/flame.vue +1 -0
- package/dist/icons/flask.svg +1 -0
- package/dist/icons/flask.vue +1 -0
- package/dist/icons/flow-arrow.svg +1 -0
- package/dist/icons/flow-arrow.vue +1 -0
- package/dist/icons/flower-lotus.svg +1 -0
- package/dist/icons/flower-lotus.vue +1 -0
- package/dist/icons/flower-tulip.svg +1 -0
- package/dist/icons/flower-tulip.vue +1 -0
- package/dist/icons/flower.svg +1 -0
- package/dist/icons/flower.vue +1 -0
- package/dist/icons/footprints.svg +1 -0
- package/dist/icons/footprints.vue +1 -0
- package/dist/icons/function.svg +1 -0
- package/dist/icons/function.vue +1 -0
- package/dist/icons/funnel.svg +1 -0
- package/dist/icons/funnel.vue +1 -0
- package/dist/icons/garage.svg +1 -0
- package/dist/icons/garage.vue +1 -0
- package/dist/icons/gas-can.svg +1 -0
- package/dist/icons/gas-can.vue +1 -0
- package/dist/icons/gas-pump.svg +1 -0
- package/dist/icons/gas-pump.vue +1 -0
- package/dist/icons/gauge.svg +1 -0
- package/dist/icons/gauge.vue +1 -0
- package/dist/icons/gear-fine.svg +1 -0
- package/dist/icons/gear-fine.vue +1 -0
- package/dist/icons/gear-six.svg +1 -0
- package/dist/icons/gear-six.vue +1 -0
- package/dist/icons/gear.svg +1 -0
- package/dist/icons/gear.vue +1 -0
- package/dist/icons/git-branch.svg +1 -0
- package/dist/icons/git-branch.vue +1 -0
- package/dist/icons/git-commit.svg +1 -0
- package/dist/icons/git-commit.vue +1 -0
- package/dist/icons/git-diff.svg +1 -0
- package/dist/icons/git-diff.vue +1 -0
- package/dist/icons/git-fork.svg +1 -0
- package/dist/icons/git-fork.vue +1 -0
- package/dist/icons/git-merge.svg +1 -0
- package/dist/icons/git-merge.vue +1 -0
- package/dist/icons/git-pull-request.svg +1 -0
- package/dist/icons/git-pull-request.vue +1 -0
- package/dist/icons/globe-hemisphere-east.svg +1 -0
- package/dist/icons/globe-hemisphere-east.vue +1 -0
- package/dist/icons/globe-hemisphere-west.svg +1 -0
- package/dist/icons/globe-hemisphere-west.vue +1 -0
- package/dist/icons/globe-simple.svg +1 -0
- package/dist/icons/globe-simple.vue +1 -0
- package/dist/icons/globe-stand.svg +1 -0
- package/dist/icons/globe-stand.vue +1 -0
- package/dist/icons/globe.svg +1 -0
- package/dist/icons/globe.vue +1 -0
- package/dist/icons/gps-fix.svg +1 -0
- package/dist/icons/gps-fix.vue +1 -0
- package/dist/icons/gps.svg +1 -0
- package/dist/icons/gps.vue +1 -0
- package/dist/icons/gradient.svg +1 -0
- package/dist/icons/gradient.vue +1 -0
- package/dist/icons/graduation-cap.svg +1 -0
- package/dist/icons/graduation-cap.vue +1 -0
- package/dist/icons/grains-slash.svg +1 -0
- package/dist/icons/grains-slash.vue +1 -0
- package/dist/icons/grains.svg +1 -0
- package/dist/icons/grains.vue +1 -0
- package/dist/icons/graph.svg +1 -0
- package/dist/icons/graph.vue +1 -0
- package/dist/icons/graphics-card.svg +1 -0
- package/dist/icons/graphics-card.vue +1 -0
- package/dist/icons/greater-than-or-equal.svg +1 -0
- package/dist/icons/greater-than-or-equal.vue +1 -0
- package/dist/icons/greater-than.svg +1 -0
- package/dist/icons/greater-than.vue +1 -0
- package/dist/icons/grid-four.svg +1 -0
- package/dist/icons/grid-four.vue +1 -0
- package/dist/icons/grid-nine.svg +1 -0
- package/dist/icons/grid-nine.vue +1 -0
- package/dist/icons/hammer.svg +1 -0
- package/dist/icons/hammer.vue +1 -0
- package/dist/icons/hand-waving.svg +1 -0
- package/dist/icons/hand-waving.vue +1 -0
- package/dist/icons/hard-drive.svg +1 -0
- package/dist/icons/hard-drive.vue +1 -0
- package/dist/icons/hard-drives.svg +1 -0
- package/dist/icons/hard-drives.vue +1 -0
- package/dist/icons/hard-hat.svg +1 -0
- package/dist/icons/hard-hat.vue +1 -0
- package/dist/icons/head-circuit.svg +1 -0
- package/dist/icons/head-circuit.vue +1 -0
- package/dist/icons/hospital.svg +1 -0
- package/dist/icons/hospital.vue +1 -0
- package/dist/icons/house-line.svg +1 -0
- package/dist/icons/house-line.vue +1 -0
- package/dist/icons/house-simple.svg +1 -0
- package/dist/icons/house-simple.vue +1 -0
- package/dist/icons/house.svg +1 -0
- package/dist/icons/house.vue +1 -0
- package/dist/icons/hurricane.svg +1 -0
- package/dist/icons/hurricane.vue +1 -0
- package/dist/icons/identification-card.svg +1 -0
- package/dist/icons/identification-card.vue +1 -0
- package/dist/icons/image.svg +1 -0
- package/dist/icons/image.vue +1 -0
- package/dist/icons/images.svg +1 -0
- package/dist/icons/images.vue +1 -0
- package/dist/icons/infinity.svg +1 -0
- package/dist/icons/infinity.vue +1 -0
- package/dist/icons/info.svg +1 -0
- package/dist/icons/info.vue +1 -0
- package/dist/icons/intersect-three.svg +1 -0
- package/dist/icons/intersect-three.vue +1 -0
- package/dist/icons/intersection.svg +1 -0
- package/dist/icons/intersection.vue +1 -0
- package/dist/icons/island.svg +1 -0
- package/dist/icons/island.vue +1 -0
- package/dist/icons/jeep.svg +1 -0
- package/dist/icons/jeep.vue +1 -0
- package/dist/icons/kanban.svg +1 -0
- package/dist/icons/kanban.vue +1 -0
- package/dist/icons/keyboard.svg +1 -0
- package/dist/icons/keyboard.vue +1 -0
- package/dist/icons/laptop.svg +1 -0
- package/dist/icons/laptop.vue +1 -0
- package/dist/icons/leaf.svg +1 -0
- package/dist/icons/leaf.vue +1 -0
- package/dist/icons/less-than-or-equal.svg +1 -0
- package/dist/icons/less-than-or-equal.vue +1 -0
- package/dist/icons/less-than.svg +1 -0
- package/dist/icons/less-than.vue +1 -0
- package/dist/icons/lightbulb.svg +1 -0
- package/dist/icons/lightbulb.vue +1 -0
- package/dist/icons/lighthouse.svg +1 -0
- package/dist/icons/lighthouse.vue +1 -0
- package/dist/icons/lightning-slash.svg +1 -0
- package/dist/icons/lightning-slash.vue +1 -0
- package/dist/icons/lightning.svg +1 -0
- package/dist/icons/lightning.vue +1 -0
- package/dist/icons/line-segment.svg +1 -0
- package/dist/icons/line-segment.vue +1 -0
- package/dist/icons/line-segments.svg +1 -0
- package/dist/icons/line-segments.vue +1 -0
- package/dist/icons/link.svg +1 -0
- package/dist/icons/link.vue +1 -0
- package/dist/icons/list-bullets.svg +1 -0
- package/dist/icons/list-bullets.vue +1 -0
- package/dist/icons/list.svg +1 -0
- package/dist/icons/list.vue +1 -0
- package/dist/icons/magic-wand.svg +1 -0
- package/dist/icons/magic-wand.vue +1 -0
- package/dist/icons/magnet-straight.svg +1 -0
- package/dist/icons/magnet-straight.vue +1 -0
- package/dist/icons/magnet.svg +1 -0
- package/dist/icons/magnet.vue +1 -0
- package/dist/icons/magnifying-glass-minus.svg +1 -0
- package/dist/icons/magnifying-glass-minus.vue +1 -0
- package/dist/icons/magnifying-glass-plus.svg +1 -0
- package/dist/icons/magnifying-glass-plus.vue +1 -0
- package/dist/icons/magnifying-glass.svg +1 -0
- package/dist/icons/magnifying-glass.vue +1 -0
- package/dist/icons/map-pin-area.svg +1 -0
- package/dist/icons/map-pin-area.vue +1 -0
- package/dist/icons/map-pin-line.svg +1 -0
- package/dist/icons/map-pin-line.vue +1 -0
- package/dist/icons/map-pin-simple-area.svg +1 -0
- package/dist/icons/map-pin-simple-area.vue +1 -0
- package/dist/icons/map-pin-simple-line.svg +1 -0
- package/dist/icons/map-pin-simple-line.vue +1 -0
- package/dist/icons/map-pin-simple.svg +1 -0
- package/dist/icons/map-pin-simple.vue +1 -0
- package/dist/icons/map-pin.svg +1 -0
- package/dist/icons/map-pin.vue +1 -0
- package/dist/icons/map-trifold.svg +1 -0
- package/dist/icons/map-trifold.vue +1 -0
- package/dist/icons/math-operations.svg +1 -0
- package/dist/icons/math-operations.vue +1 -0
- package/dist/icons/member-of.svg +1 -0
- package/dist/icons/member-of.vue +1 -0
- package/dist/icons/memory.svg +1 -0
- package/dist/icons/memory.vue +1 -0
- package/dist/icons/meteor.svg +1 -0
- package/dist/icons/meteor.vue +1 -0
- package/dist/icons/microscope.svg +1 -0
- package/dist/icons/microscope.vue +1 -0
- package/dist/icons/minus.svg +1 -0
- package/dist/icons/minus.vue +1 -0
- package/dist/icons/monitor.svg +1 -0
- package/dist/icons/monitor.vue +1 -0
- package/dist/icons/moon-stars.svg +1 -0
- package/dist/icons/moon-stars.vue +1 -0
- package/dist/icons/moon.svg +1 -0
- package/dist/icons/moon.vue +1 -0
- package/dist/icons/moped-front.svg +1 -0
- package/dist/icons/moped-front.vue +1 -0
- package/dist/icons/moped.svg +1 -0
- package/dist/icons/moped.vue +1 -0
- package/dist/icons/motorcycle.svg +1 -0
- package/dist/icons/motorcycle.vue +1 -0
- package/dist/icons/mountains.svg +1 -0
- package/dist/icons/mountains.vue +1 -0
- package/dist/icons/navigation-arrow.svg +1 -0
- package/dist/icons/navigation-arrow.vue +1 -0
- package/dist/icons/network.svg +1 -0
- package/dist/icons/network.vue +1 -0
- package/dist/icons/newspaper-clipping.svg +1 -0
- package/dist/icons/newspaper-clipping.vue +1 -0
- package/dist/icons/not-equals.svg +1 -0
- package/dist/icons/not-equals.vue +1 -0
- package/dist/icons/not-member-of.svg +1 -0
- package/dist/icons/not-member-of.vue +1 -0
- package/dist/icons/not-subset-of.svg +1 -0
- package/dist/icons/not-subset-of.vue +1 -0
- package/dist/icons/not-superset-of.svg +1 -0
- package/dist/icons/not-superset-of.vue +1 -0
- package/dist/icons/notebook.svg +1 -0
- package/dist/icons/notebook.vue +1 -0
- package/dist/icons/nuclear-plant.svg +1 -0
- package/dist/icons/nuclear-plant.vue +1 -0
- package/dist/icons/package.svg +1 -0
- package/dist/icons/package.vue +1 -0
- package/dist/icons/paint-brush.svg +1 -0
- package/dist/icons/paint-brush.vue +1 -0
- package/dist/icons/palette.svg +1 -0
- package/dist/icons/palette.vue +1 -0
- package/dist/icons/park.svg +1 -0
- package/dist/icons/park.vue +1 -0
- package/dist/icons/path.svg +1 -0
- package/dist/icons/path.vue +1 -0
- package/dist/icons/pause.svg +1 -0
- package/dist/icons/pause.vue +1 -0
- package/dist/icons/pen-nib.svg +1 -0
- package/dist/icons/pen-nib.vue +1 -0
- package/dist/icons/percent.svg +1 -0
- package/dist/icons/percent.vue +1 -0
- package/dist/icons/person-simple-bike.svg +1 -0
- package/dist/icons/person-simple-bike.vue +1 -0
- package/dist/icons/person-simple-circle.svg +1 -0
- package/dist/icons/person-simple-circle.vue +1 -0
- package/dist/icons/person-simple-hike.svg +1 -0
- package/dist/icons/person-simple-hike.vue +1 -0
- package/dist/icons/person-simple-walk.svg +1 -0
- package/dist/icons/person-simple-walk.vue +1 -0
- package/dist/icons/pi.svg +1 -0
- package/dist/icons/pi.vue +1 -0
- package/dist/icons/picnic-table.svg +1 -0
- package/dist/icons/picnic-table.vue +1 -0
- package/dist/icons/planet.svg +1 -0
- package/dist/icons/planet.vue +1 -0
- package/dist/icons/plant.svg +1 -0
- package/dist/icons/plant.vue +1 -0
- package/dist/icons/play.svg +1 -0
- package/dist/icons/play.vue +1 -0
- package/dist/icons/plug-charging.svg +1 -0
- package/dist/icons/plug-charging.vue +1 -0
- package/dist/icons/plug.svg +1 -0
- package/dist/icons/plug.vue +1 -0
- package/dist/icons/plus-minus.svg +1 -0
- package/dist/icons/plus-minus.vue +1 -0
- package/dist/icons/plus.svg +1 -0
- package/dist/icons/plus.vue +1 -0
- package/dist/icons/police-car.svg +1 -0
- package/dist/icons/police-car.vue +1 -0
- package/dist/icons/potted-plant.svg +1 -0
- package/dist/icons/potted-plant.vue +1 -0
- package/dist/icons/presentation-chart.svg +1 -0
- package/dist/icons/presentation-chart.vue +1 -0
- package/dist/icons/printer.svg +1 -0
- package/dist/icons/printer.vue +1 -0
- package/dist/icons/pulse.svg +1 -0
- package/dist/icons/pulse.vue +1 -0
- package/dist/icons/puzzle-piece.svg +1 -0
- package/dist/icons/puzzle-piece.vue +1 -0
- package/dist/icons/question.svg +1 -0
- package/dist/icons/question.vue +1 -0
- package/dist/icons/quotes.svg +1 -0
- package/dist/icons/quotes.vue +1 -0
- package/dist/icons/radical.svg +1 -0
- package/dist/icons/radical.vue +1 -0
- package/dist/icons/radioactive.svg +1 -0
- package/dist/icons/radioactive.vue +1 -0
- package/dist/icons/rainbow-cloud.svg +1 -0
- package/dist/icons/rainbow-cloud.vue +1 -0
- package/dist/icons/rainbow.svg +1 -0
- package/dist/icons/rainbow.vue +1 -0
- package/dist/icons/recycle.svg +1 -0
- package/dist/icons/recycle.vue +1 -0
- package/dist/icons/road-horizon.svg +1 -0
- package/dist/icons/road-horizon.vue +1 -0
- package/dist/icons/robot.svg +1 -0
- package/dist/icons/robot.vue +1 -0
- package/dist/icons/rocket-launch.svg +1 -0
- package/dist/icons/rocket-launch.vue +1 -0
- package/dist/icons/rocket.svg +1 -0
- package/dist/icons/rocket.vue +1 -0
- package/dist/icons/rows.svg +1 -0
- package/dist/icons/rows.vue +1 -0
- package/dist/icons/rss.svg +1 -0
- package/dist/icons/rss.vue +1 -0
- package/dist/icons/ruler.svg +1 -0
- package/dist/icons/ruler.vue +1 -0
- package/dist/icons/sailboat.svg +1 -0
- package/dist/icons/sailboat.vue +1 -0
- package/dist/icons/satellite.svg +1 -0
- package/dist/icons/satellite.vue +1 -0
- package/dist/icons/scales.svg +1 -0
- package/dist/icons/scales.vue +1 -0
- package/dist/icons/scooter.svg +1 -0
- package/dist/icons/scooter.vue +1 -0
- package/dist/icons/screwdriver.svg +1 -0
- package/dist/icons/screwdriver.vue +1 -0
- package/dist/icons/seal-check.svg +1 -0
- package/dist/icons/seal-check.vue +1 -0
- package/dist/icons/share-network.svg +1 -0
- package/dist/icons/share-network.vue +1 -0
- package/dist/icons/shipping-container.svg +1 -0
- package/dist/icons/shipping-container.vue +1 -0
- package/dist/icons/shooting-star.svg +1 -0
- package/dist/icons/shooting-star.vue +1 -0
- package/dist/icons/shovel.svg +1 -0
- package/dist/icons/shovel.vue +1 -0
- package/dist/icons/shuffle.svg +1 -0
- package/dist/icons/shuffle.vue +1 -0
- package/dist/icons/sigma.svg +1 -0
- package/dist/icons/sigma.vue +1 -0
- package/dist/icons/signpost.svg +1 -0
- package/dist/icons/signpost.vue +1 -0
- package/dist/icons/sliders-horizontal.svg +1 -0
- package/dist/icons/sliders-horizontal.vue +1 -0
- package/dist/icons/snowflake.svg +1 -0
- package/dist/icons/snowflake.vue +1 -0
- package/dist/icons/solar-panel.svg +1 -0
- package/dist/icons/solar-panel.vue +1 -0
- package/dist/icons/solar-roof.svg +1 -0
- package/dist/icons/solar-roof.vue +1 -0
- package/dist/icons/sparkle.svg +1 -0
- package/dist/icons/sparkle.vue +1 -0
- package/dist/icons/speaker-high.svg +1 -0
- package/dist/icons/speaker-high.vue +1 -0
- package/dist/icons/speaker-slash.svg +1 -0
- package/dist/icons/speaker-slash.vue +1 -0
- package/dist/icons/speedometer.svg +1 -0
- package/dist/icons/speedometer.vue +1 -0
- package/dist/icons/sphere.svg +1 -0
- package/dist/icons/sphere.vue +1 -0
- package/dist/icons/sprite.svg +418 -0
- package/dist/icons/stack-simple.svg +1 -0
- package/dist/icons/stack-simple.vue +1 -0
- package/dist/icons/stack.svg +1 -0
- package/dist/icons/stack.vue +1 -0
- package/dist/icons/star-four.svg +1 -0
- package/dist/icons/star-four.vue +1 -0
- package/dist/icons/star.svg +1 -0
- package/dist/icons/star.vue +1 -0
- package/dist/icons/steering-wheel.svg +1 -0
- package/dist/icons/steering-wheel.vue +1 -0
- package/dist/icons/stop.svg +1 -0
- package/dist/icons/stop.vue +1 -0
- package/dist/icons/storefront.svg +1 -0
- package/dist/icons/storefront.vue +1 -0
- package/dist/icons/subset-of.svg +1 -0
- package/dist/icons/subset-of.vue +1 -0
- package/dist/icons/subset-proper-of.svg +1 -0
- package/dist/icons/subset-proper-of.vue +1 -0
- package/dist/icons/subway.svg +1 -0
- package/dist/icons/subway.vue +1 -0
- package/dist/icons/sun-dim.svg +1 -0
- package/dist/icons/sun-dim.vue +1 -0
- package/dist/icons/sun-horizon.svg +1 -0
- package/dist/icons/sun-horizon.vue +1 -0
- package/dist/icons/sun.svg +1 -0
- package/dist/icons/sun.vue +1 -0
- package/dist/icons/superset-of.svg +1 -0
- package/dist/icons/superset-of.vue +1 -0
- package/dist/icons/superset-proper-of.svg +1 -0
- package/dist/icons/superset-proper-of.vue +1 -0
- package/dist/icons/table.svg +1 -0
- package/dist/icons/table.vue +1 -0
- package/dist/icons/tag.svg +1 -0
- package/dist/icons/tag.vue +1 -0
- package/dist/icons/taxi.svg +1 -0
- package/dist/icons/taxi.vue +1 -0
- package/dist/icons/tent.svg +1 -0
- package/dist/icons/tent.vue +1 -0
- package/dist/icons/terminal-window.svg +1 -0
- package/dist/icons/terminal-window.vue +1 -0
- package/dist/icons/terminal.svg +1 -0
- package/dist/icons/terminal.vue +1 -0
- package/dist/icons/test-tube.svg +1 -0
- package/dist/icons/test-tube.vue +1 -0
- package/dist/icons/thermometer-cold.svg +1 -0
- package/dist/icons/thermometer-cold.vue +1 -0
- package/dist/icons/thermometer-hot.svg +1 -0
- package/dist/icons/thermometer-hot.vue +1 -0
- package/dist/icons/thermometer-simple.svg +1 -0
- package/dist/icons/thermometer-simple.vue +1 -0
- package/dist/icons/thermometer.svg +1 -0
- package/dist/icons/thermometer.vue +1 -0
- package/dist/icons/tire.svg +1 -0
- package/dist/icons/tire.vue +1 -0
- package/dist/icons/toolbox.svg +1 -0
- package/dist/icons/toolbox.vue +1 -0
- package/dist/icons/tornado.svg +1 -0
- package/dist/icons/tornado.vue +1 -0
- package/dist/icons/tractor.svg +1 -0
- package/dist/icons/tractor.vue +1 -0
- package/dist/icons/traffic-cone.svg +1 -0
- package/dist/icons/traffic-cone.vue +1 -0
- package/dist/icons/traffic-sign.svg +1 -0
- package/dist/icons/traffic-sign.vue +1 -0
- package/dist/icons/traffic-signal.svg +1 -0
- package/dist/icons/traffic-signal.vue +1 -0
- package/dist/icons/train-regional.svg +1 -0
- package/dist/icons/train-regional.vue +1 -0
- package/dist/icons/train-simple.svg +1 -0
- package/dist/icons/train-simple.vue +1 -0
- package/dist/icons/train.svg +1 -0
- package/dist/icons/train.vue +1 -0
- package/dist/icons/tram.svg +1 -0
- package/dist/icons/tram.vue +1 -0
- package/dist/icons/translate.svg +1 -0
- package/dist/icons/translate.vue +1 -0
- package/dist/icons/tree-evergreen.svg +1 -0
- package/dist/icons/tree-evergreen.vue +1 -0
- package/dist/icons/tree-palm.svg +1 -0
- package/dist/icons/tree-palm.vue +1 -0
- package/dist/icons/tree-structure.svg +1 -0
- package/dist/icons/tree-structure.vue +1 -0
- package/dist/icons/tree-view.svg +1 -0
- package/dist/icons/tree-view.vue +1 -0
- package/dist/icons/tree.svg +1 -0
- package/dist/icons/tree.vue +1 -0
- package/dist/icons/trend-down.svg +1 -0
- package/dist/icons/trend-down.vue +1 -0
- package/dist/icons/trend-up.svg +1 -0
- package/dist/icons/trend-up.vue +1 -0
- package/dist/icons/trophy.svg +1 -0
- package/dist/icons/trophy.vue +1 -0
- package/dist/icons/truck-trailer.svg +1 -0
- package/dist/icons/truck-trailer.vue +1 -0
- package/dist/icons/truck.svg +1 -0
- package/dist/icons/truck.vue +1 -0
- package/dist/icons/umbrella-simple.svg +1 -0
- package/dist/icons/umbrella-simple.vue +1 -0
- package/dist/icons/umbrella.svg +1 -0
- package/dist/icons/umbrella.vue +1 -0
- package/dist/icons/union.svg +1 -0
- package/dist/icons/union.vue +1 -0
- package/dist/icons/upload-simple.svg +1 -0
- package/dist/icons/upload-simple.vue +1 -0
- package/dist/icons/users.svg +1 -0
- package/dist/icons/users.vue +1 -0
- package/dist/icons/van.svg +1 -0
- package/dist/icons/van.vue +1 -0
- package/dist/icons/vector-three.svg +1 -0
- package/dist/icons/vector-three.vue +1 -0
- package/dist/icons/vector-two.svg +1 -0
- package/dist/icons/vector-two.vue +1 -0
- package/dist/icons/video.svg +1 -0
- package/dist/icons/video.vue +1 -0
- package/dist/icons/virus.svg +1 -0
- package/dist/icons/virus.vue +1 -0
- package/dist/icons/warehouse.svg +1 -0
- package/dist/icons/warehouse.vue +1 -0
- package/dist/icons/warning.svg +1 -0
- package/dist/icons/warning.vue +1 -0
- package/dist/icons/wave-sawtooth.svg +1 -0
- package/dist/icons/wave-sawtooth.vue +1 -0
- package/dist/icons/wave-sine.svg +1 -0
- package/dist/icons/wave-sine.vue +1 -0
- package/dist/icons/wave-square.svg +1 -0
- package/dist/icons/wave-square.vue +1 -0
- package/dist/icons/wave-triangle.svg +1 -0
- package/dist/icons/wave-triangle.vue +1 -0
- package/dist/icons/waveform.svg +1 -0
- package/dist/icons/waveform.vue +1 -0
- package/dist/icons/waves.svg +1 -0
- package/dist/icons/waves.vue +1 -0
- package/dist/icons/wind.svg +1 -0
- package/dist/icons/wind.vue +1 -0
- package/dist/icons/windmill.svg +1 -0
- package/dist/icons/windmill.vue +1 -0
- package/dist/icons/wrench.svg +1 -0
- package/dist/icons/wrench.vue +1 -0
- package/dist/icons/x-circle.svg +1 -0
- package/dist/icons/x-circle.vue +1 -0
- package/dist/icons/x.svg +1 -0
- package/dist/icons/x.vue +1 -0
- package/dist/rkui.css +1 -0
- package/dist/rkui.js +41 -0
- package/dist/types/components/alert/alert-enhance.d.ts +0 -0
- package/dist/types/components/code/highlight.d.ts +9 -0
- package/dist/types/components/drawer/drawer-enhance.d.ts +21 -0
- package/dist/types/components/file/file-enhance.d.ts +6 -0
- package/dist/types/components/folder/folder-enhance.d.ts +1 -0
- package/dist/types/components/overflow/overflow-enhance.d.ts +1 -0
- package/dist/types/components/quote/quote-enhance.d.ts +1 -0
- package/dist/types/components/sidebar/sidebar-enhance.d.ts +1 -0
- package/dist/types/components/table/table-enhance.d.ts +1 -0
- package/dist/types/components/tooltip/tooltip-enhance.d.ts +7 -0
- package/dist/types/shared/after-slide.d.ts +10 -0
- package/dist/types/shared/clock-face.d.ts +93 -0
- package/dist/types/shared/dial-face.d.ts +58 -0
- package/dist/types/shared/dial-geometry.d.ts +66 -0
- package/dist/types/shared/each-element.d.ts +9 -0
- package/dist/types/shared/light-angle.d.ts +22 -0
- package/package.json +100 -4
- package/src/base/base.css +144 -0
- package/src/base/fonts.css +158 -0
- package/src/base/type.css +17 -0
- package/src/components/alert/Alert.vue +66 -0
- package/src/components/alert/alert-enhance.js +43 -0
- package/src/components/alert/alert.css +125 -0
- package/src/components/badge/Badge.vue +74 -0
- package/src/components/badge/BadgeHost.vue +24 -0
- package/src/components/badge/badge.css +142 -0
- package/src/components/ballot/Ballot.vue +71 -0
- package/src/components/ballot/BallotOption.vue +83 -0
- package/src/components/ballot/ballot.css +208 -0
- package/src/components/breadcrumbs/Breadcrumbs.vue +47 -0
- package/src/components/breadcrumbs/breadcrumbs.css +104 -0
- package/src/components/button/Button.vue +130 -0
- package/src/components/button/button.css +93 -0
- package/src/components/callout/Callout.vue +31 -0
- package/src/components/callout/callout.css +39 -0
- package/src/components/card/Card.vue +59 -0
- package/src/components/card/card.css +117 -0
- package/src/components/checkbox/Checkbox.vue +50 -0
- package/src/components/checkbox/Radio.vue +51 -0
- package/src/components/checkbox/checkbox.css +82 -0
- package/src/components/chip/Chip.vue +60 -0
- package/src/components/chip/ChipGroup.vue +59 -0
- package/src/components/chip/chip.css +73 -0
- package/src/components/clock/Clock.vue +200 -0
- package/src/components/clock/clock-element.ts +6 -0
- package/src/components/clock/clock.css +258 -0
- package/src/components/code/CodeBlock.vue +210 -0
- package/src/components/code/code.css +185 -0
- package/src/components/code/highlight.js +46 -0
- package/src/components/color-picker/ColorInput.vue +54 -0
- package/src/components/color-picker/ColorPicker.vue +110 -0
- package/src/components/color-picker/ColorTile.vue +28 -0
- package/src/components/color-picker/color-picker-element.ts +7 -0
- package/src/components/color-picker/color-picker.css +219 -0
- package/src/components/date-time/date-time.css +53 -0
- package/src/components/dial/Dial.vue +247 -0
- package/src/components/dial/dial-element.ts +6 -0
- package/src/components/dial/dial.css +299 -0
- package/src/components/drawer/Cabinet.vue +67 -0
- package/src/components/drawer/Drawer.vue +155 -0
- package/src/components/drawer/drawer-enhance.js +123 -0
- package/src/components/drawer/drawer.css +889 -0
- package/src/components/field/Field.vue +49 -0
- package/src/components/field/field.css +31 -0
- package/src/components/figure/figure.css +30 -0
- package/src/components/file/File.vue +73 -0
- package/src/components/file/file-enhance.js +35 -0
- package/src/components/file/file.css +130 -0
- package/src/components/folder/Folder.vue +241 -0
- package/src/components/folder/Tab.vue +25 -0
- package/src/components/folder/folder-enhance.js +231 -0
- package/src/components/folder/folder.css +582 -0
- package/src/components/folder/tab-items.ts +67 -0
- package/src/components/folder/tab-slot.ts +80 -0
- package/src/components/header-band/HeaderBand.vue +52 -0
- package/src/components/header-band/header-band.css +54 -0
- package/src/components/icon/icon.css +20 -0
- package/src/components/input/Input.vue +69 -0
- package/src/components/input/Textarea.vue +68 -0
- package/src/components/input/input.css +66 -0
- package/src/components/light-direction/LightDirection.vue +64 -0
- package/src/components/light-direction/light-direction-element.ts +6 -0
- package/src/components/loader/Loader.vue +39 -0
- package/src/components/loader/loader.css +132 -0
- package/src/components/logo/Logo.vue +128 -0
- package/src/components/logo/logo.css +233 -0
- package/src/components/maths/Equation.vue +64 -0
- package/src/components/maths/EquationReference.vue +31 -0
- package/src/components/maths/Maths.vue +32 -0
- package/src/components/maths/maths.css +220 -0
- package/src/components/maths/render-maths.ts +45 -0
- package/src/components/motion/Motion.vue +23 -0
- package/src/components/motion/motion.css +19 -0
- package/src/components/number/Stepper.vue +138 -0
- package/src/components/number/number.css +116 -0
- package/src/components/number/stepper-element.ts +6 -0
- package/src/components/overflow/Scroll.vue +43 -0
- package/src/components/overflow/overflow-enhance.js +45 -0
- package/src/components/overflow/overflow.css +397 -0
- package/src/components/pagination/Pagination.vue +254 -0
- package/src/components/pagination/pagination.css +87 -0
- package/src/components/popup/Popup.vue +26 -0
- package/src/components/popup/popup.css +53 -0
- package/src/components/progress/Progress.vue +47 -0
- package/src/components/progress/progress.css +170 -0
- package/src/components/quote/Quote.vue +48 -0
- package/src/components/quote/quote-enhance.js +70 -0
- package/src/components/quote/quote.css +73 -0
- package/src/components/range/Range.vue +169 -0
- package/src/components/range/range-element.ts +8 -0
- package/src/components/range/range.css +315 -0
- package/src/components/range-ticks/range-ticks.css +29 -0
- package/src/components/search/Search.vue +113 -0
- package/src/components/search/search.css +138 -0
- package/src/components/segmented/Segmented.vue +46 -0
- package/src/components/segmented/SegmentedOption.vue +61 -0
- package/src/components/segmented/segmented.css +181 -0
- package/src/components/select/Select.vue +181 -0
- package/src/components/select/select.css +93 -0
- package/src/components/sidebar/Sidebar.vue +79 -0
- package/src/components/sidebar/SidebarGroup.vue +29 -0
- package/src/components/sidebar/SidebarLink.vue +46 -0
- package/src/components/sidebar/sidebar-enhance.js +26 -0
- package/src/components/sidebar/sidebar.css +543 -0
- package/src/components/spinner/Spinner.vue +36 -0
- package/src/components/spinner/spinner.css +147 -0
- package/src/components/spinner-dots/Dots.vue +48 -0
- package/src/components/spinner-dots/spinner-dots.css +167 -0
- package/src/components/sticky-note/StickyNote.vue +104 -0
- package/src/components/sticky-note/sticky-note.css +206 -0
- package/src/components/switch/Switch.vue +52 -0
- package/src/components/switch/switch.css +73 -0
- package/src/components/table/Table.vue +142 -0
- package/src/components/table/table-enhance.js +58 -0
- package/src/components/table/table.css +622 -0
- package/src/components/theme-toggle/ThemeToggle.vue +114 -0
- package/src/components/theme-toggle/theme-toggle-element.ts +6 -0
- package/src/components/theme-toggle/theme-toggle.css +7 -0
- package/src/components/tiles/Tile.vue +90 -0
- package/src/components/tiles/Tiles.vue +45 -0
- package/src/components/tiles/tiles.css +93 -0
- package/src/components/tooltip/Tooltip.vue +31 -0
- package/src/components/tooltip/tooltip-enhance.js +42 -0
- package/src/components/tooltip/tooltip.css +118 -0
- package/src/components/topbar/BackToTop.vue +18 -0
- package/src/components/topbar/TopBar.vue +25 -0
- package/src/components/topbar/topbar.css +127 -0
- package/src/components/water/Flask.vue +44 -0
- package/src/components/water/Pending.vue +32 -0
- package/src/components/water/water.css +262 -0
- package/src/components/widget-frame/WidgetFrame.vue +31 -0
- package/src/components/widget-frame/widget-frame.css +46 -0
- package/src/enhance.js +13 -0
- package/src/fonts/jetbrains-mono/OFL.txt +93 -0
- package/src/fonts/jetbrains-mono/jetbrains-mono-greek.woff2 +0 -0
- package/src/fonts/jetbrains-mono/jetbrains-mono-italic-greek.woff2 +0 -0
- package/src/fonts/jetbrains-mono/jetbrains-mono-italic-latin.woff2 +0 -0
- package/src/fonts/jetbrains-mono/jetbrains-mono-italic-symbols.woff2 +0 -0
- package/src/fonts/jetbrains-mono/jetbrains-mono-latin.woff2 +0 -0
- package/src/fonts/jetbrains-mono/jetbrains-mono-symbols.woff2 +0 -0
- package/src/fonts/roboto-slab/LICENSE.txt +202 -0
- package/src/fonts/roboto-slab/roboto-slab-greek.woff2 +0 -0
- package/src/fonts/roboto-slab/roboto-slab-latin.woff2 +0 -0
- package/src/fonts/roboto-slab/roboto-slab-symbols.woff2 +0 -0
- package/src/fonts/xmind/OFL.txt +93 -0
- package/src/fonts/xmind/xmind-greek.woff2 +0 -0
- package/src/fonts/xmind/xmind-italic-greek.woff2 +0 -0
- package/src/fonts/xmind/xmind-italic-latin.woff2 +0 -0
- package/src/fonts/xmind/xmind-italic-symbols.woff2 +0 -0
- package/src/fonts/xmind/xmind-latin.woff2 +0 -0
- package/src/fonts/xmind/xmind-symbols.woff2 +0 -0
- package/src/head-scripts/table-init.js +9 -0
- package/src/head-scripts/theme-init.js +10 -0
- package/src/icons/LICENSE-phosphor.txt +21 -0
- package/src/icons/LICENSE-tabler.txt +21 -0
- package/src/icons/icon-set.js +715 -0
- package/src/icons/sources/satellite-duotone.svg +2 -0
- package/src/index.css +64 -0
- package/src/interactive-enhance.js +22 -0
- package/src/interactive.css +239 -0
- package/src/shared/after-slide.js +14 -0
- package/src/shared/astro-attributes.d.ts +58 -0
- package/src/shared/clock-face.js +148 -0
- package/src/shared/component-id.ts +17 -0
- package/src/shared/define-element.ts +51 -0
- package/src/shared/dial-face.js +111 -0
- package/src/shared/dial-geometry.js +96 -0
- package/src/shared/each-element.js +38 -0
- package/src/shared/field-attrs.ts +32 -0
- package/src/shared/hues.ts +111 -0
- package/src/shared/light-angle.js +49 -0
- package/src/shared/live-value.ts +142 -0
- package/src/shared/model-start.ts +23 -0
- package/src/shared/option-group.ts +19 -0
- package/src/shared/option-slot.ts +97 -0
- package/src/shared/slot-html.ts +53 -0
- package/src/shared/split-attrs.ts +64 -0
- package/src/shared/starting-option.ts +14 -0
- package/src/tokens/colors.css +122 -0
- package/src/tokens/fallback.css +67 -0
- package/src/tokens/motion.css +31 -0
- package/src/tokens/palettes.css +36 -0
- package/src/tokens/shadow-color.css +178 -0
- package/src/tokens/shadows.css +127 -0
- package/src/tokens/space.css +20 -0
- package/src/tsconfig.json +19 -0
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { Comment, Fragment, Text, type VNode } from 'vue'
|
|
2
|
+
import { slotHtml } from '../../shared/slot-html'
|
|
3
|
+
import { readTabs } from './tab-items'
|
|
4
|
+
import Tab from './Tab.vue'
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* One tab read from a group's slot. A tab written in a .vue file comes with its slot as vnodes
|
|
8
|
+
* (`panel`); a Tab written in MDX or .astro reaches Vue already rendered, as HTML (`html`).
|
|
9
|
+
*/
|
|
10
|
+
export interface SlotTab {
|
|
11
|
+
label: string
|
|
12
|
+
selected: boolean
|
|
13
|
+
panel?: () => VNode[]
|
|
14
|
+
html?: string
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/** A group's slot, split into its tabs and everything outside them, in one of the two shapes. */
|
|
18
|
+
interface SlotParts {
|
|
19
|
+
tabs: SlotTab[]
|
|
20
|
+
/** What was outside the tabs in a .vue file. */
|
|
21
|
+
outside: VNode[]
|
|
22
|
+
/** What was outside the tabs in MDX or .astro, as HTML. */
|
|
23
|
+
outsideHtml: string
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/** Whether a vnode renders nothing a reader would see: a comment or whitespace. */
|
|
27
|
+
function isBlank(vnode: VNode): boolean {
|
|
28
|
+
return vnode.type === Comment || (vnode.type === Text && !String(vnode.children).trim())
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/** A slot's vnodes in order, with fragments (`v-for`) opened up and blank ones left out. */
|
|
32
|
+
function slotVnodes(vnodes: VNode[]): VNode[] {
|
|
33
|
+
return vnodes.flatMap((vnode) => {
|
|
34
|
+
if (vnode.type === Fragment && Array.isArray(vnode.children)) {
|
|
35
|
+
return slotVnodes(vnode.children as VNode[])
|
|
36
|
+
}
|
|
37
|
+
return isBlank(vnode) ? [] : [vnode]
|
|
38
|
+
})
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/** A Tab read from its vnode's props and slot. `selected` alone arrives as ''. */
|
|
42
|
+
function vnodeTab(vnode: VNode): SlotTab {
|
|
43
|
+
const selected = vnode.props?.selected
|
|
44
|
+
const children = vnode.children as { default?: () => VNode[] } | null
|
|
45
|
+
return {
|
|
46
|
+
label: String(vnode.props?.label),
|
|
47
|
+
selected: selected === '' || selected === true || selected === 'true',
|
|
48
|
+
panel: children?.default,
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Reads the tabs out of a Folder slot, in order, and everything outside them. A slot
|
|
54
|
+
* written in MDX or .astro arrives as HTML (slot-html.ts) and is read with tab-items.ts; Tab vnodes
|
|
55
|
+
* from a .vue file are read from their props. The first tab marked `selected` is the selected
|
|
56
|
+
* one, or the first tab when none is. Stops with a clear message when there are no tabs.
|
|
57
|
+
*/
|
|
58
|
+
export function readSlotTabs(vnodes: VNode[]): SlotParts {
|
|
59
|
+
const parts: SlotParts = { tabs: [], outside: [], outsideHtml: '' }
|
|
60
|
+
for (const vnode of slotVnodes(vnodes)) {
|
|
61
|
+
const html = slotHtml(vnode)
|
|
62
|
+
if (vnode.type === Tab) {
|
|
63
|
+
parts.tabs.push(vnodeTab(vnode))
|
|
64
|
+
} else if (html !== undefined) {
|
|
65
|
+
const { tabs, outside } = readTabs(html)
|
|
66
|
+
parts.tabs.push(
|
|
67
|
+
...tabs.map(({ label, selected, content }) => ({ label, selected, html: content })),
|
|
68
|
+
)
|
|
69
|
+
parts.outsideHtml += outside
|
|
70
|
+
} else {
|
|
71
|
+
parts.outside.push(vnode)
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
if (parts.tabs.length === 0) throw new Error('Folder needs at least one Tab.')
|
|
75
|
+
// The first tab marked selected wins, or the first tab when none is marked.
|
|
76
|
+
const marked = parts.tabs.findIndex((tab) => tab.selected)
|
|
77
|
+
const first = marked === -1 ? 0 : marked
|
|
78
|
+
parts.tabs.forEach((tab, i) => (tab.selected = i === first))
|
|
79
|
+
return parts
|
|
80
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
A header band: a full-width block of colour at the top of a page or a section, with a small kicker
|
|
3
|
+
line over the page's heading, and a hard rule along its foot. Its colour is the page's section hue
|
|
4
|
+
unless `hue` picks one, so it tells the reader which part of the site they are in. The slot holds
|
|
5
|
+
the heading, at whatever level fits the page, and an optional line under it. `kicker` is a string,
|
|
6
|
+
or a list of strings joined with " · ": `:kicker="['Section', 'kicker']"` in Vue,
|
|
7
|
+
`kicker={['Section', 'kicker']}` in Astro and MDX. Needs no JavaScript. `class`, `style` and other
|
|
8
|
+
attributes go on the `<header>`.
|
|
9
|
+
|
|
10
|
+
@example
|
|
11
|
+
<HeaderBand :kicker="['Section', 'kicker']">
|
|
12
|
+
<h1>The page's title</h1>
|
|
13
|
+
</HeaderBand>
|
|
14
|
+
-->
|
|
15
|
+
<script setup lang="ts">
|
|
16
|
+
import { computed } from 'vue'
|
|
17
|
+
import { hueVars, type HueOrHex } from '../../shared/hues'
|
|
18
|
+
|
|
19
|
+
interface Props {
|
|
20
|
+
/**
|
|
21
|
+
* The small line over the heading, such as the section's name; none when left out. A list is
|
|
22
|
+
* joined with " · ".
|
|
23
|
+
*/
|
|
24
|
+
kicker?: string | string[]
|
|
25
|
+
/**
|
|
26
|
+
* The band's fill, a hue or a hex code. When left out, the page's section hue (`--rkui-section`);
|
|
27
|
+
* with none, ink in light mode, and the page's colour with a line under it in dark mode.
|
|
28
|
+
*/
|
|
29
|
+
hue?: HueOrHex
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
const { kicker, hue } = defineProps<Props>()
|
|
33
|
+
|
|
34
|
+
/** The kicker as one line. */
|
|
35
|
+
const kickerText = computed(() => (Array.isArray(kicker) ? kicker.join(' · ') : kicker))
|
|
36
|
+
|
|
37
|
+
/** The band's fill and text as custom properties, when `hue` is set. */
|
|
38
|
+
const vars = computed(() =>
|
|
39
|
+
hueVars(hue, {
|
|
40
|
+
fill: '--rkui-header-band-hue',
|
|
41
|
+
text: '--rkui-header-band-on-hue',
|
|
42
|
+
solid: true,
|
|
43
|
+
}),
|
|
44
|
+
)
|
|
45
|
+
</script>
|
|
46
|
+
|
|
47
|
+
<template>
|
|
48
|
+
<header class="rkui-header-band" :style="vars">
|
|
49
|
+
<p v-if="kickerText" class="rkui-header-band-kicker">{{ kickerText }}</p>
|
|
50
|
+
<slot />
|
|
51
|
+
</header>
|
|
52
|
+
</template>
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/* Header band: a full-width block of colour at the top of a page or a section, with a small
|
|
2
|
+
kicker line over the page's heading, and a hard rule along its foot. Static, so it has no
|
|
3
|
+
outline or shadow.
|
|
4
|
+
|
|
5
|
+
<header class="rkui-header-band">
|
|
6
|
+
<p class="rkui-header-band-kicker">Section · kicker</p>
|
|
7
|
+
<h1>The page's title</h1>
|
|
8
|
+
</header>
|
|
9
|
+
|
|
10
|
+
--rkui-header-band-hue and --rkui-header-band-on-hue set the fill and the text (HeaderBand.vue's
|
|
11
|
+
`hue`). Left alone, the band is the page's section hue (--rkui-section) if it sets one; with
|
|
12
|
+
none, it is ink in light mode, and in dark mode it lets the page's colour show, with a line
|
|
13
|
+
along its foot in the colour of an outline without a fill, which any fill covers. That is the
|
|
14
|
+
Table's header band rule (DECISIONS, "Table header band in dark mode"). */
|
|
15
|
+
|
|
16
|
+
.rkui-header-band {
|
|
17
|
+
--rkui-header-band-hue: var(--rkui-section, light-dark(var(--rkui-ink), transparent));
|
|
18
|
+
--rkui-header-band-on-hue: var(--rkui-on-section, light-dark(var(--rkui-on-ink), var(--rkui-fg)));
|
|
19
|
+
--rkui-header-band-underline: light-dark(transparent, var(--rkui-line-unfilled));
|
|
20
|
+
|
|
21
|
+
display: grid;
|
|
22
|
+
gap: var(--rkui-space-1);
|
|
23
|
+
padding: var(--rkui-space-5) clamp(var(--rkui-space-4), 5vw, var(--rkui-space-6));
|
|
24
|
+
border-block-end: var(--rkui-outline-width) solid var(--rkui-line);
|
|
25
|
+
background:
|
|
26
|
+
linear-gradient(var(--rkui-header-band-hue), var(--rkui-header-band-hue)),
|
|
27
|
+
linear-gradient(var(--rkui-header-band-underline), var(--rkui-header-band-underline)) bottom /
|
|
28
|
+
100% var(--rkui-outline-width) no-repeat;
|
|
29
|
+
color: var(--rkui-header-band-on-hue);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.rkui-header-band-kicker {
|
|
33
|
+
margin: 0;
|
|
34
|
+
font-size: var(--rkui-step--1);
|
|
35
|
+
font-weight: 700;
|
|
36
|
+
letter-spacing: 0.1em;
|
|
37
|
+
text-transform: uppercase;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/* The page's heading, at any level, as one big slab. */
|
|
41
|
+
.rkui-header-band > :is(h1, h2, h3, h4, h5, h6) {
|
|
42
|
+
margin: 0;
|
|
43
|
+
color: inherit;
|
|
44
|
+
font-family: var(--rkui-font-display);
|
|
45
|
+
font-size: var(--rkui-step-3);
|
|
46
|
+
font-weight: 800;
|
|
47
|
+
line-height: var(--rkui-line-height-heading);
|
|
48
|
+
text-wrap: balance;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.rkui-header-band > p:not(.rkui-header-band-kicker) {
|
|
52
|
+
margin: 0;
|
|
53
|
+
max-inline-size: 60ch;
|
|
54
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/* Inline SVG icons from icons/. --rkui-icon-stroke is in the icons' 256-unit viewBox, so 21 is
|
|
2
|
+
about 2px at 24px. --rkui-icon-fill inherits: set it on the icon or any container. When nothing
|
|
3
|
+
sets it, each icon uses its own default fill, written into the SVG. The globes' ocean has its own
|
|
4
|
+
hook, --rkui-icon-ocean. */
|
|
5
|
+
|
|
6
|
+
.rkui-icon {
|
|
7
|
+
--rkui-icon-stroke: 21;
|
|
8
|
+
|
|
9
|
+
flex: none;
|
|
10
|
+
inline-size: 1.5rem;
|
|
11
|
+
block-size: 1.5rem;
|
|
12
|
+
color: var(--rkui-fg);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.rkui-icon--small {
|
|
16
|
+
--rkui-icon-stroke: 24;
|
|
17
|
+
|
|
18
|
+
inline-size: 1.25rem;
|
|
19
|
+
block-size: 1.25rem;
|
|
20
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
A text-like input: a native `<input>` in the `.rkui-input` frame, inside a Field. `class` and
|
|
3
|
+
`style` go on the Field's div when there is a label, hint or error, otherwise on the input; other
|
|
4
|
+
attributes (name, placeholder, disabled, required, ...) go on the input. Without a label, give it
|
|
5
|
+
an `aria-label`. Search and file inputs have their own components: Search, File. In a `.vue`
|
|
6
|
+
file, `v-model` is the input's value (a number for `type="number"`). With `v-model`, the
|
|
7
|
+
parent's value is the starting value; `value` applies only without one. In Safari on macOS and
|
|
8
|
+
in Firefox, `type="month"` and `type="week"` fall back to a plain text box.
|
|
9
|
+
|
|
10
|
+
@example
|
|
11
|
+
<Input label="Email" type="email" name="email" hint="We never share it" />
|
|
12
|
+
<Input v-model="email" label="Email" type="email" />
|
|
13
|
+
-->
|
|
14
|
+
<script setup lang="ts">
|
|
15
|
+
import { useAttrs } from 'vue'
|
|
16
|
+
import Field from '../field/Field.vue'
|
|
17
|
+
import { useComponentId } from '../../shared/component-id'
|
|
18
|
+
import { useLiveValue } from '../../shared/live-value'
|
|
19
|
+
import { controlAttrs } from '../../shared/split-attrs'
|
|
20
|
+
|
|
21
|
+
defineOptions({ inheritAttrs: false })
|
|
22
|
+
|
|
23
|
+
interface Props {
|
|
24
|
+
/** The input's type; text when left out. */
|
|
25
|
+
type?: string
|
|
26
|
+
/** The visible label; none when left out. */
|
|
27
|
+
label?: string
|
|
28
|
+
/** A quiet line under the input; none when left out. */
|
|
29
|
+
hint?: string
|
|
30
|
+
/** An error line under the input; it also marks the input invalid; none when left out. */
|
|
31
|
+
error?: string
|
|
32
|
+
/**
|
|
33
|
+
* The hover cue: 'ring', 'underline' or 'none'; the background sinks to the page colour when
|
|
34
|
+
* left out.
|
|
35
|
+
*/
|
|
36
|
+
hover?: 'ring' | 'underline' | 'none'
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
const { type = 'text', label, hint, error, hover } = defineProps<Props>()
|
|
40
|
+
|
|
41
|
+
const attrs = useAttrs()
|
|
42
|
+
/** The input's value (`v-model`); the page's `value` attribute when left out. */
|
|
43
|
+
const model = defineModel<string | number>()
|
|
44
|
+
if (model.value === undefined) model.value = attrs.value as string | undefined
|
|
45
|
+
// In the browser, what was typed before the input woke up wins.
|
|
46
|
+
const vLiveValue = useLiveValue(model)
|
|
47
|
+
const id = (attrs.id as string | undefined) ?? useComponentId('input')
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* The page's attributes, split between the Field and the input. Without a frame the input is the
|
|
51
|
+
* outermost element, so it takes `class` and `style` too. `value` is left out: the model holds it.
|
|
52
|
+
*/
|
|
53
|
+
function pageAttrs() {
|
|
54
|
+
const { value, ...rest } = attrs
|
|
55
|
+
return controlAttrs(rest, id, { label, hint, error })
|
|
56
|
+
}
|
|
57
|
+
</script>
|
|
58
|
+
|
|
59
|
+
<template>
|
|
60
|
+
<Field :label :for="id" :hint :error v-bind="pageAttrs().field">
|
|
61
|
+
<input
|
|
62
|
+
v-live-value
|
|
63
|
+
v-model="model"
|
|
64
|
+
:class="['rkui-input', hover && `rkui-hover-${hover}`]"
|
|
65
|
+
:type
|
|
66
|
+
v-bind="pageAttrs().control"
|
|
67
|
+
/>
|
|
68
|
+
</Field>
|
|
69
|
+
</template>
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
A multi-line text input: a native `<textarea>` in the `.rkui-input` frame, inside a Field.
|
|
3
|
+
`class` and `style` go on the Field's div when there is a label, hint or error, otherwise on the
|
|
4
|
+
textarea; other attributes (name, rows, placeholder, disabled, ...) go on the textarea. The
|
|
5
|
+
slot is its starting text, trimmed. Without a label, give it an `aria-label`. In a `.vue`
|
|
6
|
+
file, `v-model` is the textarea's text. With `v-model`, the parent's value is the starting
|
|
7
|
+
value unless it is undefined; then the slot applies and is handed to the parent.
|
|
8
|
+
|
|
9
|
+
@example
|
|
10
|
+
<Textarea label="Message" name="message" rows="4" />
|
|
11
|
+
<Textarea v-model="message" label="Message" rows="4" />
|
|
12
|
+
-->
|
|
13
|
+
<script setup lang="ts">
|
|
14
|
+
import { useAttrs, useSlots } from 'vue'
|
|
15
|
+
import Field from '../field/Field.vue'
|
|
16
|
+
import { useComponentId } from '../../shared/component-id'
|
|
17
|
+
import { useLiveValue } from '../../shared/live-value'
|
|
18
|
+
import { modelWithStart } from '../../shared/model-start'
|
|
19
|
+
import { slotText } from '../../shared/slot-html'
|
|
20
|
+
import { controlAttrs } from '../../shared/split-attrs'
|
|
21
|
+
|
|
22
|
+
defineOptions({ inheritAttrs: false })
|
|
23
|
+
|
|
24
|
+
interface Props {
|
|
25
|
+
/** The visible label; none when left out. */
|
|
26
|
+
label?: string
|
|
27
|
+
/** A quiet line under the textarea; none when left out. */
|
|
28
|
+
hint?: string
|
|
29
|
+
/** An error line under the textarea; it also marks the textarea invalid; none when left out. */
|
|
30
|
+
error?: string
|
|
31
|
+
/**
|
|
32
|
+
* The hover cue: 'ring', 'underline' or 'none'; the background sinks to the page colour when
|
|
33
|
+
* left out.
|
|
34
|
+
*/
|
|
35
|
+
hover?: 'ring' | 'underline' | 'none'
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
const { label, hint, error, hover } = defineProps<Props>()
|
|
39
|
+
|
|
40
|
+
const attrs = useAttrs()
|
|
41
|
+
/** The textarea's text (`v-model`); the slot's text, trimmed, when left out. */
|
|
42
|
+
const model = defineModel<string>()
|
|
43
|
+
// Trimmed, as a textarea would otherwise show the indentation Prettier adds around it.
|
|
44
|
+
const slots = useSlots()
|
|
45
|
+
const text = modelWithStart(model, () => slotText(slots.default?.() ?? []).trim())
|
|
46
|
+
// In the browser, what was typed before the textarea woke up wins.
|
|
47
|
+
const vLiveValue = useLiveValue(text)
|
|
48
|
+
const id = (attrs.id as string | undefined) ?? useComponentId('textarea')
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* The page's attributes, split between the Field and the textarea. Without a frame the textarea
|
|
52
|
+
* is the outermost element, so it takes `class` and `style` too.
|
|
53
|
+
*/
|
|
54
|
+
function pageAttrs() {
|
|
55
|
+
return controlAttrs(attrs, id, { label, hint, error })
|
|
56
|
+
}
|
|
57
|
+
</script>
|
|
58
|
+
|
|
59
|
+
<template>
|
|
60
|
+
<Field :label :for="id" :hint :error v-bind="pageAttrs().field">
|
|
61
|
+
<textarea
|
|
62
|
+
v-live-value
|
|
63
|
+
v-model="text"
|
|
64
|
+
:class="['rkui-input', hover && `rkui-hover-${hover}`]"
|
|
65
|
+
v-bind="pageAttrs().control"
|
|
66
|
+
/>
|
|
67
|
+
</Field>
|
|
68
|
+
</template>
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/* Text inputs and textareas. They are flat, with no shadow at rest or on hover. Mark errors with
|
|
2
|
+
aria-invalid="true". select.css reuses this look. */
|
|
3
|
+
|
|
4
|
+
.rkui-input,
|
|
5
|
+
.rkui-select {
|
|
6
|
+
inline-size: 100%;
|
|
7
|
+
max-inline-size: 30rem;
|
|
8
|
+
padding: var(--rkui-space-2) var(--rkui-space-3);
|
|
9
|
+
border: var(--rkui-outline-width) solid var(--rkui-line-unfilled);
|
|
10
|
+
border-radius: var(--rkui-radius);
|
|
11
|
+
background-color: var(--rkui-raised);
|
|
12
|
+
color: var(--rkui-fg);
|
|
13
|
+
font-weight: 400;
|
|
14
|
+
line-height: var(--rkui-line-height-body);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.rkui-input::placeholder {
|
|
18
|
+
color: var(--rkui-muted);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
textarea.rkui-input {
|
|
22
|
+
min-block-size: 6rem;
|
|
23
|
+
resize: vertical;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.rkui-input[aria-invalid='true'],
|
|
27
|
+
.rkui-select[aria-invalid='true'] {
|
|
28
|
+
border-color: var(--rkui-coral-deep);
|
|
29
|
+
background-color: var(--rkui-coral-tint);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/* Hover cue. By default the background sinks to the page colour. Put .rkui-hover-none,
|
|
33
|
+
.rkui-hover-ring or .rkui-hover-underline on a field or any ancestor (a form, the page) to swap
|
|
34
|
+
it. All of them stay flat. */
|
|
35
|
+
|
|
36
|
+
:root {
|
|
37
|
+
--rkui-input-hover-background: var(--rkui-surface);
|
|
38
|
+
--rkui-input-hover-shadow: none;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.rkui-hover-none {
|
|
42
|
+
--rkui-input-hover-background: var(--rkui-raised);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/* A 1px inner ring makes the border look thicker, without moving anything. */
|
|
46
|
+
.rkui-hover-ring {
|
|
47
|
+
--rkui-input-hover-background: var(--rkui-raised);
|
|
48
|
+
--rkui-input-hover-shadow: inset 0 0 0 1px var(--rkui-line-unfilled);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/* A teal underline inside the bottom border. */
|
|
52
|
+
.rkui-hover-underline {
|
|
53
|
+
--rkui-input-hover-background: var(--rkui-raised);
|
|
54
|
+
--rkui-input-hover-shadow: inset 0 calc(-1 * var(--rkui-outline-width)) 0 var(--rkui-teal-deep);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
@media (hover: hover) {
|
|
58
|
+
:is(.rkui-input, .rkui-select):enabled:hover {
|
|
59
|
+
box-shadow: var(--rkui-input-hover-shadow);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/* Fields in error keep their coral fill. */
|
|
63
|
+
:is(.rkui-input, .rkui-select):enabled:not([aria-invalid='true']):hover {
|
|
64
|
+
background-color: var(--rkui-input-hover-background);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
Turns the light for the whole page, to check every shadow: a slider for where the light comes
|
|
3
|
+
from (degrees clockwise from the top) and a switch that makes it follow the time of day. It sets
|
|
4
|
+
--rkui-shadow-dx and --rkui-shadow-dy on `<html>`. `class`, `style` and other attributes go on
|
|
5
|
+
the div; the page lays out the two controls inside it.
|
|
6
|
+
|
|
7
|
+
It runs in the browser, so in an Astro page it needs `client:visible`. Without it the controls
|
|
8
|
+
show but turn nothing.
|
|
9
|
+
|
|
10
|
+
@example
|
|
11
|
+
<LightDirection client:visible />
|
|
12
|
+
-->
|
|
13
|
+
<script setup lang="ts">
|
|
14
|
+
import { onBeforeUnmount, onMounted, ref, watch } from 'vue'
|
|
15
|
+
import Field from '../field/Field.vue'
|
|
16
|
+
import Range from '../range/Range.vue'
|
|
17
|
+
import Switch from '../switch/Switch.vue'
|
|
18
|
+
import { useComponentId } from '../../shared/component-id'
|
|
19
|
+
import { DEFAULT_ANGLE, shadowOffsets, sunAngle } from '../../shared/light-angle.js'
|
|
20
|
+
|
|
21
|
+
/** How often the light moves while it follows the time of day. */
|
|
22
|
+
const CLOCK_INTERVAL_MS = 60_000
|
|
23
|
+
|
|
24
|
+
const id = useComponentId('light-direction')
|
|
25
|
+
/** Where the light comes from, in whole degrees, as the slider shows it. */
|
|
26
|
+
const angle = ref(DEFAULT_ANGLE)
|
|
27
|
+
/** Whether the light follows the time of day, which also disables the slider. */
|
|
28
|
+
const followsClock = ref(false)
|
|
29
|
+
let clockTimer: ReturnType<typeof setInterval> | undefined
|
|
30
|
+
|
|
31
|
+
/** Points every shadow on the page away from a light at `lightAngle`. */
|
|
32
|
+
function turnLight(lightAngle: number) {
|
|
33
|
+
const { dx, dy } = shadowOffsets(lightAngle)
|
|
34
|
+
document.documentElement.style.setProperty('--rkui-shadow-dx', dx)
|
|
35
|
+
document.documentElement.style.setProperty('--rkui-shadow-dy', dy)
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/** Moves the slider and the light to where the sun is now. */
|
|
39
|
+
function showTime() {
|
|
40
|
+
angle.value = Math.round(sunAngle(new Date()))
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
onMounted(() => turnLight(angle.value))
|
|
44
|
+
watch(angle, turnLight)
|
|
45
|
+
|
|
46
|
+
watch(followsClock, (follow) => {
|
|
47
|
+
clearInterval(clockTimer)
|
|
48
|
+
if (follow) {
|
|
49
|
+
showTime()
|
|
50
|
+
clockTimer = setInterval(showTime, CLOCK_INTERVAL_MS)
|
|
51
|
+
}
|
|
52
|
+
})
|
|
53
|
+
|
|
54
|
+
onBeforeUnmount(() => clearInterval(clockTimer))
|
|
55
|
+
</script>
|
|
56
|
+
|
|
57
|
+
<template>
|
|
58
|
+
<div>
|
|
59
|
+
<Field label="Light from (degrees clockwise from the top)" :for="id">
|
|
60
|
+
<Range :id v-model="angle" min="0" max="359" :disabled="followsClock" />
|
|
61
|
+
</Field>
|
|
62
|
+
<Switch v-model="followsClock">Follow the time of day</Switch>
|
|
63
|
+
</div>
|
|
64
|
+
</template>
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
// <rkui-light-direction> for plain HTML pages, bundled into dist/rkui.js:
|
|
2
|
+
// <rkui-light-direction></rkui-light-direction>.
|
|
3
|
+
import { defineElement } from '../../shared/define-element'
|
|
4
|
+
import LightDirection from './LightDirection.vue'
|
|
5
|
+
|
|
6
|
+
defineElement('rkui-light-direction', LightDirection)
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
The hop loader: a ball hops back and forth along a line, squashing as it lands. Each hop covers
|
|
3
|
+
about the same distance (`--rkui-loader-hop-length`), so a wider loader takes more hops. Give it a
|
|
4
|
+
`hue`, or an icon to ride in a bigger ball. The slot holds that icon, with class "rkui-icon". A
|
|
5
|
+
busy indicator with `role="status"`; the label is read out, not shown. `class`, `style` and other
|
|
6
|
+
attributes go on the `<div>`.
|
|
7
|
+
|
|
8
|
+
@example
|
|
9
|
+
<Loader hue="coral" label="Fetching…"><StarIcon class="rkui-icon" aria-hidden="true" /></Loader>
|
|
10
|
+
-->
|
|
11
|
+
<script setup lang="ts">
|
|
12
|
+
import { useSlots } from 'vue'
|
|
13
|
+
import { hueVars, type HueOrHex } from '../../shared/hues'
|
|
14
|
+
|
|
15
|
+
interface Props {
|
|
16
|
+
/** What is happening, for screen readers; "Loading…" when left out. */
|
|
17
|
+
label?: string
|
|
18
|
+
/** The ball's colour, a hue or a hex code; teal when left out. */
|
|
19
|
+
hue?: HueOrHex
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
const { label = 'Loading…', hue } = defineProps<Props>()
|
|
23
|
+
const slots = useSlots()
|
|
24
|
+
|
|
25
|
+
/** The custom properties for what is set: the fill, and the text colour only with an icon. */
|
|
26
|
+
function vars() {
|
|
27
|
+
return hueVars(hue, {
|
|
28
|
+
fill: '--rkui-loader-fill',
|
|
29
|
+
text: slots.default ? '--rkui-loader-on-fill' : undefined,
|
|
30
|
+
})
|
|
31
|
+
}
|
|
32
|
+
</script>
|
|
33
|
+
|
|
34
|
+
<template>
|
|
35
|
+
<div class="rkui-loader rkui-loader--hop" role="status" :style="vars()">
|
|
36
|
+
<span class="rkui-loader-ball"><slot /></span>
|
|
37
|
+
<span class="rkui-visually-hidden">{{ label }}</span>
|
|
38
|
+
</div>
|
|
39
|
+
</template>
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
/* Loader: an indeterminate bar with more character than the progress bar's. Like the spinners,
|
|
2
|
+
give it role="status" and a visually hidden label.
|
|
3
|
+
.rkui-loader--hop: a ball hops back and forth along a line, squashing as it lands. Each hop
|
|
4
|
+
covers about --rkui-loader-hop-length, so a wider loader takes more hops, and the ball
|
|
5
|
+
always lands at each end. Set --rkui-loader-fill to recolour it, and put an icon in the ball
|
|
6
|
+
to have it ride in a bigger one.
|
|
7
|
+
Under reduced motion nothing moves: the ball fades in and out instead.
|
|
8
|
+
|
|
9
|
+
<div class="rkui-loader rkui-loader--hop" role="status"
|
|
10
|
+
style="--rkui-loader-fill: var(--rkui-coral)">
|
|
11
|
+
<span class="rkui-loader-ball"><svg class="rkui-icon" aria-hidden="true">…</svg></span>
|
|
12
|
+
<span class="rkui-visually-hidden">Loading…</span>
|
|
13
|
+
</div> */
|
|
14
|
+
|
|
15
|
+
/* A container, so the moving parts can travel the loader's width in cqi. */
|
|
16
|
+
.rkui-loader {
|
|
17
|
+
--rkui-loader-edge: var(--rkui-line);
|
|
18
|
+
|
|
19
|
+
position: relative;
|
|
20
|
+
box-sizing: border-box;
|
|
21
|
+
inline-size: 100%;
|
|
22
|
+
max-inline-size: 30rem;
|
|
23
|
+
overflow: hidden;
|
|
24
|
+
container-type: inline-size;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/* Hop has no track, only the ground. Set --rkui-loader-fill on the loader for the ball's colour,
|
|
28
|
+
and --rkui-loader-on-fill for its icon's. */
|
|
29
|
+
.rkui-loader--hop {
|
|
30
|
+
--rkui-loader-fill: var(--rkui-teal);
|
|
31
|
+
--rkui-loader-on-fill: var(--rkui-on-fill);
|
|
32
|
+
--rkui-ball-size: 0.875rem;
|
|
33
|
+
--rkui-hop-height: 1.1rem;
|
|
34
|
+
--rkui-loader-hop-length: 4rem;
|
|
35
|
+
--rkui-loader-hop-time: var(--rkui-loop-quick);
|
|
36
|
+
|
|
37
|
+
block-size: calc(var(--rkui-ball-size) + var(--rkui-hop-height) + 0.25rem);
|
|
38
|
+
border-block-end: var(--rkui-outline-width) solid var(--rkui-line-unfilled);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.rkui-loader--hop:has(> .rkui-loader-ball > .rkui-icon) {
|
|
42
|
+
--rkui-ball-size: 1.5rem;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/* The ball travels and hops in two animations of its translate, the hop added to the travel. A
|
|
46
|
+
hop lands every --rkui-loader-hop-time, and a crossing takes a whole number of hops: the travel
|
|
47
|
+
over --rkui-loader-hop-length, rounded, at least one.
|
|
48
|
+
tan(atan2(a, b)) is a / b as a plain number. --rkui-ball-edge leaves room for the squash at
|
|
49
|
+
each end. */
|
|
50
|
+
.rkui-loader-ball {
|
|
51
|
+
--rkui-ball-edge: calc(var(--rkui-ball-size) * 0.15);
|
|
52
|
+
--rkui-ball-travel: calc(100cqi - var(--rkui-ball-size) - 2 * var(--rkui-ball-edge));
|
|
53
|
+
--rkui-hops: max(1, round(tan(atan2(var(--rkui-ball-travel), var(--rkui-loader-hop-length)))));
|
|
54
|
+
|
|
55
|
+
position: absolute;
|
|
56
|
+
inset-block-end: 0;
|
|
57
|
+
inset-inline-start: 0;
|
|
58
|
+
display: grid;
|
|
59
|
+
place-items: center;
|
|
60
|
+
box-sizing: border-box;
|
|
61
|
+
inline-size: var(--rkui-ball-size);
|
|
62
|
+
block-size: var(--rkui-ball-size);
|
|
63
|
+
border: var(--rkui-outline-width) solid var(--rkui-loader-edge);
|
|
64
|
+
border-radius: 50%;
|
|
65
|
+
background: var(--rkui-loader-fill);
|
|
66
|
+
color: var(--rkui-loader-on-fill);
|
|
67
|
+
transform-origin: 50% 100%;
|
|
68
|
+
translate: calc(50cqi - 50%) 0;
|
|
69
|
+
animation:
|
|
70
|
+
rkui-hop-travel calc(var(--rkui-hops) * var(--rkui-loader-hop-time)) linear infinite alternate,
|
|
71
|
+
rkui-hop var(--rkui-loader-hop-time) infinite;
|
|
72
|
+
animation-composition: replace, add;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.rkui-loader-ball .rkui-icon {
|
|
76
|
+
--rkui-icon-fill: var(--rkui-loader-fill);
|
|
77
|
+
|
|
78
|
+
inline-size: 70%;
|
|
79
|
+
block-size: 70%;
|
|
80
|
+
color: inherit;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
@keyframes rkui-hop-travel {
|
|
84
|
+
from {
|
|
85
|
+
translate: var(--rkui-ball-edge) 0;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
to {
|
|
89
|
+
translate: calc(var(--rkui-ball-edge) + var(--rkui-ball-travel)) 0;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
@keyframes rkui-hop {
|
|
94
|
+
from,
|
|
95
|
+
to {
|
|
96
|
+
translate: 0 0;
|
|
97
|
+
scale: 1.3 0.7;
|
|
98
|
+
animation-timing-function: ease-out;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
15% {
|
|
102
|
+
scale: 0.9 1.1;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
50% {
|
|
106
|
+
translate: 0 calc(-1 * var(--rkui-hop-height));
|
|
107
|
+
scale: 1;
|
|
108
|
+
animation-timing-function: ease-in;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
85% {
|
|
112
|
+
scale: 0.9 1.1;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
@media (prefers-reduced-motion: reduce) {
|
|
117
|
+
.rkui-loader-ball {
|
|
118
|
+
animation: rkui-spinner-fade var(--rkui-loop-medium) ease-in-out infinite alternate;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/* Forced colours drop the fills, so the loader uses system colours. */
|
|
123
|
+
@media (forced-colors: active) {
|
|
124
|
+
.rkui-loader {
|
|
125
|
+
--rkui-loader-fill: Highlight;
|
|
126
|
+
--rkui-loader-on-fill: HighlightText;
|
|
127
|
+
--rkui-loader-edge: CanvasText;
|
|
128
|
+
|
|
129
|
+
forced-color-adjust: none;
|
|
130
|
+
border-color: CanvasText;
|
|
131
|
+
}
|
|
132
|
+
}
|