@ultimat3/ui 1.2.0 → 2.0.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/CATALOG.md +107 -1
- package/CLAUDE.md +68 -0
- package/README.md +110 -10
- package/package.json +10 -7
- package/src/a11y.ts +10 -2
- package/src/components/Accordion.module.scss +59 -0
- package/src/components/Accordion.tsx +63 -0
- package/src/components/Avatar.tsx +9 -1
- package/src/components/Breadcrumb.tsx +2 -1
- package/src/components/Combobox.module.scss +62 -0
- package/src/components/Combobox.tsx +111 -0
- package/src/components/Dropzone.module.scss +73 -0
- package/src/components/Dropzone.tsx +108 -0
- package/src/components/ErrorState.tsx +10 -3
- package/src/components/FileInput.module.scss +91 -0
- package/src/components/FileInput.tsx +82 -0
- package/src/components/Icon.module.scss +29 -0
- package/src/components/Icon.tsx +72 -0
- package/src/components/InfiniteScroll.module.scss +43 -0
- package/src/components/InfiniteScroll.tsx +92 -0
- package/src/components/Link.tsx +8 -2
- package/src/components/Select.tsx +14 -3
- package/src/components/Textarea.tsx +10 -2
- package/src/components/accordion-view.ts +32 -0
- package/src/components/combobox-filter.ts +50 -0
- package/src/components/date-time-view.ts +11 -0
- package/src/components/file-input-view.ts +102 -0
- package/src/components/icon-glyph.ts +74 -0
- package/src/components/infinite-scroll-view.ts +30 -0
- package/src/components/link-target.ts +23 -0
- package/src/debounce.ts +55 -0
- package/src/errors.ts +36 -4
- package/src/global.scss +2 -0
- package/src/i18n-keys.ts +13 -2
- package/src/icons/LICENSE.lucide +43 -0
- package/src/icons/build-icons.ts +126 -0
- package/src/icons/glyphs/a-arrow-down.ts +11 -0
- package/src/icons/glyphs/a-arrow-up.ts +11 -0
- package/src/icons/glyphs/a-large-small.ts +11 -0
- package/src/icons/glyphs/accessibility.ts +12 -0
- package/src/icons/glyphs/activity.ts +13 -0
- package/src/icons/glyphs/ad.ts +16 -0
- package/src/icons/glyphs/air-vent.ts +11 -0
- package/src/icons/glyphs/airplay.ts +9 -0
- package/src/icons/glyphs/alarm-clock-check.ts +13 -0
- package/src/icons/glyphs/alarm-clock-minus.ts +13 -0
- package/src/icons/glyphs/alarm-clock-off.ts +13 -0
- package/src/icons/glyphs/alarm-clock-plus.ts +14 -0
- package/src/icons/glyphs/alarm-clock.ts +13 -0
- package/src/icons/glyphs/alarm-smoke.ts +12 -0
- package/src/icons/glyphs/album.ts +9 -0
- package/src/icons/glyphs/align-center-horizontal.ts +12 -0
- package/src/icons/glyphs/align-center-vertical.ts +12 -0
- package/src/icons/glyphs/align-end-horizontal.ts +10 -0
- package/src/icons/glyphs/align-end-vertical.ts +10 -0
- package/src/icons/glyphs/align-horizontal-distribute-center.ts +13 -0
- package/src/icons/glyphs/align-horizontal-distribute-end.ts +11 -0
- package/src/icons/glyphs/align-horizontal-distribute-start.ts +11 -0
- package/src/icons/glyphs/align-horizontal-justify-center.ts +10 -0
- package/src/icons/glyphs/align-horizontal-justify-end.ts +10 -0
- package/src/icons/glyphs/align-horizontal-justify-start.ts +10 -0
- package/src/icons/glyphs/align-horizontal-space-around.ts +10 -0
- package/src/icons/glyphs/align-horizontal-space-between.ts +11 -0
- package/src/icons/glyphs/align-start-horizontal.ts +10 -0
- package/src/icons/glyphs/align-start-vertical.ts +10 -0
- package/src/icons/glyphs/align-vertical-distribute-center.ts +13 -0
- package/src/icons/glyphs/align-vertical-distribute-end.ts +11 -0
- package/src/icons/glyphs/align-vertical-distribute-start.ts +11 -0
- package/src/icons/glyphs/align-vertical-justify-center.ts +10 -0
- package/src/icons/glyphs/align-vertical-justify-end.ts +10 -0
- package/src/icons/glyphs/align-vertical-justify-start.ts +10 -0
- package/src/icons/glyphs/align-vertical-space-around.ts +10 -0
- package/src/icons/glyphs/align-vertical-space-between.ts +11 -0
- package/src/icons/glyphs/ambulance.ts +19 -0
- package/src/icons/glyphs/ampersand.ts +14 -0
- package/src/icons/glyphs/ampersands.ts +15 -0
- package/src/icons/glyphs/amphora.ts +13 -0
- package/src/icons/glyphs/anchor.ts +11 -0
- package/src/icons/glyphs/angle.ts +9 -0
- package/src/icons/glyphs/antenna.ts +13 -0
- package/src/icons/glyphs/anvil.ts +12 -0
- package/src/icons/glyphs/aperture.ts +14 -0
- package/src/icons/glyphs/app-window-mac.ts +11 -0
- package/src/icons/glyphs/app-window.ts +11 -0
- package/src/icons/glyphs/apple.ts +14 -0
- package/src/icons/glyphs/archive-restore.ts +12 -0
- package/src/icons/glyphs/archive-x.ts +11 -0
- package/src/icons/glyphs/archive.ts +10 -0
- package/src/icons/glyphs/armchair.ts +16 -0
- package/src/icons/glyphs/arrow-big-down-dash.ts +14 -0
- package/src/icons/glyphs/arrow-big-down.ts +13 -0
- package/src/icons/glyphs/arrow-big-left-dash.ts +14 -0
- package/src/icons/glyphs/arrow-big-left.ts +13 -0
- package/src/icons/glyphs/arrow-big-right-dash.ts +14 -0
- package/src/icons/glyphs/arrow-big-right.ts +13 -0
- package/src/icons/glyphs/arrow-big-up-dash.ts +14 -0
- package/src/icons/glyphs/arrow-big-up.ts +13 -0
- package/src/icons/glyphs/arrow-down-0-1.ts +12 -0
- package/src/icons/glyphs/arrow-down-1-0.ts +12 -0
- package/src/icons/glyphs/arrow-down-a-z.ts +12 -0
- package/src/icons/glyphs/arrow-down-from-line.ts +10 -0
- package/src/icons/glyphs/arrow-down-left.ts +9 -0
- package/src/icons/glyphs/arrow-down-narrow-wide.ts +12 -0
- package/src/icons/glyphs/arrow-down-right.ts +9 -0
- package/src/icons/glyphs/arrow-down-to-dot.ts +10 -0
- package/src/icons/glyphs/arrow-down-to-line.ts +10 -0
- package/src/icons/glyphs/arrow-down-up.ts +11 -0
- package/src/icons/glyphs/arrow-down-wide-narrow.ts +12 -0
- package/src/icons/glyphs/arrow-down-z-a.ts +12 -0
- package/src/icons/glyphs/arrow-down.ts +9 -0
- package/src/icons/glyphs/arrow-left-from-line.ts +10 -0
- package/src/icons/glyphs/arrow-left-right.ts +11 -0
- package/src/icons/glyphs/arrow-left-to-line.ts +10 -0
- package/src/icons/glyphs/arrow-left.ts +9 -0
- package/src/icons/glyphs/arrow-right-from-line.ts +10 -0
- package/src/icons/glyphs/arrow-right-left.ts +11 -0
- package/src/icons/glyphs/arrow-right-to-line.ts +10 -0
- package/src/icons/glyphs/arrow-right.ts +9 -0
- package/src/icons/glyphs/arrow-up-0-1.ts +12 -0
- package/src/icons/glyphs/arrow-up-1-0.ts +12 -0
- package/src/icons/glyphs/arrow-up-a-z.ts +12 -0
- package/src/icons/glyphs/arrow-up-down.ts +11 -0
- package/src/icons/glyphs/arrow-up-from-dot.ts +10 -0
- package/src/icons/glyphs/arrow-up-from-line.ts +10 -0
- package/src/icons/glyphs/arrow-up-left.ts +9 -0
- package/src/icons/glyphs/arrow-up-narrow-wide.ts +12 -0
- package/src/icons/glyphs/arrow-up-right.ts +9 -0
- package/src/icons/glyphs/arrow-up-to-line.ts +10 -0
- package/src/icons/glyphs/arrow-up-wide-narrow.ts +12 -0
- package/src/icons/glyphs/arrow-up-z-a.ts +12 -0
- package/src/icons/glyphs/arrow-up.ts +9 -0
- package/src/icons/glyphs/arrows-up-from-line.ts +12 -0
- package/src/icons/glyphs/asterisk.ts +10 -0
- package/src/icons/glyphs/astroid.ts +13 -0
- package/src/icons/glyphs/at-sign.ts +9 -0
- package/src/icons/glyphs/atom.ts +20 -0
- package/src/icons/glyphs/audio-lines-x.ts +15 -0
- package/src/icons/glyphs/audio-lines.ts +13 -0
- package/src/icons/glyphs/audio-waveform.ts +13 -0
- package/src/icons/glyphs/award.ts +14 -0
- package/src/icons/glyphs/axe.ts +14 -0
- package/src/icons/glyphs/axis-3d.ts +11 -0
- package/src/icons/glyphs/baby.ts +16 -0
- package/src/icons/glyphs/backpack.ts +12 -0
- package/src/icons/glyphs/badge-alert.ts +15 -0
- package/src/icons/glyphs/badge-cent.ts +15 -0
- package/src/icons/glyphs/badge-check.ts +14 -0
- package/src/icons/glyphs/badge-dollar-sign.ts +15 -0
- package/src/icons/glyphs/badge-euro.ts +15 -0
- package/src/icons/glyphs/badge-indian-rupee.ts +16 -0
- package/src/icons/glyphs/badge-info.ts +15 -0
- package/src/icons/glyphs/badge-japanese-yen.ts +17 -0
- package/src/icons/glyphs/badge-minus.ts +14 -0
- package/src/icons/glyphs/badge-percent.ts +16 -0
- package/src/icons/glyphs/badge-plus.ts +15 -0
- package/src/icons/glyphs/badge-pound-sterling.ts +16 -0
- package/src/icons/glyphs/badge-question-mark.ts +15 -0
- package/src/icons/glyphs/badge-russian-ruble.ts +15 -0
- package/src/icons/glyphs/badge-swiss-franc.ts +16 -0
- package/src/icons/glyphs/badge-turkish-lira.ts +15 -0
- package/src/icons/glyphs/badge-x.ts +15 -0
- package/src/icons/glyphs/badge.ts +13 -0
- package/src/icons/glyphs/baggage-claim.ts +12 -0
- package/src/icons/glyphs/balloon.ts +10 -0
- package/src/icons/glyphs/ban.ts +9 -0
- package/src/icons/glyphs/banana.ts +14 -0
- package/src/icons/glyphs/bandage.ts +14 -0
- package/src/icons/glyphs/banknote-arrow-down.ts +13 -0
- package/src/icons/glyphs/banknote-arrow-up.ts +13 -0
- package/src/icons/glyphs/banknote-check.ts +12 -0
- package/src/icons/glyphs/banknote-x.ts +13 -0
- package/src/icons/glyphs/banknote.ts +10 -0
- package/src/icons/glyphs/barcode.ts +12 -0
- package/src/icons/glyphs/barrel.ts +17 -0
- package/src/icons/glyphs/baseline.ts +10 -0
- package/src/icons/glyphs/bath.ts +12 -0
- package/src/icons/glyphs/battery-charging.ts +11 -0
- package/src/icons/glyphs/battery-full.ts +12 -0
- package/src/icons/glyphs/battery-low.ts +10 -0
- package/src/icons/glyphs/battery-medium.ts +11 -0
- package/src/icons/glyphs/battery-plus.ts +12 -0
- package/src/icons/glyphs/battery-warning.ts +12 -0
- package/src/icons/glyphs/battery.ts +9 -0
- package/src/icons/glyphs/beaker.ts +10 -0
- package/src/icons/glyphs/bean-off.ts +11 -0
- package/src/icons/glyphs/bean.ts +14 -0
- package/src/icons/glyphs/bed-double.ts +11 -0
- package/src/icons/glyphs/bed-single.ts +10 -0
- package/src/icons/glyphs/bed.ts +11 -0
- package/src/icons/glyphs/beef-off.ts +18 -0
- package/src/icons/glyphs/beef.ts +20 -0
- package/src/icons/glyphs/beer-off.ts +20 -0
- package/src/icons/glyphs/beer.ts +17 -0
- package/src/icons/glyphs/bell-check.ts +16 -0
- package/src/icons/glyphs/bell-dot.ts +15 -0
- package/src/icons/glyphs/bell-electric.ts +13 -0
- package/src/icons/glyphs/bell-minus.ts +15 -0
- package/src/icons/glyphs/bell-off.ts +11 -0
- package/src/icons/glyphs/bell-plus.ts +16 -0
- package/src/icons/glyphs/bell-ring.ts +16 -0
- package/src/icons/glyphs/bell.ts +14 -0
- package/src/icons/glyphs/between-horizontal-end.ts +10 -0
- package/src/icons/glyphs/between-horizontal-start.ts +10 -0
- package/src/icons/glyphs/between-vertical-end.ts +10 -0
- package/src/icons/glyphs/between-vertical-start.ts +10 -0
- package/src/icons/glyphs/biceps-flexed.ts +15 -0
- package/src/icons/glyphs/bike.ts +11 -0
- package/src/icons/glyphs/binary.ts +13 -0
- package/src/icons/glyphs/binoculars.ts +23 -0
- package/src/icons/glyphs/biohazard.ts +17 -0
- package/src/icons/glyphs/bird.ts +13 -0
- package/src/icons/glyphs/birdhouse.ts +13 -0
- package/src/icons/glyphs/bitcoin.ts +13 -0
- package/src/icons/glyphs/blend.ts +9 -0
- package/src/icons/glyphs/blender.ts +18 -0
- package/src/icons/glyphs/blinds.ts +14 -0
- package/src/icons/glyphs/blocks.ts +14 -0
- package/src/icons/glyphs/bluetooth-connected.ts +10 -0
- package/src/icons/glyphs/bluetooth-off.ts +10 -0
- package/src/icons/glyphs/bluetooth-searching.ts +10 -0
- package/src/icons/glyphs/bluetooth.ts +6 -0
- package/src/icons/glyphs/bold.ts +8 -0
- package/src/icons/glyphs/bolt.ts +14 -0
- package/src/icons/glyphs/bomb.ts +13 -0
- package/src/icons/glyphs/bone-fracture.ts +23 -0
- package/src/icons/glyphs/bone.ts +13 -0
- package/src/icons/glyphs/book-a.ts +13 -0
- package/src/icons/glyphs/book-alert.ts +13 -0
- package/src/icons/glyphs/book-audio.ts +14 -0
- package/src/icons/glyphs/book-check.ts +12 -0
- package/src/icons/glyphs/book-copy.ts +13 -0
- package/src/icons/glyphs/book-dashed.ts +18 -0
- package/src/icons/glyphs/book-down.ts +13 -0
- package/src/icons/glyphs/book-headphones.ts +14 -0
- package/src/icons/glyphs/book-heart.ts +17 -0
- package/src/icons/glyphs/book-image.ts +13 -0
- package/src/icons/glyphs/book-key.ts +12 -0
- package/src/icons/glyphs/book-lock.ts +11 -0
- package/src/icons/glyphs/book-marked.ts +12 -0
- package/src/icons/glyphs/book-minus.ts +12 -0
- package/src/icons/glyphs/book-open-check.ts +15 -0
- package/src/icons/glyphs/book-open-text.ts +18 -0
- package/src/icons/glyphs/book-open.ts +14 -0
- package/src/icons/glyphs/book-plus.ts +13 -0
- package/src/icons/glyphs/book-search.ts +11 -0
- package/src/icons/glyphs/book-text.ts +13 -0
- package/src/icons/glyphs/book-type.ts +14 -0
- package/src/icons/glyphs/book-up-2.ts +12 -0
- package/src/icons/glyphs/book-up.ts +13 -0
- package/src/icons/glyphs/book-user.ts +13 -0
- package/src/icons/glyphs/book-x.ts +13 -0
- package/src/icons/glyphs/book.ts +11 -0
- package/src/icons/glyphs/bookmark-check.ts +14 -0
- package/src/icons/glyphs/bookmark-minus.ts +14 -0
- package/src/icons/glyphs/bookmark-off.ts +15 -0
- package/src/icons/glyphs/bookmark-plus.ts +15 -0
- package/src/icons/glyphs/bookmark-x.ts +15 -0
- package/src/icons/glyphs/bookmark.ts +13 -0
- package/src/icons/glyphs/boom-box.ts +14 -0
- package/src/icons/glyphs/bot-message-square.ts +18 -0
- package/src/icons/glyphs/bot-off.ts +14 -0
- package/src/icons/glyphs/bot.ts +13 -0
- package/src/icons/glyphs/bottle-wine.ts +14 -0
- package/src/icons/glyphs/bow-arrow.ts +17 -0
- package/src/icons/glyphs/box.ts +15 -0
- package/src/icons/glyphs/boxes.ts +34 -0
- package/src/icons/glyphs/braces.ts +9 -0
- package/src/icons/glyphs/brackets.ts +9 -0
- package/src/icons/glyphs/brain-circuit.ts +23 -0
- package/src/icons/glyphs/brain-cog.ts +30 -0
- package/src/icons/glyphs/brain.ts +15 -0
- package/src/icons/glyphs/brick-wall-fire.ts +19 -0
- package/src/icons/glyphs/brick-wall-shield.ts +20 -0
- package/src/icons/glyphs/brick-wall.ts +15 -0
- package/src/icons/glyphs/briefcase-business.ts +11 -0
- package/src/icons/glyphs/briefcase-conveyor-belt.ts +14 -0
- package/src/icons/glyphs/briefcase-medical.ts +13 -0
- package/src/icons/glyphs/briefcase.ts +9 -0
- package/src/icons/glyphs/bring-to-front.ts +10 -0
- package/src/icons/glyphs/broccoli.ts +21 -0
- package/src/icons/glyphs/broom-sparkles.ts +22 -0
- package/src/icons/glyphs/broom.ts +16 -0
- package/src/icons/glyphs/brush-cleaning.ts +16 -0
- package/src/icons/glyphs/brush.ts +10 -0
- package/src/icons/glyphs/bubbles.ts +11 -0
- package/src/icons/glyphs/bug-off.ts +19 -0
- package/src/icons/glyphs/bug-play.ts +21 -0
- package/src/icons/glyphs/bug.ts +18 -0
- package/src/icons/glyphs/building-2.ts +12 -0
- package/src/icons/glyphs/building.ts +18 -0
- package/src/icons/glyphs/bus-front.ts +16 -0
- package/src/icons/glyphs/bus.ts +19 -0
- package/src/icons/glyphs/cable-car.ts +15 -0
- package/src/icons/glyphs/cable.ts +14 -0
- package/src/icons/glyphs/cake-slice.ts +16 -0
- package/src/icons/glyphs/cake.ts +16 -0
- package/src/icons/glyphs/calculator.ts +17 -0
- package/src/icons/glyphs/calendar-1.ts +12 -0
- package/src/icons/glyphs/calendar-arrow-down.ts +13 -0
- package/src/icons/glyphs/calendar-arrow-up.ts +13 -0
- package/src/icons/glyphs/calendar-check-2.ts +18 -0
- package/src/icons/glyphs/calendar-check.ts +12 -0
- package/src/icons/glyphs/calendar-clock.ts +13 -0
- package/src/icons/glyphs/calendar-cog.ts +20 -0
- package/src/icons/glyphs/calendar-days.ts +17 -0
- package/src/icons/glyphs/calendar-fold.ts +16 -0
- package/src/icons/glyphs/calendar-heart.ts +17 -0
- package/src/icons/glyphs/calendar-minus-2.ts +12 -0
- package/src/icons/glyphs/calendar-minus.ts +12 -0
- package/src/icons/glyphs/calendar-off.ts +13 -0
- package/src/icons/glyphs/calendar-plus-2.ts +13 -0
- package/src/icons/glyphs/calendar-plus.ts +13 -0
- package/src/icons/glyphs/calendar-range.ts +15 -0
- package/src/icons/glyphs/calendar-search.ts +13 -0
- package/src/icons/glyphs/calendar-sync.ts +15 -0
- package/src/icons/glyphs/calendar-x-2.ts +13 -0
- package/src/icons/glyphs/calendar-x.ts +13 -0
- package/src/icons/glyphs/calendar.ts +11 -0
- package/src/icons/glyphs/calendars.ts +13 -0
- package/src/icons/glyphs/camera-off.ts +16 -0
- package/src/icons/glyphs/camera.ts +14 -0
- package/src/icons/glyphs/candy-cane.ts +15 -0
- package/src/icons/glyphs/candy-off.ts +24 -0
- package/src/icons/glyphs/candy.ts +27 -0
- package/src/icons/glyphs/cannabis-off.ts +18 -0
- package/src/icons/glyphs/cannabis.ts +14 -0
- package/src/icons/glyphs/captions-off.ts +13 -0
- package/src/icons/glyphs/captions.ts +9 -0
- package/src/icons/glyphs/car-front.ts +13 -0
- package/src/icons/glyphs/car-taxi-front.ts +14 -0
- package/src/icons/glyphs/car.ts +16 -0
- package/src/icons/glyphs/caravan.ts +11 -0
- package/src/icons/glyphs/card-sim.ts +16 -0
- package/src/icons/glyphs/carrot.ts +10 -0
- package/src/icons/glyphs/case-lower.ts +11 -0
- package/src/icons/glyphs/case-sensitive.ts +11 -0
- package/src/icons/glyphs/case-upper.ts +13 -0
- package/src/icons/glyphs/cassette-tape.ts +12 -0
- package/src/icons/glyphs/cast.ts +11 -0
- package/src/icons/glyphs/castle.ts +15 -0
- package/src/icons/glyphs/cat.ts +16 -0
- package/src/icons/glyphs/cctv-off.ts +23 -0
- package/src/icons/glyphs/cctv.ts +20 -0
- package/src/icons/glyphs/chart-area.ts +14 -0
- package/src/icons/glyphs/chart-bar-big.ts +10 -0
- package/src/icons/glyphs/chart-bar-decreasing.ts +11 -0
- package/src/icons/glyphs/chart-bar-increasing.ts +11 -0
- package/src/icons/glyphs/chart-bar-stacked.ts +12 -0
- package/src/icons/glyphs/chart-bar.ts +11 -0
- package/src/icons/glyphs/chart-candlestick.ts +14 -0
- package/src/icons/glyphs/chart-column-big.ts +10 -0
- package/src/icons/glyphs/chart-column-decreasing.ts +11 -0
- package/src/icons/glyphs/chart-column-increasing.ts +11 -0
- package/src/icons/glyphs/chart-column-stacked.ts +12 -0
- package/src/icons/glyphs/chart-column.ts +11 -0
- package/src/icons/glyphs/chart-gantt.ts +11 -0
- package/src/icons/glyphs/chart-line.ts +9 -0
- package/src/icons/glyphs/chart-network.ts +14 -0
- package/src/icons/glyphs/chart-no-axes-column-decreasing.ts +10 -0
- package/src/icons/glyphs/chart-no-axes-column-increasing.ts +10 -0
- package/src/icons/glyphs/chart-no-axes-column.ts +10 -0
- package/src/icons/glyphs/chart-no-axes-combined.ts +13 -0
- package/src/icons/glyphs/chart-no-axes-gantt.ts +10 -0
- package/src/icons/glyphs/chart-pie.ts +14 -0
- package/src/icons/glyphs/chart-scatter.ts +13 -0
- package/src/icons/glyphs/chart-spline.ts +9 -0
- package/src/icons/glyphs/check-check.ts +9 -0
- package/src/icons/glyphs/check-line.ts +10 -0
- package/src/icons/glyphs/check.ts +6 -0
- package/src/icons/glyphs/chef-hat.ts +14 -0
- package/src/icons/glyphs/cherry.ts +11 -0
- package/src/icons/glyphs/chess-bishop.ts +16 -0
- package/src/icons/glyphs/chess-king.ts +16 -0
- package/src/icons/glyphs/chess-knight.ts +17 -0
- package/src/icons/glyphs/chess-pawn.ts +12 -0
- package/src/icons/glyphs/chess-queen.ts +15 -0
- package/src/icons/glyphs/chess-rook.ts +14 -0
- package/src/icons/glyphs/chevron-down.ts +6 -0
- package/src/icons/glyphs/chevron-first.ts +9 -0
- package/src/icons/glyphs/chevron-last.ts +9 -0
- package/src/icons/glyphs/chevron-left.ts +6 -0
- package/src/icons/glyphs/chevron-right.ts +6 -0
- package/src/icons/glyphs/chevron-up.ts +6 -0
- package/src/icons/glyphs/chevrons-down-up.ts +9 -0
- package/src/icons/glyphs/chevrons-down.ts +9 -0
- package/src/icons/glyphs/chevrons-left-right-ellipsis.ts +12 -0
- package/src/icons/glyphs/chevrons-left-right.ts +9 -0
- package/src/icons/glyphs/chevrons-left.ts +9 -0
- package/src/icons/glyphs/chevrons-right-left.ts +9 -0
- package/src/icons/glyphs/chevrons-right.ts +9 -0
- package/src/icons/glyphs/chevrons-up-down.ts +9 -0
- package/src/icons/glyphs/chevrons-up.ts +9 -0
- package/src/icons/glyphs/church.ts +17 -0
- package/src/icons/glyphs/cigarette-off.ts +13 -0
- package/src/icons/glyphs/cigarette.ts +12 -0
- package/src/icons/glyphs/circle-alert.ts +10 -0
- package/src/icons/glyphs/circle-arrow-down.ts +10 -0
- package/src/icons/glyphs/circle-arrow-left.ts +10 -0
- package/src/icons/glyphs/circle-arrow-out-down-left.ts +10 -0
- package/src/icons/glyphs/circle-arrow-out-down-right.ts +10 -0
- package/src/icons/glyphs/circle-arrow-out-up-left.ts +10 -0
- package/src/icons/glyphs/circle-arrow-out-up-right.ts +10 -0
- package/src/icons/glyphs/circle-arrow-right.ts +10 -0
- package/src/icons/glyphs/circle-arrow-up.ts +10 -0
- package/src/icons/glyphs/circle-check-big.ts +9 -0
- package/src/icons/glyphs/circle-check.ts +9 -0
- package/src/icons/glyphs/circle-chevron-down.ts +9 -0
- package/src/icons/glyphs/circle-chevron-left.ts +9 -0
- package/src/icons/glyphs/circle-chevron-right.ts +9 -0
- package/src/icons/glyphs/circle-chevron-up.ts +9 -0
- package/src/icons/glyphs/circle-dashed.ts +15 -0
- package/src/icons/glyphs/circle-divide.ts +11 -0
- package/src/icons/glyphs/circle-dollar-sign.ts +10 -0
- package/src/icons/glyphs/circle-dot-dashed.ts +16 -0
- package/src/icons/glyphs/circle-dot.ts +9 -0
- package/src/icons/glyphs/circle-ellipsis.ts +11 -0
- package/src/icons/glyphs/circle-equal.ts +10 -0
- package/src/icons/glyphs/circle-euro.ts +10 -0
- package/src/icons/glyphs/circle-fading-arrow-up.ts +14 -0
- package/src/icons/glyphs/circle-fading-plus.ts +14 -0
- package/src/icons/glyphs/circle-gauge.ts +10 -0
- package/src/icons/glyphs/circle-minus.ts +9 -0
- package/src/icons/glyphs/circle-off.ts +10 -0
- package/src/icons/glyphs/circle-parking-off.ts +13 -0
- package/src/icons/glyphs/circle-parking.ts +9 -0
- package/src/icons/glyphs/circle-pause.ts +10 -0
- package/src/icons/glyphs/circle-percent.ts +11 -0
- package/src/icons/glyphs/circle-pile.ts +13 -0
- package/src/icons/glyphs/circle-play.ts +14 -0
- package/src/icons/glyphs/circle-plus.ts +10 -0
- package/src/icons/glyphs/circle-pound-sterling.ts +11 -0
- package/src/icons/glyphs/circle-power.ts +10 -0
- package/src/icons/glyphs/circle-question-mark.ts +10 -0
- package/src/icons/glyphs/circle-slash-2.ts +9 -0
- package/src/icons/glyphs/circle-slash.ts +9 -0
- package/src/icons/glyphs/circle-small.ts +6 -0
- package/src/icons/glyphs/circle-star.ts +14 -0
- package/src/icons/glyphs/circle-stop.ts +9 -0
- package/src/icons/glyphs/circle-user-round.ts +10 -0
- package/src/icons/glyphs/circle-user.ts +10 -0
- package/src/icons/glyphs/circle-x.ts +10 -0
- package/src/icons/glyphs/circle.ts +6 -0
- package/src/icons/glyphs/circuit-board.ts +12 -0
- package/src/icons/glyphs/citrus.ts +14 -0
- package/src/icons/glyphs/clapperboard.ts +11 -0
- package/src/icons/glyphs/clipboard-check.ts +10 -0
- package/src/icons/glyphs/clipboard-clock.ts +12 -0
- package/src/icons/glyphs/clipboard-copy.ts +12 -0
- package/src/icons/glyphs/clipboard-list.ts +13 -0
- package/src/icons/glyphs/clipboard-minus.ts +10 -0
- package/src/icons/glyphs/clipboard-paste.ts +12 -0
- package/src/icons/glyphs/clipboard-pen-line.ts +17 -0
- package/src/icons/glyphs/clipboard-pen.ts +16 -0
- package/src/icons/glyphs/clipboard-plus.ts +11 -0
- package/src/icons/glyphs/clipboard-type.ts +12 -0
- package/src/icons/glyphs/clipboard-x.ts +11 -0
- package/src/icons/glyphs/clipboard.ts +9 -0
- package/src/icons/glyphs/clock-1.ts +9 -0
- package/src/icons/glyphs/clock-10.ts +9 -0
- package/src/icons/glyphs/clock-11.ts +9 -0
- package/src/icons/glyphs/clock-12.ts +9 -0
- package/src/icons/glyphs/clock-2.ts +9 -0
- package/src/icons/glyphs/clock-3.ts +9 -0
- package/src/icons/glyphs/clock-4.ts +9 -0
- package/src/icons/glyphs/clock-5.ts +9 -0
- package/src/icons/glyphs/clock-6.ts +9 -0
- package/src/icons/glyphs/clock-7.ts +9 -0
- package/src/icons/glyphs/clock-8.ts +9 -0
- package/src/icons/glyphs/clock-9.ts +9 -0
- package/src/icons/glyphs/clock-alert.ts +11 -0
- package/src/icons/glyphs/clock-arrow-down.ts +11 -0
- package/src/icons/glyphs/clock-arrow-left.ts +11 -0
- package/src/icons/glyphs/clock-arrow-right.ts +11 -0
- package/src/icons/glyphs/clock-arrow-up.ts +11 -0
- package/src/icons/glyphs/clock-check.ts +10 -0
- package/src/icons/glyphs/clock-fading.ts +13 -0
- package/src/icons/glyphs/clock-plus.ts +11 -0
- package/src/icons/glyphs/clock.ts +9 -0
- package/src/icons/glyphs/closed-caption.ts +10 -0
- package/src/icons/glyphs/cloud-alert.ts +10 -0
- package/src/icons/glyphs/cloud-backup.ts +10 -0
- package/src/icons/glyphs/cloud-check.ts +9 -0
- package/src/icons/glyphs/cloud-cog.ts +16 -0
- package/src/icons/glyphs/cloud-download.ts +10 -0
- package/src/icons/glyphs/cloud-drizzle.ts +14 -0
- package/src/icons/glyphs/cloud-fog.ts +10 -0
- package/src/icons/glyphs/cloud-hail.ts +14 -0
- package/src/icons/glyphs/cloud-lightning.ts +9 -0
- package/src/icons/glyphs/cloud-moon-rain.ts +16 -0
- package/src/icons/glyphs/cloud-moon.ts +14 -0
- package/src/icons/glyphs/cloud-off.ts +10 -0
- package/src/icons/glyphs/cloud-rain-wind.ts +11 -0
- package/src/icons/glyphs/cloud-rain.ts +11 -0
- package/src/icons/glyphs/cloud-snow.ts +14 -0
- package/src/icons/glyphs/cloud-sun-rain.ts +15 -0
- package/src/icons/glyphs/cloud-sun.ts +13 -0
- package/src/icons/glyphs/cloud-sync.ts +12 -0
- package/src/icons/glyphs/cloud-upload.ts +10 -0
- package/src/icons/glyphs/cloud.ts +8 -0
- package/src/icons/glyphs/cloudy.ts +9 -0
- package/src/icons/glyphs/clover.ts +15 -0
- package/src/icons/glyphs/club.ts +12 -0
- package/src/icons/glyphs/code-xml.ts +10 -0
- package/src/icons/glyphs/code.ts +9 -0
- package/src/icons/glyphs/coffee.ts +16 -0
- package/src/icons/glyphs/cog.ts +21 -0
- package/src/icons/glyphs/coins.ts +11 -0
- package/src/icons/glyphs/columns-2.ts +9 -0
- package/src/icons/glyphs/columns-3-cog.ts +19 -0
- package/src/icons/glyphs/columns-3.ts +10 -0
- package/src/icons/glyphs/columns-4.ts +11 -0
- package/src/icons/glyphs/combine.ts +13 -0
- package/src/icons/glyphs/command.ts +8 -0
- package/src/icons/glyphs/compass.ts +14 -0
- package/src/icons/glyphs/component.ts +31 -0
- package/src/icons/glyphs/computer.ts +11 -0
- package/src/icons/glyphs/concierge-bell.ts +11 -0
- package/src/icons/glyphs/cone.ts +9 -0
- package/src/icons/glyphs/construction.ts +15 -0
- package/src/icons/glyphs/contact-round.ts +12 -0
- package/src/icons/glyphs/contact.ts +12 -0
- package/src/icons/glyphs/container.ts +17 -0
- package/src/icons/glyphs/contrast.ts +9 -0
- package/src/icons/glyphs/cookie.ts +13 -0
- package/src/icons/glyphs/cooking-pot.ts +11 -0
- package/src/icons/glyphs/copy-check.ts +10 -0
- package/src/icons/glyphs/copy-minus.ts +10 -0
- package/src/icons/glyphs/copy-plus.ts +11 -0
- package/src/icons/glyphs/copy-slash.ts +10 -0
- package/src/icons/glyphs/copy-x.ts +11 -0
- package/src/icons/glyphs/copy.ts +9 -0
- package/src/icons/glyphs/copyleft.ts +9 -0
- package/src/icons/glyphs/copyright.ts +9 -0
- package/src/icons/glyphs/corner-down-left.ts +9 -0
- package/src/icons/glyphs/corner-down-right.ts +9 -0
- package/src/icons/glyphs/corner-left-down.ts +9 -0
- package/src/icons/glyphs/corner-left-up.ts +9 -0
- package/src/icons/glyphs/corner-right-down.ts +9 -0
- package/src/icons/glyphs/corner-right-up.ts +9 -0
- package/src/icons/glyphs/corner-up-left.ts +9 -0
- package/src/icons/glyphs/corner-up-right.ts +9 -0
- package/src/icons/glyphs/cpu.ts +21 -0
- package/src/icons/glyphs/creative-commons.ts +10 -0
- package/src/icons/glyphs/credit-card.ts +9 -0
- package/src/icons/glyphs/croissant.ts +17 -0
- package/src/icons/glyphs/crop.ts +9 -0
- package/src/icons/glyphs/cross.ts +13 -0
- package/src/icons/glyphs/crosshair.ts +12 -0
- package/src/icons/glyphs/crown.ts +14 -0
- package/src/icons/glyphs/cuboid.ts +15 -0
- package/src/icons/glyphs/cup-soda.ts +11 -0
- package/src/icons/glyphs/currency.ts +12 -0
- package/src/icons/glyphs/cylinder.ts +9 -0
- package/src/icons/glyphs/dam.ts +14 -0
- package/src/icons/glyphs/database-arrow-down.ts +13 -0
- package/src/icons/glyphs/database-arrow-up.ts +13 -0
- package/src/icons/glyphs/database-backup.ts +13 -0
- package/src/icons/glyphs/database-check.ts +12 -0
- package/src/icons/glyphs/database-minus.ts +12 -0
- package/src/icons/glyphs/database-plus.ts +13 -0
- package/src/icons/glyphs/database-search.ts +13 -0
- package/src/icons/glyphs/database-x.ts +14 -0
- package/src/icons/glyphs/database-zap.ts +12 -0
- package/src/icons/glyphs/database.ts +10 -0
- package/src/icons/glyphs/decimals-arrow-left.ts +11 -0
- package/src/icons/glyphs/decimals-arrow-right.ts +12 -0
- package/src/icons/glyphs/delete.ts +15 -0
- package/src/icons/glyphs/dessert.ts +15 -0
- package/src/icons/glyphs/diameter.ts +12 -0
- package/src/icons/glyphs/diamond-minus.ts +14 -0
- package/src/icons/glyphs/diamond-percent.ts +16 -0
- package/src/icons/glyphs/diamond-plus.ts +15 -0
- package/src/icons/glyphs/diamond.ts +13 -0
- package/src/icons/glyphs/dice-1.ts +9 -0
- package/src/icons/glyphs/dice-2.ts +10 -0
- package/src/icons/glyphs/dice-3.ts +11 -0
- package/src/icons/glyphs/dice-4.ts +12 -0
- package/src/icons/glyphs/dice-5.ts +13 -0
- package/src/icons/glyphs/dice-6.ts +14 -0
- package/src/icons/glyphs/dices.ts +13 -0
- package/src/icons/glyphs/diff.ts +10 -0
- package/src/icons/glyphs/disc-2.ts +10 -0
- package/src/icons/glyphs/disc-3.ts +11 -0
- package/src/icons/glyphs/disc-album.ts +10 -0
- package/src/icons/glyphs/disc.ts +9 -0
- package/src/icons/glyphs/divide.ts +10 -0
- package/src/icons/glyphs/dna-off.ts +17 -0
- package/src/icons/glyphs/dna.ts +18 -0
- package/src/icons/glyphs/dock.ts +10 -0
- package/src/icons/glyphs/dog.ts +22 -0
- package/src/icons/glyphs/dollar-sign.ts +9 -0
- package/src/icons/glyphs/donut.ts +14 -0
- package/src/icons/glyphs/door-closed-locked.ts +12 -0
- package/src/icons/glyphs/door-closed.ts +10 -0
- package/src/icons/glyphs/door-open.ts +17 -0
- package/src/icons/glyphs/dot.ts +6 -0
- package/src/icons/glyphs/download.ts +10 -0
- package/src/icons/glyphs/drafting-compass.ts +12 -0
- package/src/icons/glyphs/drama.ts +20 -0
- package/src/icons/glyphs/drill.ts +18 -0
- package/src/icons/glyphs/drone.ts +16 -0
- package/src/icons/glyphs/droplet-off.ts +15 -0
- package/src/icons/glyphs/droplet.ts +13 -0
- package/src/icons/glyphs/droplets.ts +19 -0
- package/src/icons/glyphs/drum.ts +14 -0
- package/src/icons/glyphs/drumstick.ts +9 -0
- package/src/icons/glyphs/dumbbell.ts +22 -0
- package/src/icons/glyphs/ear-off.ts +12 -0
- package/src/icons/glyphs/ear.ts +9 -0
- package/src/icons/glyphs/earth-lock.ts +13 -0
- package/src/icons/glyphs/earth.ts +14 -0
- package/src/icons/glyphs/eclipse.ts +9 -0
- package/src/icons/glyphs/egg-fried.ts +14 -0
- package/src/icons/glyphs/egg-off.ts +10 -0
- package/src/icons/glyphs/egg.ts +8 -0
- package/src/icons/glyphs/eject.ts +12 -0
- package/src/icons/glyphs/ellipse.ts +6 -0
- package/src/icons/glyphs/ellipsis-vertical.ts +10 -0
- package/src/icons/glyphs/ellipsis.ts +10 -0
- package/src/icons/glyphs/equal-approximately.ts +9 -0
- package/src/icons/glyphs/equal-not.ts +10 -0
- package/src/icons/glyphs/equal.ts +9 -0
- package/src/icons/glyphs/eraser.ts +14 -0
- package/src/icons/glyphs/ethernet-port.ts +17 -0
- package/src/icons/glyphs/euro.ts +13 -0
- package/src/icons/glyphs/ev-charger.ts +12 -0
- package/src/icons/glyphs/expand.ts +15 -0
- package/src/icons/glyphs/external-link.ts +10 -0
- package/src/icons/glyphs/eye-closed.ts +12 -0
- package/src/icons/glyphs/eye-dashed.ts +16 -0
- package/src/icons/glyphs/eye-off.ts +21 -0
- package/src/icons/glyphs/eye.ts +14 -0
- package/src/icons/glyphs/face-angry.ts +13 -0
- package/src/icons/glyphs/face-expressionless.ts +11 -0
- package/src/icons/glyphs/face-grinning.ts +14 -0
- package/src/icons/glyphs/face-neutral.ts +11 -0
- package/src/icons/glyphs/face-slightly-frowning.ts +11 -0
- package/src/icons/glyphs/face-slightly-smiling-plus.ts +13 -0
- package/src/icons/glyphs/face-slightly-smiling.ts +11 -0
- package/src/icons/glyphs/factory.ts +16 -0
- package/src/icons/glyphs/fan.ts +14 -0
- package/src/icons/glyphs/fast-forward.ts +9 -0
- package/src/icons/glyphs/feather.ts +15 -0
- package/src/icons/glyphs/fence.ts +14 -0
- package/src/icons/glyphs/ferris-wheel.ts +16 -0
- package/src/icons/glyphs/file-archive.ts +18 -0
- package/src/icons/glyphs/file-axis-3d.ts +16 -0
- package/src/icons/glyphs/file-badge.ts +21 -0
- package/src/icons/glyphs/file-box.ts +22 -0
- package/src/icons/glyphs/file-braces-corner.ts +16 -0
- package/src/icons/glyphs/file-braces.ts +16 -0
- package/src/icons/glyphs/file-chart-column-increasing.ts +17 -0
- package/src/icons/glyphs/file-chart-column.ts +17 -0
- package/src/icons/glyphs/file-chart-line.ts +15 -0
- package/src/icons/glyphs/file-chart-pie.ts +21 -0
- package/src/icons/glyphs/file-check-corner.ts +15 -0
- package/src/icons/glyphs/file-check.ts +15 -0
- package/src/icons/glyphs/file-clock.ts +16 -0
- package/src/icons/glyphs/file-code-corner.ts +16 -0
- package/src/icons/glyphs/file-code.ts +16 -0
- package/src/icons/glyphs/file-cog.ts +19 -0
- package/src/icons/glyphs/file-diff.ts +16 -0
- package/src/icons/glyphs/file-digit.ts +17 -0
- package/src/icons/glyphs/file-down.ts +16 -0
- package/src/icons/glyphs/file-exclamation-point.ts +15 -0
- package/src/icons/glyphs/file-headphone.ts +18 -0
- package/src/icons/glyphs/file-heart.ts +20 -0
- package/src/icons/glyphs/file-image.ts +16 -0
- package/src/icons/glyphs/file-input.ts +16 -0
- package/src/icons/glyphs/file-key.ts +17 -0
- package/src/icons/glyphs/file-lock.ts +16 -0
- package/src/icons/glyphs/file-minus-corner.ts +15 -0
- package/src/icons/glyphs/file-minus.ts +15 -0
- package/src/icons/glyphs/file-music.ts +16 -0
- package/src/icons/glyphs/file-output.ts +16 -0
- package/src/icons/glyphs/file-pen-line.ts +21 -0
- package/src/icons/glyphs/file-pen.ts +20 -0
- package/src/icons/glyphs/file-play.ts +20 -0
- package/src/icons/glyphs/file-plus-corner.ts +16 -0
- package/src/icons/glyphs/file-plus.ts +16 -0
- package/src/icons/glyphs/file-question-mark.ts +15 -0
- package/src/icons/glyphs/file-scan.ts +18 -0
- package/src/icons/glyphs/file-search-corner.ts +16 -0
- package/src/icons/glyphs/file-search.ts +16 -0
- package/src/icons/glyphs/file-signal.ts +17 -0
- package/src/icons/glyphs/file-sliders.ts +18 -0
- package/src/icons/glyphs/file-spreadsheet.ts +18 -0
- package/src/icons/glyphs/file-stack.ts +15 -0
- package/src/icons/glyphs/file-symlink.ts +15 -0
- package/src/icons/glyphs/file-terminal.ts +16 -0
- package/src/icons/glyphs/file-text.ts +17 -0
- package/src/icons/glyphs/file-type-corner.ts +17 -0
- package/src/icons/glyphs/file-type.ts +17 -0
- package/src/icons/glyphs/file-up.ts +16 -0
- package/src/icons/glyphs/file-user.ts +16 -0
- package/src/icons/glyphs/file-video-camera.ts +19 -0
- package/src/icons/glyphs/file-volume.ts +21 -0
- package/src/icons/glyphs/file-x-corner.ts +16 -0
- package/src/icons/glyphs/file-x.ts +16 -0
- package/src/icons/glyphs/file.ts +14 -0
- package/src/icons/glyphs/files.ts +10 -0
- package/src/icons/glyphs/film.ts +15 -0
- package/src/icons/glyphs/fingerprint-pattern.ts +16 -0
- package/src/icons/glyphs/fire-extinguisher.ts +13 -0
- package/src/icons/glyphs/fish-off.ts +25 -0
- package/src/icons/glyphs/fish-symbol.ts +6 -0
- package/src/icons/glyphs/fish.ts +23 -0
- package/src/icons/glyphs/fishing-hook.ts +10 -0
- package/src/icons/glyphs/fishing-rod.ts +10 -0
- package/src/icons/glyphs/flag-off.ts +11 -0
- package/src/icons/glyphs/flag-triangle-left.ts +8 -0
- package/src/icons/glyphs/flag-triangle-right.ts +8 -0
- package/src/icons/glyphs/flag.ts +13 -0
- package/src/icons/glyphs/flame-kindling.ts +15 -0
- package/src/icons/glyphs/flame.ts +13 -0
- package/src/icons/glyphs/flashlight-off.ts +15 -0
- package/src/icons/glyphs/flashlight.ts +15 -0
- package/src/icons/glyphs/flask-conical-off.ts +13 -0
- package/src/icons/glyphs/flask-conical.ts +15 -0
- package/src/icons/glyphs/flask-round.ts +10 -0
- package/src/icons/glyphs/flip-horizontal-2.ts +13 -0
- package/src/icons/glyphs/flip-vertical-2.ts +13 -0
- package/src/icons/glyphs/flower-2.ts +17 -0
- package/src/icons/glyphs/flower.ts +22 -0
- package/src/icons/glyphs/focus.ts +12 -0
- package/src/icons/glyphs/fold-horizontal.ts +15 -0
- package/src/icons/glyphs/fold-vertical.ts +15 -0
- package/src/icons/glyphs/folder-archive.ts +16 -0
- package/src/icons/glyphs/folder-bookmark.ts +14 -0
- package/src/icons/glyphs/folder-check.ts +14 -0
- package/src/icons/glyphs/folder-clock.ts +15 -0
- package/src/icons/glyphs/folder-closed.ts +14 -0
- package/src/icons/glyphs/folder-code.ts +15 -0
- package/src/icons/glyphs/folder-cog.ts +22 -0
- package/src/icons/glyphs/folder-dot.ts +14 -0
- package/src/icons/glyphs/folder-down.ts +15 -0
- package/src/icons/glyphs/folder-git-2.ts +16 -0
- package/src/icons/glyphs/folder-git.ts +16 -0
- package/src/icons/glyphs/folder-heart.ts +19 -0
- package/src/icons/glyphs/folder-input.ts +15 -0
- package/src/icons/glyphs/folder-kanban.ts +16 -0
- package/src/icons/glyphs/folder-key.ts +16 -0
- package/src/icons/glyphs/folder-lock.ts +15 -0
- package/src/icons/glyphs/folder-minus.ts +14 -0
- package/src/icons/glyphs/folder-open-dot.ts +14 -0
- package/src/icons/glyphs/folder-open.ts +13 -0
- package/src/icons/glyphs/folder-output.ts +15 -0
- package/src/icons/glyphs/folder-pen.ts +19 -0
- package/src/icons/glyphs/folder-plus.ts +15 -0
- package/src/icons/glyphs/folder-root.ts +15 -0
- package/src/icons/glyphs/folder-search-2.ts +15 -0
- package/src/icons/glyphs/folder-search.ts +15 -0
- package/src/icons/glyphs/folder-symlink.ts +14 -0
- package/src/icons/glyphs/folder-sync.ts +17 -0
- package/src/icons/glyphs/folder-tree.ts +21 -0
- package/src/icons/glyphs/folder-up.ts +15 -0
- package/src/icons/glyphs/folder-x.ts +15 -0
- package/src/icons/glyphs/folder.ts +13 -0
- package/src/icons/glyphs/folders.ts +14 -0
- package/src/icons/glyphs/footprints.ts +21 -0
- package/src/icons/glyphs/forklift.ts +17 -0
- package/src/icons/glyphs/form.ts +11 -0
- package/src/icons/glyphs/forward.ts +9 -0
- package/src/icons/glyphs/frame.ts +11 -0
- package/src/icons/glyphs/fuel.ts +11 -0
- package/src/icons/glyphs/fullscreen.ts +12 -0
- package/src/icons/glyphs/funnel-plus.ts +15 -0
- package/src/icons/glyphs/funnel-x.ts +15 -0
- package/src/icons/glyphs/funnel.ts +13 -0
- package/src/icons/glyphs/gallery-horizontal-end.ts +10 -0
- package/src/icons/glyphs/gallery-horizontal.ts +10 -0
- package/src/icons/glyphs/gallery-thumbnails.ts +12 -0
- package/src/icons/glyphs/gallery-vertical-end.ts +10 -0
- package/src/icons/glyphs/gallery-vertical.ts +10 -0
- package/src/icons/glyphs/gamepad-2.ts +17 -0
- package/src/icons/glyphs/gamepad-directional.ts +31 -0
- package/src/icons/glyphs/gamepad.ts +12 -0
- package/src/icons/glyphs/gauge.ts +9 -0
- package/src/icons/glyphs/gavel.ts +12 -0
- package/src/icons/glyphs/gem.ts +15 -0
- package/src/icons/glyphs/georgian-lari.ts +11 -0
- package/src/icons/glyphs/ghost.ts +10 -0
- package/src/icons/glyphs/gift.ts +11 -0
- package/src/icons/glyphs/git-branch-minus.ts +11 -0
- package/src/icons/glyphs/git-branch-plus.ts +13 -0
- package/src/icons/glyphs/git-branch.ts +10 -0
- package/src/icons/glyphs/git-commit-horizontal.ts +10 -0
- package/src/icons/glyphs/git-commit-vertical.ts +10 -0
- package/src/icons/glyphs/git-compare-arrows.ts +13 -0
- package/src/icons/glyphs/git-compare.ts +11 -0
- package/src/icons/glyphs/git-fork.ts +12 -0
- package/src/icons/glyphs/git-graph.ts +13 -0
- package/src/icons/glyphs/git-merge-conflict.ts +12 -0
- package/src/icons/glyphs/git-merge.ts +10 -0
- package/src/icons/glyphs/git-pull-request-arrow.ts +12 -0
- package/src/icons/glyphs/git-pull-request-closed.ts +13 -0
- package/src/icons/glyphs/git-pull-request-create-arrow.ts +13 -0
- package/src/icons/glyphs/git-pull-request-create.ts +12 -0
- package/src/icons/glyphs/git-pull-request-draft.ts +12 -0
- package/src/icons/glyphs/git-pull-request.ts +11 -0
- package/src/icons/glyphs/glass-water.ts +14 -0
- package/src/icons/glyphs/glasses.ts +12 -0
- package/src/icons/glyphs/globe-check.ts +9 -0
- package/src/icons/glyphs/globe-lock.ts +11 -0
- package/src/icons/glyphs/globe-off.ts +14 -0
- package/src/icons/glyphs/globe-x.ts +10 -0
- package/src/icons/glyphs/globe.ts +10 -0
- package/src/icons/glyphs/goal.ts +10 -0
- package/src/icons/glyphs/gpu.ts +12 -0
- package/src/icons/glyphs/graduation-cap.ts +15 -0
- package/src/icons/glyphs/grape.ts +16 -0
- package/src/icons/glyphs/grid-2x2-check.ts +14 -0
- package/src/icons/glyphs/grid-2x2-plus.ts +15 -0
- package/src/icons/glyphs/grid-2x2-x.ts +15 -0
- package/src/icons/glyphs/grid-2x2.ts +10 -0
- package/src/icons/glyphs/grid-3x2.ts +11 -0
- package/src/icons/glyphs/grid-3x3.ts +12 -0
- package/src/icons/glyphs/grip-horizontal.ts +13 -0
- package/src/icons/glyphs/grip-vertical.ts +13 -0
- package/src/icons/glyphs/grip.ts +16 -0
- package/src/icons/glyphs/group.ts +13 -0
- package/src/icons/glyphs/guitar.ts +21 -0
- package/src/icons/glyphs/ham.ts +19 -0
- package/src/icons/glyphs/hamburger.ts +11 -0
- package/src/icons/glyphs/hammer.ts +15 -0
- package/src/icons/glyphs/hand-coins.ts +17 -0
- package/src/icons/glyphs/hand-fist.ts +16 -0
- package/src/icons/glyphs/hand-grab.ts +12 -0
- package/src/icons/glyphs/hand-heart.ts +19 -0
- package/src/icons/glyphs/hand-helping.ts +15 -0
- package/src/icons/glyphs/hand-metal.ts +16 -0
- package/src/icons/glyphs/hand-platter.ts +18 -0
- package/src/icons/glyphs/hand.ts +16 -0
- package/src/icons/glyphs/handbag.ts +14 -0
- package/src/icons/glyphs/handshake.ts +17 -0
- package/src/icons/glyphs/hard-drive-download.ts +12 -0
- package/src/icons/glyphs/hard-drive-upload.ts +12 -0
- package/src/icons/glyphs/hard-drive.ts +16 -0
- package/src/icons/glyphs/hard-hat.ts +11 -0
- package/src/icons/glyphs/hash.ts +11 -0
- package/src/icons/glyphs/hat-glasses.ts +17 -0
- package/src/icons/glyphs/haze.ts +15 -0
- package/src/icons/glyphs/hd.ts +17 -0
- package/src/icons/glyphs/hdmi-port.ts +14 -0
- package/src/icons/glyphs/heading-1.ts +11 -0
- package/src/icons/glyphs/heading-2.ts +11 -0
- package/src/icons/glyphs/heading-3.ts +12 -0
- package/src/icons/glyphs/heading-4.ts +12 -0
- package/src/icons/glyphs/heading-5.ts +12 -0
- package/src/icons/glyphs/heading-6.ts +12 -0
- package/src/icons/glyphs/heading.ts +10 -0
- package/src/icons/glyphs/headphone-off.ts +12 -0
- package/src/icons/glyphs/headphones.ts +13 -0
- package/src/icons/glyphs/headset.ts +14 -0
- package/src/icons/glyphs/heart-crack.ts +19 -0
- package/src/icons/glyphs/heart-handshake.ts +13 -0
- package/src/icons/glyphs/heart-minus.ts +14 -0
- package/src/icons/glyphs/heart-off.ts +20 -0
- package/src/icons/glyphs/heart-plus.ts +15 -0
- package/src/icons/glyphs/heart-pulse.ts +14 -0
- package/src/icons/glyphs/heart-x.ts +15 -0
- package/src/icons/glyphs/heart.ts +13 -0
- package/src/icons/glyphs/heater.ts +17 -0
- package/src/icons/glyphs/helicopter.ts +15 -0
- package/src/icons/glyphs/hexagon.ts +13 -0
- package/src/icons/glyphs/highlighter.ts +9 -0
- package/src/icons/glyphs/hop-off.ts +30 -0
- package/src/icons/glyphs/hop.ts +40 -0
- package/src/icons/glyphs/hospital.ts +12 -0
- package/src/icons/glyphs/hotel.ts +17 -0
- package/src/icons/glyphs/hourglass.ts +11 -0
- package/src/icons/glyphs/house-heart.ts +19 -0
- package/src/icons/glyphs/house-plug.ts +16 -0
- package/src/icons/glyphs/house-plus.ts +16 -0
- package/src/icons/glyphs/house-wifi.ts +16 -0
- package/src/icons/glyphs/house.ts +14 -0
- package/src/icons/glyphs/ice-cream-bowl.ts +13 -0
- package/src/icons/glyphs/ice-cream-cone.ts +10 -0
- package/src/icons/glyphs/id-card-lanyard.ts +12 -0
- package/src/icons/glyphs/id-card.ts +12 -0
- package/src/icons/glyphs/image-down.ts +16 -0
- package/src/icons/glyphs/image-minus.ts +11 -0
- package/src/icons/glyphs/image-off.ts +13 -0
- package/src/icons/glyphs/image-play.ts +16 -0
- package/src/icons/glyphs/image-plus.ts +12 -0
- package/src/icons/glyphs/image-up.ts +16 -0
- package/src/icons/glyphs/image-upscale.ts +15 -0
- package/src/icons/glyphs/image.ts +10 -0
- package/src/icons/glyphs/images.ts +11 -0
- package/src/icons/glyphs/import.ts +10 -0
- package/src/icons/glyphs/inbox.ts +14 -0
- package/src/icons/glyphs/indian-rupee.ts +12 -0
- package/src/icons/glyphs/infinity.ts +8 -0
- package/src/icons/glyphs/info.ts +10 -0
- package/src/icons/glyphs/inspection-panel.ts +12 -0
- package/src/icons/glyphs/italic.ts +10 -0
- package/src/icons/glyphs/iteration-ccw.ts +9 -0
- package/src/icons/glyphs/iteration-cw.ts +9 -0
- package/src/icons/glyphs/japanese-yen.ts +10 -0
- package/src/icons/glyphs/joystick.ts +11 -0
- package/src/icons/glyphs/kanban.ts +10 -0
- package/src/icons/glyphs/kayak.ts +16 -0
- package/src/icons/glyphs/key-round.ts +14 -0
- package/src/icons/glyphs/key-square.ts +20 -0
- package/src/icons/glyphs/key.ts +10 -0
- package/src/icons/glyphs/keyboard-music.ts +16 -0
- package/src/icons/glyphs/keyboard-off.ts +17 -0
- package/src/icons/glyphs/keyboard.ts +16 -0
- package/src/icons/glyphs/lamp-ceiling.ts +15 -0
- package/src/icons/glyphs/lamp-desk.ts +16 -0
- package/src/icons/glyphs/lamp-floor.ts +15 -0
- package/src/icons/glyphs/lamp-wall-down.ts +15 -0
- package/src/icons/glyphs/lamp-wall-up.ts +15 -0
- package/src/icons/glyphs/lamp.ts +15 -0
- package/src/icons/glyphs/land-plot.ts +16 -0
- package/src/icons/glyphs/landmark.ts +16 -0
- package/src/icons/glyphs/languages.ts +13 -0
- package/src/icons/glyphs/laptop-minimal-check.ts +10 -0
- package/src/icons/glyphs/laptop-minimal.ts +9 -0
- package/src/icons/glyphs/laptop.ts +14 -0
- package/src/icons/glyphs/lasso-select.ts +20 -0
- package/src/icons/glyphs/lasso.ts +10 -0
- package/src/icons/glyphs/layer-arrow-down.ts +16 -0
- package/src/icons/glyphs/layer-arrow-up.ts +15 -0
- package/src/icons/glyphs/layers-2.ts +19 -0
- package/src/icons/glyphs/layers-arrow-down.ts +17 -0
- package/src/icons/glyphs/layers-arrow-up.ts +16 -0
- package/src/icons/glyphs/layers-minus.ts +20 -0
- package/src/icons/glyphs/layers-plus.ts +17 -0
- package/src/icons/glyphs/layers.ts +15 -0
- package/src/icons/glyphs/layout-dashboard.ts +11 -0
- package/src/icons/glyphs/layout-freeform.ts +10 -0
- package/src/icons/glyphs/layout-grid.ts +11 -0
- package/src/icons/glyphs/layout-list.ts +13 -0
- package/src/icons/glyphs/layout-panel-left.ts +10 -0
- package/src/icons/glyphs/layout-panel-top.ts +10 -0
- package/src/icons/glyphs/layout-template.ts +10 -0
- package/src/icons/glyphs/leaf.ts +12 -0
- package/src/icons/glyphs/leafy-green.ts +14 -0
- package/src/icons/glyphs/lectern.ts +15 -0
- package/src/icons/glyphs/lens-concave.ts +13 -0
- package/src/icons/glyphs/lens-convex.ts +13 -0
- package/src/icons/glyphs/library-big.ts +15 -0
- package/src/icons/glyphs/library.ts +11 -0
- package/src/icons/glyphs/life-buoy.ts +13 -0
- package/src/icons/glyphs/ligature.ts +12 -0
- package/src/icons/glyphs/lightbulb-off.ts +12 -0
- package/src/icons/glyphs/lightbulb.ts +15 -0
- package/src/icons/glyphs/line-dot-right-horizontal.ts +9 -0
- package/src/icons/glyphs/line-squiggle.ts +11 -0
- package/src/icons/glyphs/line-style.ts +13 -0
- package/src/icons/glyphs/link-2-off.ts +11 -0
- package/src/icons/glyphs/link-2.ts +10 -0
- package/src/icons/glyphs/link.ts +9 -0
- package/src/icons/glyphs/list-check.ts +11 -0
- package/src/icons/glyphs/list-checks.ts +12 -0
- package/src/icons/glyphs/list-chevrons-down-up.ts +12 -0
- package/src/icons/glyphs/list-chevrons-up-down.ts +12 -0
- package/src/icons/glyphs/list-collapse.ts +12 -0
- package/src/icons/glyphs/list-end.ts +12 -0
- package/src/icons/glyphs/list-filter-plus.ts +12 -0
- package/src/icons/glyphs/list-filter.ts +10 -0
- package/src/icons/glyphs/list-indent-decrease.ts +11 -0
- package/src/icons/glyphs/list-indent-increase.ts +11 -0
- package/src/icons/glyphs/list-minus.ts +11 -0
- package/src/icons/glyphs/list-music.ts +12 -0
- package/src/icons/glyphs/list-ordered.ts +13 -0
- package/src/icons/glyphs/list-plus.ts +12 -0
- package/src/icons/glyphs/list-restart.ts +12 -0
- package/src/icons/glyphs/list-sort-ascending.ts +10 -0
- package/src/icons/glyphs/list-sort-descending.ts +10 -0
- package/src/icons/glyphs/list-start.ts +12 -0
- package/src/icons/glyphs/list-todo.ts +12 -0
- package/src/icons/glyphs/list-tree.ts +12 -0
- package/src/icons/glyphs/list-video.ts +16 -0
- package/src/icons/glyphs/list-x.ts +12 -0
- package/src/icons/glyphs/list.ts +13 -0
- package/src/icons/glyphs/loader-circle.ts +6 -0
- package/src/icons/glyphs/loader-pinwheel.ts +11 -0
- package/src/icons/glyphs/loader.ts +15 -0
- package/src/icons/glyphs/locate-fixed.ts +13 -0
- package/src/icons/glyphs/locate-off.ts +14 -0
- package/src/icons/glyphs/locate.ts +12 -0
- package/src/icons/glyphs/lock-keyhole-open.ts +10 -0
- package/src/icons/glyphs/lock-keyhole.ts +10 -0
- package/src/icons/glyphs/lock-open.ts +9 -0
- package/src/icons/glyphs/lock.ts +9 -0
- package/src/icons/glyphs/log-in.ts +10 -0
- package/src/icons/glyphs/log-out.ts +10 -0
- package/src/icons/glyphs/logs.ts +16 -0
- package/src/icons/glyphs/lollipop.ts +10 -0
- package/src/icons/glyphs/luggage.ts +12 -0
- package/src/icons/glyphs/magnet.ts +15 -0
- package/src/icons/glyphs/mail-badge.ts +16 -0
- package/src/icons/glyphs/mail-check.ts +10 -0
- package/src/icons/glyphs/mail-minus.ts +10 -0
- package/src/icons/glyphs/mail-open.ts +14 -0
- package/src/icons/glyphs/mail-plus.ts +11 -0
- package/src/icons/glyphs/mail-question-mark.ts +11 -0
- package/src/icons/glyphs/mail-search.ts +12 -0
- package/src/icons/glyphs/mail-warning.ts +11 -0
- package/src/icons/glyphs/mail-x.ts +11 -0
- package/src/icons/glyphs/mail.ts +9 -0
- package/src/icons/glyphs/mailbox.ts +11 -0
- package/src/icons/glyphs/mails.ts +10 -0
- package/src/icons/glyphs/map-minus.ts +16 -0
- package/src/icons/glyphs/map-pin-check-inside.ts +14 -0
- package/src/icons/glyphs/map-pin-check.ts +15 -0
- package/src/icons/glyphs/map-pin-house.ts +16 -0
- package/src/icons/glyphs/map-pin-minus-inside.ts +14 -0
- package/src/icons/glyphs/map-pin-minus.ts +15 -0
- package/src/icons/glyphs/map-pin-off.ts +17 -0
- package/src/icons/glyphs/map-pin-pen.ts +15 -0
- package/src/icons/glyphs/map-pin-plus-inside.ts +15 -0
- package/src/icons/glyphs/map-pin-plus.ts +16 -0
- package/src/icons/glyphs/map-pin-search.ts +16 -0
- package/src/icons/glyphs/map-pin-x-inside.ts +15 -0
- package/src/icons/glyphs/map-pin-x.ts +16 -0
- package/src/icons/glyphs/map-pin.ts +14 -0
- package/src/icons/glyphs/map-pinned.ts +20 -0
- package/src/icons/glyphs/map-plus.ts +17 -0
- package/src/icons/glyphs/map.ts +15 -0
- package/src/icons/glyphs/mars-stroke.ts +11 -0
- package/src/icons/glyphs/mars.ts +10 -0
- package/src/icons/glyphs/martini.ts +10 -0
- package/src/icons/glyphs/maximize-2.ts +11 -0
- package/src/icons/glyphs/maximize.ts +11 -0
- package/src/icons/glyphs/medal.ts +18 -0
- package/src/icons/glyphs/megaphone-off.ts +12 -0
- package/src/icons/glyphs/megaphone.ts +15 -0
- package/src/icons/glyphs/memory-stick.ts +18 -0
- package/src/icons/glyphs/menu.ts +10 -0
- package/src/icons/glyphs/merge.ts +10 -0
- package/src/icons/glyphs/message-circle-check.ts +14 -0
- package/src/icons/glyphs/message-circle-code.ts +15 -0
- package/src/icons/glyphs/message-circle-dashed.ts +15 -0
- package/src/icons/glyphs/message-circle-heart.ts +19 -0
- package/src/icons/glyphs/message-circle-more.ts +16 -0
- package/src/icons/glyphs/message-circle-off.ts +15 -0
- package/src/icons/glyphs/message-circle-plus.ts +15 -0
- package/src/icons/glyphs/message-circle-question-mark.ts +15 -0
- package/src/icons/glyphs/message-circle-reply.ts +15 -0
- package/src/icons/glyphs/message-circle-warning.ts +15 -0
- package/src/icons/glyphs/message-circle-x.ts +15 -0
- package/src/icons/glyphs/message-circle.ts +13 -0
- package/src/icons/glyphs/message-square-check.ts +14 -0
- package/src/icons/glyphs/message-square-code.ts +15 -0
- package/src/icons/glyphs/message-square-dashed.ts +17 -0
- package/src/icons/glyphs/message-square-diff.ts +16 -0
- package/src/icons/glyphs/message-square-dot.ts +14 -0
- package/src/icons/glyphs/message-square-heart.ts +19 -0
- package/src/icons/glyphs/message-square-lock.ts +15 -0
- package/src/icons/glyphs/message-square-more.ts +16 -0
- package/src/icons/glyphs/message-square-off.ts +15 -0
- package/src/icons/glyphs/message-square-plus.ts +15 -0
- package/src/icons/glyphs/message-square-quote.ts +15 -0
- package/src/icons/glyphs/message-square-reply.ts +15 -0
- package/src/icons/glyphs/message-square-share.ts +15 -0
- package/src/icons/glyphs/message-square-text.ts +16 -0
- package/src/icons/glyphs/message-square-warning.ts +15 -0
- package/src/icons/glyphs/message-square-x.ts +15 -0
- package/src/icons/glyphs/message-square.ts +13 -0
- package/src/icons/glyphs/messages-square.ts +19 -0
- package/src/icons/glyphs/metronome.ts +16 -0
- package/src/icons/glyphs/mic-audio-lines.ts +16 -0
- package/src/icons/glyphs/mic-off.ts +13 -0
- package/src/icons/glyphs/mic-signal.ts +14 -0
- package/src/icons/glyphs/mic-vocal.ts +15 -0
- package/src/icons/glyphs/mic.ts +10 -0
- package/src/icons/glyphs/microchip.ts +17 -0
- package/src/icons/glyphs/microscope.ts +13 -0
- package/src/icons/glyphs/microwave.ts +12 -0
- package/src/icons/glyphs/milestone.ts +15 -0
- package/src/icons/glyphs/milk-off.ts +16 -0
- package/src/icons/glyphs/milk.ts +15 -0
- package/src/icons/glyphs/minimize-2.ts +11 -0
- package/src/icons/glyphs/minimize.ts +11 -0
- package/src/icons/glyphs/minus.ts +6 -0
- package/src/icons/glyphs/mirror-rectangular.ts +10 -0
- package/src/icons/glyphs/mirror-round.ts +12 -0
- package/src/icons/glyphs/monitor-check.ts +11 -0
- package/src/icons/glyphs/monitor-cloud.ts +11 -0
- package/src/icons/glyphs/monitor-cog.ts +19 -0
- package/src/icons/glyphs/monitor-dot.ts +11 -0
- package/src/icons/glyphs/monitor-down.ts +12 -0
- package/src/icons/glyphs/monitor-off.ts +12 -0
- package/src/icons/glyphs/monitor-pause.ts +12 -0
- package/src/icons/glyphs/monitor-play.ts +16 -0
- package/src/icons/glyphs/monitor-smartphone.ts +11 -0
- package/src/icons/glyphs/monitor-speaker.ts +12 -0
- package/src/icons/glyphs/monitor-stop.ts +11 -0
- package/src/icons/glyphs/monitor-up.ts +12 -0
- package/src/icons/glyphs/monitor-x.ts +12 -0
- package/src/icons/glyphs/monitor.ts +10 -0
- package/src/icons/glyphs/moon-star.ts +15 -0
- package/src/icons/glyphs/moon.ts +13 -0
- package/src/icons/glyphs/mosque.ts +18 -0
- package/src/icons/glyphs/motorbike.ts +12 -0
- package/src/icons/glyphs/mountain-snow.ts +9 -0
- package/src/icons/glyphs/mountain.ts +6 -0
- package/src/icons/glyphs/mouse-left.ts +10 -0
- package/src/icons/glyphs/mouse-off.ts +11 -0
- package/src/icons/glyphs/mouse-pointer-2-off.ts +15 -0
- package/src/icons/glyphs/mouse-pointer-2.ts +13 -0
- package/src/icons/glyphs/mouse-pointer-ban.ts +15 -0
- package/src/icons/glyphs/mouse-pointer-click.ts +17 -0
- package/src/icons/glyphs/mouse-pointer.ts +14 -0
- package/src/icons/glyphs/mouse-right.ts +10 -0
- package/src/icons/glyphs/mouse.ts +9 -0
- package/src/icons/glyphs/move-3d.ts +11 -0
- package/src/icons/glyphs/move-diagonal-2.ts +10 -0
- package/src/icons/glyphs/move-diagonal.ts +10 -0
- package/src/icons/glyphs/move-down-left.ts +9 -0
- package/src/icons/glyphs/move-down-right.ts +9 -0
- package/src/icons/glyphs/move-down.ts +9 -0
- package/src/icons/glyphs/move-horizontal.ts +10 -0
- package/src/icons/glyphs/move-left.ts +9 -0
- package/src/icons/glyphs/move-right.ts +9 -0
- package/src/icons/glyphs/move-up-left.ts +9 -0
- package/src/icons/glyphs/move-up-right.ts +9 -0
- package/src/icons/glyphs/move-up.ts +9 -0
- package/src/icons/glyphs/move-vertical.ts +10 -0
- package/src/icons/glyphs/move.ts +13 -0
- package/src/icons/glyphs/music-2.ts +9 -0
- package/src/icons/glyphs/music-3.ts +9 -0
- package/src/icons/glyphs/music-4.ts +11 -0
- package/src/icons/glyphs/music.ts +10 -0
- package/src/icons/glyphs/navigation-2-off.ts +10 -0
- package/src/icons/glyphs/navigation-2.ts +6 -0
- package/src/icons/glyphs/navigation-off.ts +10 -0
- package/src/icons/glyphs/navigation.ts +6 -0
- package/src/icons/glyphs/network.ts +12 -0
- package/src/icons/glyphs/newspaper.ts +16 -0
- package/src/icons/glyphs/nfc.ts +11 -0
- package/src/icons/glyphs/non-binary.ts +11 -0
- package/src/icons/glyphs/notebook-pen.ts +18 -0
- package/src/icons/glyphs/notebook-tabs.ts +16 -0
- package/src/icons/glyphs/notebook-text.ts +15 -0
- package/src/icons/glyphs/notebook.ts +13 -0
- package/src/icons/glyphs/notepad-text-dashed.ts +20 -0
- package/src/icons/glyphs/notepad-text.ts +14 -0
- package/src/icons/glyphs/nut-off.ts +22 -0
- package/src/icons/glyphs/nut.ts +20 -0
- package/src/icons/glyphs/octagon-alert.ts +15 -0
- package/src/icons/glyphs/octagon-minus.ts +14 -0
- package/src/icons/glyphs/octagon-pause.ts +15 -0
- package/src/icons/glyphs/octagon-x.ts +15 -0
- package/src/icons/glyphs/octagon.ts +13 -0
- package/src/icons/glyphs/omega.ts +13 -0
- package/src/icons/glyphs/option.ts +9 -0
- package/src/icons/glyphs/orbit.ts +12 -0
- package/src/icons/glyphs/origami.ts +18 -0
- package/src/icons/glyphs/package-2.ts +15 -0
- package/src/icons/glyphs/package-check.ts +17 -0
- package/src/icons/glyphs/package-minus.ts +17 -0
- package/src/icons/glyphs/package-open.ts +26 -0
- package/src/icons/glyphs/package-plus.ts +18 -0
- package/src/icons/glyphs/package-search.ts +18 -0
- package/src/icons/glyphs/package-x.ts +18 -0
- package/src/icons/glyphs/package.ts +16 -0
- package/src/icons/glyphs/paint-bucket.ts +21 -0
- package/src/icons/glyphs/paint-roller.ts +10 -0
- package/src/icons/glyphs/paintbrush-vertical.ts +16 -0
- package/src/icons/glyphs/paintbrush.ts +20 -0
- package/src/icons/glyphs/palette.ts +17 -0
- package/src/icons/glyphs/panda.ts +18 -0
- package/src/icons/glyphs/panel-bottom-close.ts +10 -0
- package/src/icons/glyphs/panel-bottom-dashed.ts +12 -0
- package/src/icons/glyphs/panel-bottom-open.ts +10 -0
- package/src/icons/glyphs/panel-bottom.ts +9 -0
- package/src/icons/glyphs/panel-left-close.ts +10 -0
- package/src/icons/glyphs/panel-left-dashed.ts +12 -0
- package/src/icons/glyphs/panel-left-open.ts +10 -0
- package/src/icons/glyphs/panel-left-right-dashed.ts +16 -0
- package/src/icons/glyphs/panel-left.ts +9 -0
- package/src/icons/glyphs/panel-right-close.ts +10 -0
- package/src/icons/glyphs/panel-right-dashed.ts +12 -0
- package/src/icons/glyphs/panel-right-open.ts +10 -0
- package/src/icons/glyphs/panel-right.ts +9 -0
- package/src/icons/glyphs/panel-top-bottom-dashed.ts +16 -0
- package/src/icons/glyphs/panel-top-close.ts +10 -0
- package/src/icons/glyphs/panel-top-dashed.ts +12 -0
- package/src/icons/glyphs/panel-top-open.ts +10 -0
- package/src/icons/glyphs/panel-top.ts +9 -0
- package/src/icons/glyphs/panels-left-bottom.ts +10 -0
- package/src/icons/glyphs/panels-right-bottom.ts +10 -0
- package/src/icons/glyphs/panels-top-left.ts +10 -0
- package/src/icons/glyphs/paper-bag.ts +19 -0
- package/src/icons/glyphs/paperclip.ts +13 -0
- package/src/icons/glyphs/parasol.ts +15 -0
- package/src/icons/glyphs/parentheses.ts +9 -0
- package/src/icons/glyphs/parking-meter.ts +17 -0
- package/src/icons/glyphs/party-popper.ts +26 -0
- package/src/icons/glyphs/pause.ts +9 -0
- package/src/icons/glyphs/paw-print.ts +16 -0
- package/src/icons/glyphs/pc-case.ts +11 -0
- package/src/icons/glyphs/pen-line.ts +14 -0
- package/src/icons/glyphs/pen-off.ts +15 -0
- package/src/icons/glyphs/pen-tool.ts +21 -0
- package/src/icons/glyphs/pen.ts +13 -0
- package/src/icons/glyphs/pencil-line.ts +15 -0
- package/src/icons/glyphs/pencil-off.ts +16 -0
- package/src/icons/glyphs/pencil-ruler.ts +18 -0
- package/src/icons/glyphs/pencil-sparkles.ts +20 -0
- package/src/icons/glyphs/pencil.ts +14 -0
- package/src/icons/glyphs/pentagon.ts +13 -0
- package/src/icons/glyphs/percent.ts +10 -0
- package/src/icons/glyphs/person-standing.ts +11 -0
- package/src/icons/glyphs/phi.ts +9 -0
- package/src/icons/glyphs/philippine-peso.ts +10 -0
- package/src/icons/glyphs/phone-call.ts +15 -0
- package/src/icons/glyphs/phone-forwarded.ts +15 -0
- package/src/icons/glyphs/phone-incoming.ts +15 -0
- package/src/icons/glyphs/phone-missed.ts +15 -0
- package/src/icons/glyphs/phone-off.ts +20 -0
- package/src/icons/glyphs/phone-outgoing.ts +15 -0
- package/src/icons/glyphs/phone.ts +13 -0
- package/src/icons/glyphs/pi.ts +10 -0
- package/src/icons/glyphs/piano.ts +18 -0
- package/src/icons/glyphs/pickaxe.ts +26 -0
- package/src/icons/glyphs/picture-in-picture-2.ts +9 -0
- package/src/icons/glyphs/picture-in-picture.ts +12 -0
- package/src/icons/glyphs/piggy-bank.ts +15 -0
- package/src/icons/glyphs/pilcrow-left.ts +12 -0
- package/src/icons/glyphs/pilcrow-right.ts +12 -0
- package/src/icons/glyphs/pilcrow.ts +10 -0
- package/src/icons/glyphs/pill-bottle.ts +10 -0
- package/src/icons/glyphs/pill.ts +9 -0
- package/src/icons/glyphs/pin-off.ts +11 -0
- package/src/icons/glyphs/pin.ts +14 -0
- package/src/icons/glyphs/pipette.ts +15 -0
- package/src/icons/glyphs/pizza.ts +17 -0
- package/src/icons/glyphs/plane-landing.ts +14 -0
- package/src/icons/glyphs/plane-takeoff.ts +14 -0
- package/src/icons/glyphs/plane.ts +13 -0
- package/src/icons/glyphs/play-off.ts +10 -0
- package/src/icons/glyphs/play.ts +11 -0
- package/src/icons/glyphs/plug-2.ts +12 -0
- package/src/icons/glyphs/plug-zap.ts +12 -0
- package/src/icons/glyphs/plug.ts +11 -0
- package/src/icons/glyphs/plus.ts +9 -0
- package/src/icons/glyphs/pocket-knife.ts +12 -0
- package/src/icons/glyphs/podium.ts +15 -0
- package/src/icons/glyphs/pointer-off.ts +16 -0
- package/src/icons/glyphs/pointer.ts +17 -0
- package/src/icons/glyphs/popcorn.ts +16 -0
- package/src/icons/glyphs/popsicle.ts +12 -0
- package/src/icons/glyphs/pound-sterling.ts +11 -0
- package/src/icons/glyphs/power-off.ts +11 -0
- package/src/icons/glyphs/power.ts +9 -0
- package/src/icons/glyphs/presentation.ts +10 -0
- package/src/icons/glyphs/printer-check.ts +11 -0
- package/src/icons/glyphs/printer-x.ts +12 -0
- package/src/icons/glyphs/printer.ts +10 -0
- package/src/icons/glyphs/projector.ts +16 -0
- package/src/icons/glyphs/proportions.ts +10 -0
- package/src/icons/glyphs/puzzle.ts +13 -0
- package/src/icons/glyphs/pyramid.ts +14 -0
- package/src/icons/glyphs/qr-code.ts +19 -0
- package/src/icons/glyphs/quote.ts +19 -0
- package/src/icons/glyphs/rabbit.ts +17 -0
- package/src/icons/glyphs/radar.ts +15 -0
- package/src/icons/glyphs/radiation.ts +26 -0
- package/src/icons/glyphs/radical.ts +13 -0
- package/src/icons/glyphs/radio-off.ts +13 -0
- package/src/icons/glyphs/radio-receiver.ts +11 -0
- package/src/icons/glyphs/radio-tower.ts +14 -0
- package/src/icons/glyphs/radio.ts +12 -0
- package/src/icons/glyphs/radius.ts +11 -0
- package/src/icons/glyphs/rainbow.ts +10 -0
- package/src/icons/glyphs/rat.ts +17 -0
- package/src/icons/glyphs/ratio.ts +9 -0
- package/src/icons/glyphs/receipt-cent.ts +15 -0
- package/src/icons/glyphs/receipt-euro.ts +15 -0
- package/src/icons/glyphs/receipt-indian-rupee.ts +16 -0
- package/src/icons/glyphs/receipt-japanese-yen.ts +17 -0
- package/src/icons/glyphs/receipt-pound-sterling.ts +16 -0
- package/src/icons/glyphs/receipt-russian-ruble.ts +15 -0
- package/src/icons/glyphs/receipt-swiss-franc.ts +16 -0
- package/src/icons/glyphs/receipt-text.ts +16 -0
- package/src/icons/glyphs/receipt-turkish-lira.ts +15 -0
- package/src/icons/glyphs/receipt.ts +15 -0
- package/src/icons/glyphs/rectangle-circle.ts +9 -0
- package/src/icons/glyphs/rectangle-ellipsis.ts +11 -0
- package/src/icons/glyphs/rectangle-goggles.ts +13 -0
- package/src/icons/glyphs/rectangle-horizontal.ts +8 -0
- package/src/icons/glyphs/rectangle-vertical.ts +8 -0
- package/src/icons/glyphs/recycle.ts +18 -0
- package/src/icons/glyphs/redo-2.ts +9 -0
- package/src/icons/glyphs/redo-dot.ts +10 -0
- package/src/icons/glyphs/redo.ts +9 -0
- package/src/icons/glyphs/refresh-ccw-dot.ts +12 -0
- package/src/icons/glyphs/refresh-ccw.ts +11 -0
- package/src/icons/glyphs/refresh-cw-off.ts +14 -0
- package/src/icons/glyphs/refresh-cw.ts +11 -0
- package/src/icons/glyphs/refrigerator.ts +10 -0
- package/src/icons/glyphs/regex.ts +11 -0
- package/src/icons/glyphs/remove-formatting.ts +12 -0
- package/src/icons/glyphs/repeat-1.ts +12 -0
- package/src/icons/glyphs/repeat-2.ts +11 -0
- package/src/icons/glyphs/repeat-off.ts +14 -0
- package/src/icons/glyphs/repeat.ts +11 -0
- package/src/icons/glyphs/replace-all.ts +16 -0
- package/src/icons/glyphs/replace.ts +14 -0
- package/src/icons/glyphs/reply-all.ts +10 -0
- package/src/icons/glyphs/reply.ts +9 -0
- package/src/icons/glyphs/rewind.ts +9 -0
- package/src/icons/glyphs/ribbon.ts +17 -0
- package/src/icons/glyphs/road.ts +16 -0
- package/src/icons/glyphs/rocket.ts +21 -0
- package/src/icons/glyphs/rocking-chair.ts +11 -0
- package/src/icons/glyphs/roller-coaster.ts +14 -0
- package/src/icons/glyphs/rose.ts +15 -0
- package/src/icons/glyphs/rotate-3d.ts +10 -0
- package/src/icons/glyphs/rotate-ccw-clock.ts +10 -0
- package/src/icons/glyphs/rotate-ccw-key.ts +12 -0
- package/src/icons/glyphs/rotate-ccw-square.ts +10 -0
- package/src/icons/glyphs/rotate-ccw.ts +9 -0
- package/src/icons/glyphs/rotate-cw-fading-clock.ts +17 -0
- package/src/icons/glyphs/rotate-cw-square.ts +10 -0
- package/src/icons/glyphs/rotate-cw.ts +9 -0
- package/src/icons/glyphs/route-off.ts +14 -0
- package/src/icons/glyphs/route.ts +10 -0
- package/src/icons/glyphs/router.ts +13 -0
- package/src/icons/glyphs/rows-2.ts +9 -0
- package/src/icons/glyphs/rows-3.ts +10 -0
- package/src/icons/glyphs/rows-4.ts +11 -0
- package/src/icons/glyphs/rss.ts +10 -0
- package/src/icons/glyphs/ruler-dimension-line.ts +15 -0
- package/src/icons/glyphs/ruler.ts +17 -0
- package/src/icons/glyphs/russian-ruble.ts +9 -0
- package/src/icons/glyphs/sailboat.ts +13 -0
- package/src/icons/glyphs/salad.ts +17 -0
- package/src/icons/glyphs/sandwich.ts +12 -0
- package/src/icons/glyphs/satellite-dish.ts +11 -0
- package/src/icons/glyphs/satellite.ts +27 -0
- package/src/icons/glyphs/saudi-riyal.ts +11 -0
- package/src/icons/glyphs/save-all.ts +16 -0
- package/src/icons/glyphs/save-check.ts +16 -0
- package/src/icons/glyphs/save-off.ts +14 -0
- package/src/icons/glyphs/save-pen.ts +19 -0
- package/src/icons/glyphs/save-plus.ts +17 -0
- package/src/icons/glyphs/save.ts +15 -0
- package/src/icons/glyphs/scale-3d.ts +11 -0
- package/src/icons/glyphs/scale.ts +12 -0
- package/src/icons/glyphs/scaling.ts +11 -0
- package/src/icons/glyphs/scan-barcode.ts +14 -0
- package/src/icons/glyphs/scan-box.ts +19 -0
- package/src/icons/glyphs/scan-eye.ts +18 -0
- package/src/icons/glyphs/scan-face.ts +14 -0
- package/src/icons/glyphs/scan-heart.ts +15 -0
- package/src/icons/glyphs/scan-line.ts +12 -0
- package/src/icons/glyphs/scan-qr-code.ts +15 -0
- package/src/icons/glyphs/scan-search.ts +13 -0
- package/src/icons/glyphs/scan-square.ts +12 -0
- package/src/icons/glyphs/scan-text.ts +14 -0
- package/src/icons/glyphs/scan.ts +11 -0
- package/src/icons/glyphs/school.ts +18 -0
- package/src/icons/glyphs/scissors-line-dashed.ts +14 -0
- package/src/icons/glyphs/scissors.ts +12 -0
- package/src/icons/glyphs/scooter.ts +11 -0
- package/src/icons/glyphs/screen-share-off.ts +12 -0
- package/src/icons/glyphs/screen-share.ts +12 -0
- package/src/icons/glyphs/scroll-text.ts +16 -0
- package/src/icons/glyphs/scroll.ts +14 -0
- package/src/icons/glyphs/search-alert.ts +11 -0
- package/src/icons/glyphs/search-check.ts +10 -0
- package/src/icons/glyphs/search-code.ts +11 -0
- package/src/icons/glyphs/search-slash.ts +10 -0
- package/src/icons/glyphs/search-x.ts +11 -0
- package/src/icons/glyphs/search.ts +9 -0
- package/src/icons/glyphs/section.ts +9 -0
- package/src/icons/glyphs/send-horizontal.ts +14 -0
- package/src/icons/glyphs/send-to-back.ts +11 -0
- package/src/icons/glyphs/send.ts +14 -0
- package/src/icons/glyphs/separator-horizontal.ts +10 -0
- package/src/icons/glyphs/separator-vertical.ts +10 -0
- package/src/icons/glyphs/server-cog.ts +19 -0
- package/src/icons/glyphs/server-crash.ts +12 -0
- package/src/icons/glyphs/server-off.ts +13 -0
- package/src/icons/glyphs/server-plus.ts +13 -0
- package/src/icons/glyphs/server.ts +11 -0
- package/src/icons/glyphs/settings-2.ts +11 -0
- package/src/icons/glyphs/settings.ts +14 -0
- package/src/icons/glyphs/shapes.ts +15 -0
- package/src/icons/glyphs/share-2.ts +12 -0
- package/src/icons/glyphs/share.ts +10 -0
- package/src/icons/glyphs/sheet.ts +12 -0
- package/src/icons/glyphs/shell.ts +13 -0
- package/src/icons/glyphs/shelving-unit.ts +14 -0
- package/src/icons/glyphs/shield-alert.ts +15 -0
- package/src/icons/glyphs/shield-ban.ts +14 -0
- package/src/icons/glyphs/shield-check.ts +14 -0
- package/src/icons/glyphs/shield-cog-corner.ts +22 -0
- package/src/icons/glyphs/shield-cog.ts +22 -0
- package/src/icons/glyphs/shield-ellipsis.ts +16 -0
- package/src/icons/glyphs/shield-half.ts +14 -0
- package/src/icons/glyphs/shield-keyhole.ts +15 -0
- package/src/icons/glyphs/shield-lock.ts +15 -0
- package/src/icons/glyphs/shield-minus.ts +14 -0
- package/src/icons/glyphs/shield-off.ts +20 -0
- package/src/icons/glyphs/shield-plus.ts +15 -0
- package/src/icons/glyphs/shield-question-mark.ts +15 -0
- package/src/icons/glyphs/shield-user.ts +15 -0
- package/src/icons/glyphs/shield-x.ts +15 -0
- package/src/icons/glyphs/shield.ts +13 -0
- package/src/icons/glyphs/ship-wheel.ts +17 -0
- package/src/icons/glyphs/ship.ts +22 -0
- package/src/icons/glyphs/shirt.ts +13 -0
- package/src/icons/glyphs/shopping-bag.ts +15 -0
- package/src/icons/glyphs/shopping-basket.ts +14 -0
- package/src/icons/glyphs/shopping-cart.ts +13 -0
- package/src/icons/glyphs/shovel.ts +20 -0
- package/src/icons/glyphs/shower-head.ts +17 -0
- package/src/icons/glyphs/shredder.ts +17 -0
- package/src/icons/glyphs/shrimp.ts +17 -0
- package/src/icons/glyphs/shrink.ts +11 -0
- package/src/icons/glyphs/shrub.ts +10 -0
- package/src/icons/glyphs/shuffle.ts +12 -0
- package/src/icons/glyphs/sigma.ts +13 -0
- package/src/icons/glyphs/signal-high.ts +11 -0
- package/src/icons/glyphs/signal-low.ts +9 -0
- package/src/icons/glyphs/signal-medium.ts +10 -0
- package/src/icons/glyphs/signal-zero.ts +6 -0
- package/src/icons/glyphs/signal.ts +12 -0
- package/src/icons/glyphs/signature.ts +14 -0
- package/src/icons/glyphs/signpost-big.ts +11 -0
- package/src/icons/glyphs/signpost.ts +15 -0
- package/src/icons/glyphs/siren.ts +15 -0
- package/src/icons/glyphs/skip-back.ts +14 -0
- package/src/icons/glyphs/skip-forward.ts +12 -0
- package/src/icons/glyphs/skull.ts +16 -0
- package/src/icons/glyphs/slash.ts +6 -0
- package/src/icons/glyphs/slice.ts +13 -0
- package/src/icons/glyphs/sliders-horizontal.ts +16 -0
- package/src/icons/glyphs/sliders-vertical.ts +16 -0
- package/src/icons/glyphs/smartphone-charging.ts +9 -0
- package/src/icons/glyphs/smartphone-nfc.ts +11 -0
- package/src/icons/glyphs/smartphone.ts +9 -0
- package/src/icons/glyphs/snail.ts +12 -0
- package/src/icons/glyphs/snowflake.ts +19 -0
- package/src/icons/glyphs/soap-dispenser-droplet.ts +16 -0
- package/src/icons/glyphs/sofa.ts +17 -0
- package/src/icons/glyphs/solar-panel.ts +19 -0
- package/src/icons/glyphs/soup.ts +13 -0
- package/src/icons/glyphs/space.ts +6 -0
- package/src/icons/glyphs/spade.ts +14 -0
- package/src/icons/glyphs/sparkle.ts +13 -0
- package/src/icons/glyphs/sparkles.ts +16 -0
- package/src/icons/glyphs/speaker.ts +11 -0
- package/src/icons/glyphs/speech.ts +15 -0
- package/src/icons/glyphs/spell-check-2.ts +15 -0
- package/src/icons/glyphs/spell-check.ts +10 -0
- package/src/icons/glyphs/spline-pointer.ts +16 -0
- package/src/icons/glyphs/spline.ts +10 -0
- package/src/icons/glyphs/split.ts +11 -0
- package/src/icons/glyphs/spool.ts +19 -0
- package/src/icons/glyphs/sport-shoe.ts +15 -0
- package/src/icons/glyphs/spotlight.ts +17 -0
- package/src/icons/glyphs/spray-can.ts +17 -0
- package/src/icons/glyphs/sprout.ts +15 -0
- package/src/icons/glyphs/square-activity.ts +9 -0
- package/src/icons/glyphs/square-arrow-down-left.ts +10 -0
- package/src/icons/glyphs/square-arrow-down-right.ts +10 -0
- package/src/icons/glyphs/square-arrow-down.ts +10 -0
- package/src/icons/glyphs/square-arrow-left.ts +10 -0
- package/src/icons/glyphs/square-arrow-out-down-left.ts +10 -0
- package/src/icons/glyphs/square-arrow-out-down-right.ts +10 -0
- package/src/icons/glyphs/square-arrow-out-up-left.ts +10 -0
- package/src/icons/glyphs/square-arrow-out-up-right.ts +10 -0
- package/src/icons/glyphs/square-arrow-right-enter.ts +10 -0
- package/src/icons/glyphs/square-arrow-right-exit.ts +13 -0
- package/src/icons/glyphs/square-arrow-right.ts +10 -0
- package/src/icons/glyphs/square-arrow-up-left.ts +10 -0
- package/src/icons/glyphs/square-arrow-up-right.ts +10 -0
- package/src/icons/glyphs/square-arrow-up.ts +10 -0
- package/src/icons/glyphs/square-asterisk.ts +11 -0
- package/src/icons/glyphs/square-bottom-dashed-scissors.ts +15 -0
- package/src/icons/glyphs/square-centerline-dashed-horizontal.ts +13 -0
- package/src/icons/glyphs/square-centerline-dashed-vertical.ts +13 -0
- package/src/icons/glyphs/square-chart-gantt.ts +11 -0
- package/src/icons/glyphs/square-check-big.ts +9 -0
- package/src/icons/glyphs/square-check.ts +9 -0
- package/src/icons/glyphs/square-chevron-down.ts +9 -0
- package/src/icons/glyphs/square-chevron-left.ts +9 -0
- package/src/icons/glyphs/square-chevron-right.ts +9 -0
- package/src/icons/glyphs/square-chevron-up.ts +9 -0
- package/src/icons/glyphs/square-code.ts +10 -0
- package/src/icons/glyphs/square-dashed-bottom-code.ts +12 -0
- package/src/icons/glyphs/square-dashed-bottom.ts +10 -0
- package/src/icons/glyphs/square-dashed-kanban.ts +22 -0
- package/src/icons/glyphs/square-dashed-mouse-pointer.ts +22 -0
- package/src/icons/glyphs/square-dashed-text.ts +22 -0
- package/src/icons/glyphs/square-dashed-top-solid.ts +16 -0
- package/src/icons/glyphs/square-dashed.ts +19 -0
- package/src/icons/glyphs/square-divide.ts +11 -0
- package/src/icons/glyphs/square-dot.ts +9 -0
- package/src/icons/glyphs/square-equal.ts +10 -0
- package/src/icons/glyphs/square-function.ts +10 -0
- package/src/icons/glyphs/square-kanban.ts +11 -0
- package/src/icons/glyphs/square-library.ts +11 -0
- package/src/icons/glyphs/square-m.ts +12 -0
- package/src/icons/glyphs/square-menu.ts +11 -0
- package/src/icons/glyphs/square-minus.ts +9 -0
- package/src/icons/glyphs/square-mouse-pointer.ts +14 -0
- package/src/icons/glyphs/square-off.ts +10 -0
- package/src/icons/glyphs/square-parking-off.ts +12 -0
- package/src/icons/glyphs/square-parking.ts +9 -0
- package/src/icons/glyphs/square-pause.ts +10 -0
- package/src/icons/glyphs/square-pen.ts +14 -0
- package/src/icons/glyphs/square-percent.ts +11 -0
- package/src/icons/glyphs/square-pi.ts +11 -0
- package/src/icons/glyphs/square-pilcrow.ts +11 -0
- package/src/icons/glyphs/square-play.ts +14 -0
- package/src/icons/glyphs/square-plus.ts +10 -0
- package/src/icons/glyphs/square-power.ts +10 -0
- package/src/icons/glyphs/square-radical.ts +9 -0
- package/src/icons/glyphs/square-round-corner.ts +9 -0
- package/src/icons/glyphs/square-scissors.ts +13 -0
- package/src/icons/glyphs/square-sigma.ts +9 -0
- package/src/icons/glyphs/square-slash.ts +9 -0
- package/src/icons/glyphs/square-split-horizontal.ts +10 -0
- package/src/icons/glyphs/square-split-vertical.ts +10 -0
- package/src/icons/glyphs/square-square.ts +9 -0
- package/src/icons/glyphs/square-stack.ts +10 -0
- package/src/icons/glyphs/square-star.ts +14 -0
- package/src/icons/glyphs/square-stop.ts +9 -0
- package/src/icons/glyphs/square-terminal.ts +10 -0
- package/src/icons/glyphs/square-user-round.ts +10 -0
- package/src/icons/glyphs/square-user.ts +10 -0
- package/src/icons/glyphs/square-x.ts +10 -0
- package/src/icons/glyphs/square.ts +8 -0
- package/src/icons/glyphs/squares-exclude.ts +19 -0
- package/src/icons/glyphs/squares-intersect.ts +18 -0
- package/src/icons/glyphs/squares-subtract.ts +18 -0
- package/src/icons/glyphs/squares-unite.ts +13 -0
- package/src/icons/glyphs/squircle-dashed.ts +15 -0
- package/src/icons/glyphs/squircle.ts +8 -0
- package/src/icons/glyphs/squirrel.ts +16 -0
- package/src/icons/glyphs/stamp.ts +15 -0
- package/src/icons/glyphs/star-check.ts +14 -0
- package/src/icons/glyphs/star-half.ts +13 -0
- package/src/icons/glyphs/star-minus.ts +14 -0
- package/src/icons/glyphs/star-off.ts +20 -0
- package/src/icons/glyphs/star-plus.ts +15 -0
- package/src/icons/glyphs/star-x.ts +15 -0
- package/src/icons/glyphs/star.ts +13 -0
- package/src/icons/glyphs/step-back.ts +14 -0
- package/src/icons/glyphs/step-forward.ts +12 -0
- package/src/icons/glyphs/stethoscope.ts +12 -0
- package/src/icons/glyphs/sticker.ts +17 -0
- package/src/icons/glyphs/sticky-note-check.ts +15 -0
- package/src/icons/glyphs/sticky-note-minus.ts +15 -0
- package/src/icons/glyphs/sticky-note-off.ts +11 -0
- package/src/icons/glyphs/sticky-note-plus.ts +16 -0
- package/src/icons/glyphs/sticky-note-x.ts +16 -0
- package/src/icons/glyphs/sticky-note.ts +14 -0
- package/src/icons/glyphs/sticky-notes.ts +21 -0
- package/src/icons/glyphs/stone.ts +15 -0
- package/src/icons/glyphs/store.ts +15 -0
- package/src/icons/glyphs/stretch-horizontal.ts +9 -0
- package/src/icons/glyphs/stretch-vertical.ts +9 -0
- package/src/icons/glyphs/strikethrough.ts +10 -0
- package/src/icons/glyphs/subscript.ts +15 -0
- package/src/icons/glyphs/summary.ts +12 -0
- package/src/icons/glyphs/sun-dim.ts +16 -0
- package/src/icons/glyphs/sun-medium.ts +16 -0
- package/src/icons/glyphs/sun-moon.ts +17 -0
- package/src/icons/glyphs/sun-snow.ts +18 -0
- package/src/icons/glyphs/sun.ts +16 -0
- package/src/icons/glyphs/sunrise.ts +15 -0
- package/src/icons/glyphs/sunset.ts +15 -0
- package/src/icons/glyphs/superscript.ts +15 -0
- package/src/icons/glyphs/swatch-book.ts +14 -0
- package/src/icons/glyphs/swiss-franc.ts +10 -0
- package/src/icons/glyphs/switch-camera.ts +12 -0
- package/src/icons/glyphs/sword.ts +11 -0
- package/src/icons/glyphs/swords.ts +15 -0
- package/src/icons/glyphs/syringe.ts +13 -0
- package/src/icons/glyphs/table-2.ts +13 -0
- package/src/icons/glyphs/table-cells-merge.ts +12 -0
- package/src/icons/glyphs/table-cells-split.ts +11 -0
- package/src/icons/glyphs/table-columns-split.ts +18 -0
- package/src/icons/glyphs/table-of-contents.ts +13 -0
- package/src/icons/glyphs/table-properties.ts +11 -0
- package/src/icons/glyphs/table-rows-split.ts +18 -0
- package/src/icons/glyphs/table.ts +11 -0
- package/src/icons/glyphs/tablet-smartphone.ts +10 -0
- package/src/icons/glyphs/tablet.ts +9 -0
- package/src/icons/glyphs/tablets.ts +11 -0
- package/src/icons/glyphs/tag-plus.ts +16 -0
- package/src/icons/glyphs/tag-x.ts +16 -0
- package/src/icons/glyphs/tag.ts +14 -0
- package/src/icons/glyphs/tags.ts +15 -0
- package/src/icons/glyphs/tally-1.ts +6 -0
- package/src/icons/glyphs/tally-2.ts +9 -0
- package/src/icons/glyphs/tally-3.ts +10 -0
- package/src/icons/glyphs/tally-4.ts +11 -0
- package/src/icons/glyphs/tally-5.ts +12 -0
- package/src/icons/glyphs/tangent.ts +11 -0
- package/src/icons/glyphs/target.ts +10 -0
- package/src/icons/glyphs/telescope.ts +24 -0
- package/src/icons/glyphs/tent-tree.ts +14 -0
- package/src/icons/glyphs/tent.ts +11 -0
- package/src/icons/glyphs/terminal.ts +9 -0
- package/src/icons/glyphs/test-tube-diagonal.ts +10 -0
- package/src/icons/glyphs/test-tube.ts +10 -0
- package/src/icons/glyphs/test-tubes.ts +13 -0
- package/src/icons/glyphs/text-align-center.ts +10 -0
- package/src/icons/glyphs/text-align-end.ts +10 -0
- package/src/icons/glyphs/text-align-justify.ts +10 -0
- package/src/icons/glyphs/text-align-start.ts +10 -0
- package/src/icons/glyphs/text-cursor-input.ts +12 -0
- package/src/icons/glyphs/text-cursor.ts +10 -0
- package/src/icons/glyphs/text-initial.ts +12 -0
- package/src/icons/glyphs/text-quote.ts +11 -0
- package/src/icons/glyphs/text-search.ts +12 -0
- package/src/icons/glyphs/text-wrap.ts +11 -0
- package/src/icons/glyphs/theater.ts +16 -0
- package/src/icons/glyphs/thermometer-snowflake.ts +15 -0
- package/src/icons/glyphs/thermometer-sun.ts +13 -0
- package/src/icons/glyphs/thermometer.ts +8 -0
- package/src/icons/glyphs/thumbs-down.ts +14 -0
- package/src/icons/glyphs/thumbs-up.ts +14 -0
- package/src/icons/glyphs/ticket-check.ts +14 -0
- package/src/icons/glyphs/ticket-minus.ts +14 -0
- package/src/icons/glyphs/ticket-percent.ts +16 -0
- package/src/icons/glyphs/ticket-plus.ts +15 -0
- package/src/icons/glyphs/ticket-slash.ts +14 -0
- package/src/icons/glyphs/ticket-x.ts +15 -0
- package/src/icons/glyphs/ticket.ts +16 -0
- package/src/icons/glyphs/tickets-plane.ts +14 -0
- package/src/icons/glyphs/tickets.ts +12 -0
- package/src/icons/glyphs/timeline.ts +30 -0
- package/src/icons/glyphs/timer-off.ts +12 -0
- package/src/icons/glyphs/timer-reset.ts +11 -0
- package/src/icons/glyphs/timer.ts +10 -0
- package/src/icons/glyphs/toggle-left.ts +9 -0
- package/src/icons/glyphs/toggle-right.ts +9 -0
- package/src/icons/glyphs/toilet.ts +14 -0
- package/src/icons/glyphs/tool-case.ts +21 -0
- package/src/icons/glyphs/toolbox.ts +17 -0
- package/src/icons/glyphs/tornado.ts +12 -0
- package/src/icons/glyphs/torus.ts +9 -0
- package/src/icons/glyphs/touchpad-off.ts +13 -0
- package/src/icons/glyphs/touchpad.ts +10 -0
- package/src/icons/glyphs/towel-rack.ts +15 -0
- package/src/icons/glyphs/tower-control.ts +14 -0
- package/src/icons/glyphs/toy-brick.ts +10 -0
- package/src/icons/glyphs/tractor.ts +16 -0
- package/src/icons/glyphs/traffic-cone.ts +16 -0
- package/src/icons/glyphs/train-front-tunnel.ts +14 -0
- package/src/icons/glyphs/train-front.ts +13 -0
- package/src/icons/glyphs/train-track.ts +14 -0
- package/src/icons/glyphs/tram-front.ts +14 -0
- package/src/icons/glyphs/transgender.ts +15 -0
- package/src/icons/glyphs/trash-2.ts +12 -0
- package/src/icons/glyphs/trash.ts +10 -0
- package/src/icons/glyphs/tree-deciduous.ts +14 -0
- package/src/icons/glyphs/tree-palm.ts +16 -0
- package/src/icons/glyphs/tree-pine.ts +14 -0
- package/src/icons/glyphs/trees.ts +16 -0
- package/src/icons/glyphs/trending-down.ts +9 -0
- package/src/icons/glyphs/trending-up-down.ts +11 -0
- package/src/icons/glyphs/trending-up.ts +9 -0
- package/src/icons/glyphs/triangle-alert.ts +10 -0
- package/src/icons/glyphs/triangle-dashed.ts +16 -0
- package/src/icons/glyphs/triangle-right.ts +8 -0
- package/src/icons/glyphs/triangle.ts +8 -0
- package/src/icons/glyphs/trophy.ts +13 -0
- package/src/icons/glyphs/truck-electric.ts +14 -0
- package/src/icons/glyphs/truck.ts +15 -0
- package/src/icons/glyphs/turkish-lira.ts +10 -0
- package/src/icons/glyphs/turntable.ts +11 -0
- package/src/icons/glyphs/turtle.ts +16 -0
- package/src/icons/glyphs/tv-minimal-play.ts +15 -0
- package/src/icons/glyphs/tv-minimal.ts +9 -0
- package/src/icons/glyphs/tv.ts +9 -0
- package/src/icons/glyphs/type-outline.ts +13 -0
- package/src/icons/glyphs/type.ts +10 -0
- package/src/icons/glyphs/umbrella-off.ts +12 -0
- package/src/icons/glyphs/umbrella.ts +10 -0
- package/src/icons/glyphs/underline.ts +9 -0
- package/src/icons/glyphs/undo-2.ts +9 -0
- package/src/icons/glyphs/undo-dot.ts +10 -0
- package/src/icons/glyphs/undo.ts +9 -0
- package/src/icons/glyphs/unfold-horizontal.ts +15 -0
- package/src/icons/glyphs/unfold-vertical.ts +15 -0
- package/src/icons/glyphs/ungroup.ts +9 -0
- package/src/icons/glyphs/university.ts +19 -0
- package/src/icons/glyphs/unlink-2.ts +8 -0
- package/src/icons/glyphs/unlink.ts +21 -0
- package/src/icons/glyphs/unplug.ts +13 -0
- package/src/icons/glyphs/upload.ts +10 -0
- package/src/icons/glyphs/usb.ts +14 -0
- package/src/icons/glyphs/user-check.ts +10 -0
- package/src/icons/glyphs/user-cog.ts +18 -0
- package/src/icons/glyphs/user-key.ts +12 -0
- package/src/icons/glyphs/user-lock.ts +11 -0
- package/src/icons/glyphs/user-minus.ts +10 -0
- package/src/icons/glyphs/user-pen.ts +15 -0
- package/src/icons/glyphs/user-plus.ts +11 -0
- package/src/icons/glyphs/user-round-arrow-left.ts +11 -0
- package/src/icons/glyphs/user-round-check.ts +10 -0
- package/src/icons/glyphs/user-round-cog.ts +18 -0
- package/src/icons/glyphs/user-round-key.ts +12 -0
- package/src/icons/glyphs/user-round-minus.ts +10 -0
- package/src/icons/glyphs/user-round-pen.ts +15 -0
- package/src/icons/glyphs/user-round-plus.ts +11 -0
- package/src/icons/glyphs/user-round-search.ts +11 -0
- package/src/icons/glyphs/user-round-x.ts +11 -0
- package/src/icons/glyphs/user-round.ts +9 -0
- package/src/icons/glyphs/user-search.ts +11 -0
- package/src/icons/glyphs/user-shield.ts +15 -0
- package/src/icons/glyphs/user-star.ts +15 -0
- package/src/icons/glyphs/user-x.ts +11 -0
- package/src/icons/glyphs/user.ts +9 -0
- package/src/icons/glyphs/users-round.ts +10 -0
- package/src/icons/glyphs/users.ts +11 -0
- package/src/icons/glyphs/utensils-crossed.ts +11 -0
- package/src/icons/glyphs/utensils.ts +10 -0
- package/src/icons/glyphs/utility-pole.ts +14 -0
- package/src/icons/glyphs/van.ts +17 -0
- package/src/icons/glyphs/variable.ts +11 -0
- package/src/icons/glyphs/vault.ts +17 -0
- package/src/icons/glyphs/vector-square.ts +15 -0
- package/src/icons/glyphs/vegan.ts +10 -0
- package/src/icons/glyphs/venetian-mask.ts +15 -0
- package/src/icons/glyphs/venus-and-mars.ts +12 -0
- package/src/icons/glyphs/venus.ts +10 -0
- package/src/icons/glyphs/vibrate-off.ts +12 -0
- package/src/icons/glyphs/vibrate.ts +10 -0
- package/src/icons/glyphs/video-off.ts +10 -0
- package/src/icons/glyphs/video.ts +9 -0
- package/src/icons/glyphs/videotape.ts +12 -0
- package/src/icons/glyphs/view.ts +16 -0
- package/src/icons/glyphs/voicemail.ts +10 -0
- package/src/icons/glyphs/volleyball.ts +13 -0
- package/src/icons/glyphs/volume-1.ts +14 -0
- package/src/icons/glyphs/volume-2.ts +15 -0
- package/src/icons/glyphs/volume-off.ts +17 -0
- package/src/icons/glyphs/volume-x.ts +15 -0
- package/src/icons/glyphs/volume.ts +13 -0
- package/src/icons/glyphs/vote.ts +10 -0
- package/src/icons/glyphs/wallet-cards.ts +10 -0
- package/src/icons/glyphs/wallet-minimal.ts +9 -0
- package/src/icons/glyphs/wallet.ts +14 -0
- package/src/icons/glyphs/wallpaper.ts +12 -0
- package/src/icons/glyphs/wand-sparkles.ts +20 -0
- package/src/icons/glyphs/wand.ts +16 -0
- package/src/icons/glyphs/warehouse.ts +16 -0
- package/src/icons/glyphs/washing-machine.ts +12 -0
- package/src/icons/glyphs/watch.ts +11 -0
- package/src/icons/glyphs/waves-arrow-down.ts +21 -0
- package/src/icons/glyphs/waves-arrow-up.ts +21 -0
- package/src/icons/glyphs/waves-horizontal.ts +10 -0
- package/src/icons/glyphs/waves-ladder.ts +17 -0
- package/src/icons/glyphs/waves-vertical.ts +10 -0
- package/src/icons/glyphs/waypoints.ts +14 -0
- package/src/icons/glyphs/webcam-off.ts +14 -0
- package/src/icons/glyphs/webcam.ts +11 -0
- package/src/icons/glyphs/webhook-off.ts +14 -0
- package/src/icons/glyphs/webhook.ts +10 -0
- package/src/icons/glyphs/weight-tilde.ts +15 -0
- package/src/icons/glyphs/weight.ts +14 -0
- package/src/icons/glyphs/wheat-off.ts +25 -0
- package/src/icons/glyphs/wheat.ts +39 -0
- package/src/icons/glyphs/whole-word.ts +12 -0
- package/src/icons/glyphs/wifi-cog.ts +19 -0
- package/src/icons/glyphs/wifi-high.ts +10 -0
- package/src/icons/glyphs/wifi-low.ts +9 -0
- package/src/icons/glyphs/wifi-off.ts +14 -0
- package/src/icons/glyphs/wifi-pen.ts +16 -0
- package/src/icons/glyphs/wifi-sync.ts +14 -0
- package/src/icons/glyphs/wifi-zero.ts +6 -0
- package/src/icons/glyphs/wifi.ts +11 -0
- package/src/icons/glyphs/wind-arrow-down.ts +11 -0
- package/src/icons/glyphs/wind.ts +10 -0
- package/src/icons/glyphs/wine-off.ts +17 -0
- package/src/icons/glyphs/wine.ts +11 -0
- package/src/icons/glyphs/workflow.ts +10 -0
- package/src/icons/glyphs/worm.ts +15 -0
- package/src/icons/glyphs/wrench-off.ts +15 -0
- package/src/icons/glyphs/wrench.ts +13 -0
- package/src/icons/glyphs/x-line-top.ts +10 -0
- package/src/icons/glyphs/x.ts +9 -0
- package/src/icons/glyphs/zap-off.ts +16 -0
- package/src/icons/glyphs/zap.ts +13 -0
- package/src/icons/glyphs/zodiac-aquarius.ts +19 -0
- package/src/icons/glyphs/zodiac-aries.ts +9 -0
- package/src/icons/glyphs/zodiac-cancer.ts +11 -0
- package/src/icons/glyphs/zodiac-capricorn.ts +10 -0
- package/src/icons/glyphs/zodiac-gemini.ts +11 -0
- package/src/icons/glyphs/zodiac-leo.ts +9 -0
- package/src/icons/glyphs/zodiac-libra.ts +12 -0
- package/src/icons/glyphs/zodiac-ophiuchus.ts +9 -0
- package/src/icons/glyphs/zodiac-pisces.ts +10 -0
- package/src/icons/glyphs/zodiac-sagittarius.ts +10 -0
- package/src/icons/glyphs/zodiac-scorpio.ts +11 -0
- package/src/icons/glyphs/zodiac-taurus.ts +9 -0
- package/src/icons/glyphs/zodiac-virgo.ts +11 -0
- package/src/icons/glyphs/zoom-in.ts +11 -0
- package/src/icons/glyphs/zoom-out.ts +10 -0
- package/src/index.ts +44 -2
- package/src/theme/brand.ts +16 -1
- package/src/theme/context.ts +47 -7
- package/src/theme/inert-runtime.ts +48 -0
- package/src/theme/provider.tsx +7 -1
- package/src/theme/solid-adapter.ts +18 -4
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
@use '../tokens' as t;
|
|
2
|
+
|
|
3
|
+
.scroller {
|
|
4
|
+
@include t.column(t.space(4));
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.foot {
|
|
8
|
+
@include t.row(t.space(3), center, center);
|
|
9
|
+
position: relative;
|
|
10
|
+
padding-block: t.space(4);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.more {
|
|
14
|
+
@include t.focus-ring;
|
|
15
|
+
@include t.transition(background, color);
|
|
16
|
+
padding-block: t.space(2);
|
|
17
|
+
padding-inline: t.space(4);
|
|
18
|
+
border: 1px solid t.role('line');
|
|
19
|
+
border-radius: t.radius(md);
|
|
20
|
+
background: t.role('surface-raised');
|
|
21
|
+
color: t.role('fg-strong');
|
|
22
|
+
text-decoration: none;
|
|
23
|
+
|
|
24
|
+
&:hover {
|
|
25
|
+
background: t.role('bg-soft');
|
|
26
|
+
color: t.role('accent');
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.end {
|
|
31
|
+
margin: 0;
|
|
32
|
+
color: t.role('fg-muted');
|
|
33
|
+
font-size: t.text(sm);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// The trigger, not a decoration: it sits at the very end of the list and is never painted.
|
|
37
|
+
.sentinel {
|
|
38
|
+
position: absolute;
|
|
39
|
+
inset-block-end: 0;
|
|
40
|
+
inline-size: 1px;
|
|
41
|
+
block-size: 1px;
|
|
42
|
+
pointer-events: none;
|
|
43
|
+
}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
// An endless list that degrades to pagination: the foot is always a real `rel="next"` link, so
|
|
2
|
+
// the next page is one navigation away with scripting off. With script, a sentinel below the
|
|
3
|
+
// list asks for that page before the reader reaches it, and the link's click is intercepted.
|
|
4
|
+
|
|
5
|
+
import type { JSX } from 'solid-js';
|
|
6
|
+
import { ariaBool } from '../a11y';
|
|
7
|
+
import { cx } from '../cx';
|
|
8
|
+
import { UI_KEYS } from '../i18n-keys';
|
|
9
|
+
import { useUi } from '../theme/context';
|
|
10
|
+
import { solid } from '../theme/solid-adapter';
|
|
11
|
+
import styles from './InfiniteScroll.module.scss';
|
|
12
|
+
import { loadMoreState } from './infinite-scroll-view';
|
|
13
|
+
import { Spinner } from './Spinner';
|
|
14
|
+
|
|
15
|
+
/** One viewport-ish of runway, so the next page is usually there before the current one ends. */
|
|
16
|
+
const ROOT_MARGIN = '400px';
|
|
17
|
+
|
|
18
|
+
export interface InfiniteScrollProps {
|
|
19
|
+
/** The items rendered so far. This component owns the foot, never the list. */
|
|
20
|
+
children: JSX.Element;
|
|
21
|
+
/** Another page exists. */
|
|
22
|
+
hasMore: boolean;
|
|
23
|
+
/** The next page's URL. Required whenever `hasMore` — it is the no-JS path. */
|
|
24
|
+
nextHref?: string | undefined;
|
|
25
|
+
/** A page is in flight; the control stops inviting a second request. */
|
|
26
|
+
loading?: boolean | undefined;
|
|
27
|
+
/** The enhancement: called when the sentinel appears, and in place of following the link. */
|
|
28
|
+
onLoadMore?: (() => void) | undefined;
|
|
29
|
+
/** How far below the fold loading starts. A CSS length, as IntersectionObserver takes it. */
|
|
30
|
+
rootMargin?: string | undefined;
|
|
31
|
+
class?: string | undefined;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export function InfiniteScroll(props: InfiniteScrollProps): JSX.Element {
|
|
35
|
+
const ui = useUi();
|
|
36
|
+
const rt = solid();
|
|
37
|
+
let sentinel: HTMLSpanElement | undefined;
|
|
38
|
+
|
|
39
|
+
rt.createEffect(() => {
|
|
40
|
+
const onLoadMore = props.onLoadMore;
|
|
41
|
+
if (onLoadMore === undefined || sentinel === undefined) return;
|
|
42
|
+
// No observer means no enhancement — the link below is already the working control.
|
|
43
|
+
if (!props.hasMore || typeof IntersectionObserver === 'undefined') return;
|
|
44
|
+
const observer = new IntersectionObserver(
|
|
45
|
+
(entries) => {
|
|
46
|
+
if (props.loading !== true && entries.some((entry) => entry.isIntersecting)) onLoadMore();
|
|
47
|
+
},
|
|
48
|
+
{ rootMargin: props.rootMargin ?? ROOT_MARGIN },
|
|
49
|
+
);
|
|
50
|
+
observer.observe(sentinel);
|
|
51
|
+
rt.onCleanup(() => observer.disconnect());
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
const onClick = (event: MouseEvent): void => {
|
|
55
|
+
if (props.onLoadMore === undefined) return;
|
|
56
|
+
event.preventDefault();
|
|
57
|
+
props.onLoadMore();
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
const state = (): ReturnType<typeof loadMoreState> =>
|
|
61
|
+
loadMoreState({
|
|
62
|
+
hasMore: props.hasMore,
|
|
63
|
+
loading: props.loading,
|
|
64
|
+
nextHref: props.nextHref,
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
return (
|
|
68
|
+
<div class={cx(styles['scroller'], props.class)} aria-busy={ariaBool(props.loading)}>
|
|
69
|
+
{props.children}
|
|
70
|
+
<div class={styles['foot']}>
|
|
71
|
+
{state() === 'loading' ? <Spinner size="sm" /> : null}
|
|
72
|
+
{state() === 'more' ? (
|
|
73
|
+
<a class={styles['more']} href={props.nextHref} rel="next" onClick={onClick}>
|
|
74
|
+
{ui.t(UI_KEYS.loadMore)}
|
|
75
|
+
</a>
|
|
76
|
+
) : null}
|
|
77
|
+
{state() === 'end' ? (
|
|
78
|
+
<p class={styles['end']} role="status">
|
|
79
|
+
{ui.t(UI_KEYS.endOfList)}
|
|
80
|
+
</p>
|
|
81
|
+
) : null}
|
|
82
|
+
<span
|
|
83
|
+
aria-hidden="true"
|
|
84
|
+
class={styles['sentinel']}
|
|
85
|
+
ref={(el: HTMLSpanElement) => {
|
|
86
|
+
sentinel = el;
|
|
87
|
+
}}
|
|
88
|
+
/>
|
|
89
|
+
</div>
|
|
90
|
+
</div>
|
|
91
|
+
);
|
|
92
|
+
}
|
package/src/components/Link.tsx
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
import type { JSX } from 'solid-js';
|
|
5
5
|
import { cx } from '../cx';
|
|
6
6
|
import styles from './Link.module.scss';
|
|
7
|
+
import { linkTarget } from './link-target';
|
|
7
8
|
|
|
8
9
|
export interface LinkProps {
|
|
9
10
|
href: string;
|
|
@@ -20,12 +21,17 @@ export interface LinkProps {
|
|
|
20
21
|
}
|
|
21
22
|
|
|
22
23
|
export function Link(props: LinkProps): JSX.Element {
|
|
23
|
-
|
|
24
|
+
// Both the href and the external verdict come from ONE decision (`link-target.ts`): a
|
|
25
|
+
// `javascript:` href used to be emitted verbatim AND classified internal, so it lost the
|
|
26
|
+
// hardening too. A refused URL emits no `href` — inert, and still renders its text.
|
|
27
|
+
const target = (): { href: string | undefined; external: boolean } =>
|
|
28
|
+
linkTarget(props.href, props.external);
|
|
29
|
+
const isExternal = (): boolean => target().external;
|
|
24
30
|
|
|
25
31
|
return (
|
|
26
32
|
<a
|
|
27
33
|
id={props.id}
|
|
28
|
-
href={
|
|
34
|
+
href={target().href}
|
|
29
35
|
target={isExternal() ? '_blank' : undefined}
|
|
30
36
|
rel={isExternal() ? 'noopener noreferrer' : undefined}
|
|
31
37
|
aria-current={props['aria-current']}
|
|
@@ -31,14 +31,21 @@ export interface SelectProps {
|
|
|
31
31
|
onChange?: JSX.EventHandlerUnion<HTMLSelectElement, Event> | undefined;
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
+
/**
|
|
35
|
+
* `<select>` has NO `value` attribute — the selected option carries `selected`, and the parser
|
|
36
|
+
* drops the attribute silently, so `value={…}` rendered every admin edit control on its first
|
|
37
|
+
* option whatever the row held. The placeholder takes the selection when nothing matches, which
|
|
38
|
+
* is also what keeps an unset field unsubmittable: that option is `disabled`.
|
|
39
|
+
*/
|
|
34
40
|
export function Select(props: SelectProps): JSX.Element {
|
|
41
|
+
const current = props.value ?? '';
|
|
42
|
+
const matched = props.options.some((option) => option.value === current);
|
|
35
43
|
return (
|
|
36
44
|
<span class={cx(styles['wrap'], styles[`size-${props.size ?? 'md'}`], props.class)}>
|
|
37
45
|
<select
|
|
38
46
|
class={styles['select']}
|
|
39
47
|
id={props.id}
|
|
40
48
|
name={props.name}
|
|
41
|
-
value={props.value ?? ''}
|
|
42
49
|
required={props.required === true}
|
|
43
50
|
disabled={props.disabled === true}
|
|
44
51
|
aria-label={props['aria-label']}
|
|
@@ -47,12 +54,16 @@ export function Select(props: SelectProps): JSX.Element {
|
|
|
47
54
|
onChange={props.onChange}
|
|
48
55
|
>
|
|
49
56
|
{props.placeholder === undefined ? null : (
|
|
50
|
-
<option value="" disabled>
|
|
57
|
+
<option value="" disabled selected={!matched}>
|
|
51
58
|
{props.placeholder}
|
|
52
59
|
</option>
|
|
53
60
|
)}
|
|
54
61
|
{props.options.map((option) => (
|
|
55
|
-
<option
|
|
62
|
+
<option
|
|
63
|
+
value={option.value}
|
|
64
|
+
disabled={option.disabled === true}
|
|
65
|
+
selected={option.value === current}
|
|
66
|
+
>
|
|
56
67
|
{option.label}
|
|
57
68
|
</option>
|
|
58
69
|
))}
|
|
@@ -25,13 +25,19 @@ export interface TextareaProps {
|
|
|
25
25
|
onBlur?: JSX.EventHandlerUnion<HTMLTextAreaElement, FocusEvent> | undefined;
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
+
/**
|
|
29
|
+
* `<textarea>` has NO `value` attribute — its value is its text content, and the parser drops the
|
|
30
|
+
* attribute silently, so `value={…}` rendered every admin edit box empty whatever the row held.
|
|
31
|
+
* The leading newline is the serializer's, not the value's: the HTML parser strips exactly one
|
|
32
|
+
* newline after `<textarea>`, so emitting it unconditionally is what makes a value that itself
|
|
33
|
+
* starts with a newline survive the round trip.
|
|
34
|
+
*/
|
|
28
35
|
export function Textarea(props: TextareaProps): JSX.Element {
|
|
29
36
|
return (
|
|
30
37
|
<textarea
|
|
31
38
|
class={cx(styles['textarea'], props.autoGrow === true && styles['autoGrow'], props.class)}
|
|
32
39
|
id={props.id}
|
|
33
40
|
name={props.name}
|
|
34
|
-
value={props.value ?? ''}
|
|
35
41
|
placeholder={props.placeholder}
|
|
36
42
|
rows={props.rows ?? 3}
|
|
37
43
|
required={props.required === true}
|
|
@@ -43,6 +49,8 @@ export function Textarea(props: TextareaProps): JSX.Element {
|
|
|
43
49
|
aria-invalid={ariaBool(props['aria-invalid'])}
|
|
44
50
|
onInput={props.onInput}
|
|
45
51
|
onBlur={props.onBlur}
|
|
46
|
-
|
|
52
|
+
>
|
|
53
|
+
{`\n${props.value ?? ''}`}
|
|
54
|
+
</textarea>
|
|
47
55
|
);
|
|
48
56
|
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
// Which sections are expanded on first paint. A rule, not markup: `<details name>` is a radio
|
|
2
|
+
// group, so two open siblings is a state the browser silently resolves for you — deciding it
|
|
3
|
+
// here instead means the server and the browser agree on what the page looked like.
|
|
4
|
+
|
|
5
|
+
import { invalidValueError } from '../errors';
|
|
6
|
+
|
|
7
|
+
export interface AccordionSection {
|
|
8
|
+
readonly id: string;
|
|
9
|
+
readonly defaultOpen?: boolean | undefined;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* The open set. `exclusive` keeps the first requested section and closes the rest, because a
|
|
14
|
+
* `name`-grouped `<details>` can only have one open member and the browser picks silently.
|
|
15
|
+
*/
|
|
16
|
+
export function accordionOpenIds(
|
|
17
|
+
sections: readonly AccordionSection[],
|
|
18
|
+
exclusive = false,
|
|
19
|
+
): ReadonlySet<string> {
|
|
20
|
+
const seen = new Set<string>();
|
|
21
|
+
const open = new Set<string>();
|
|
22
|
+
for (const section of sections) {
|
|
23
|
+
if (seen.has(section.id)) {
|
|
24
|
+
throw invalidValueError('Accordion', section.id, 'a unique item id — ids become element ids');
|
|
25
|
+
}
|
|
26
|
+
seen.add(section.id);
|
|
27
|
+
if (section.defaultOpen !== true) continue;
|
|
28
|
+
if (exclusive && open.size > 0) continue;
|
|
29
|
+
open.add(section.id);
|
|
30
|
+
}
|
|
31
|
+
return open;
|
|
32
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
// What a query matches, as a pure rule. Runs on the server for the first paint and again on
|
|
2
|
+
// every debounced keystroke, so a no-JS form round-trip and a live filter narrow the list the
|
|
3
|
+
// same way — two matchers would eventually disagree, and the user would see the list flicker.
|
|
4
|
+
|
|
5
|
+
export interface ComboboxOption {
|
|
6
|
+
/** The text the field takes when the suggestion is picked — and what the form submits. */
|
|
7
|
+
value: string;
|
|
8
|
+
/** Already-translated hint shown beside the value. */
|
|
9
|
+
hint?: string | undefined;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
/** Suggestions rendered when the caller sets no limit. Long lists are a scroll, not an answer. */
|
|
13
|
+
export const COMBOBOX_LIMIT = 25;
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Case- and accent-insensitive: someone typing `cafe` means `Café`, and a filter that disagrees
|
|
17
|
+
* reads as "the option is missing".
|
|
18
|
+
*/
|
|
19
|
+
export function normalizeQuery(text: string): string {
|
|
20
|
+
return text
|
|
21
|
+
.normalize('NFD')
|
|
22
|
+
.replace(/\p{Diacritic}/gu, '')
|
|
23
|
+
.trim()
|
|
24
|
+
.toLowerCase();
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
const haystack = (option: ComboboxOption): string =>
|
|
28
|
+
normalizeQuery(option.hint === undefined ? option.value : `${option.value} ${option.hint}`);
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Matches ranked prefix-first, then substring, each keeping the caller's order. Prefix first
|
|
32
|
+
* because the first suggestion is the one the browser completes to.
|
|
33
|
+
*/
|
|
34
|
+
export function filterOptions(
|
|
35
|
+
options: readonly ComboboxOption[],
|
|
36
|
+
query = '',
|
|
37
|
+
limit: number = COMBOBOX_LIMIT,
|
|
38
|
+
): readonly ComboboxOption[] {
|
|
39
|
+
const needle = normalizeQuery(query);
|
|
40
|
+
if (needle === '') return options.slice(0, limit);
|
|
41
|
+
|
|
42
|
+
const prefix: ComboboxOption[] = [];
|
|
43
|
+
const contains: ComboboxOption[] = [];
|
|
44
|
+
for (const option of options) {
|
|
45
|
+
const text = haystack(option);
|
|
46
|
+
if (text.startsWith(needle)) prefix.push(option);
|
|
47
|
+
else if (text.includes(needle)) contains.push(option);
|
|
48
|
+
}
|
|
49
|
+
return [...prefix, ...contains].slice(0, limit);
|
|
50
|
+
}
|
|
@@ -38,7 +38,18 @@ export interface DateTimeView {
|
|
|
38
38
|
readonly text: string;
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
+
/** A date-TIME string with no `Z` and no `±HH:MM`. A date-only string is not one: the spec parses
|
|
42
|
+
* `2026-08-14` as UTC, so it is already zone-independent. */
|
|
43
|
+
const OFFSETLESS_DATETIME = /^\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}(?![\s\S]*(?:Z|[+-]\d{2}:?\d{2})$)/;
|
|
44
|
+
|
|
41
45
|
export function toDate(value: TimeInput): Date {
|
|
46
|
+
// `new Date('2026-08-14T09:00')` resolves in the HOST's zone — the one ambient default this
|
|
47
|
+
// package forbids, inside the one function that had it. It rendered `09:00` on a `TZ=UTC` runner
|
|
48
|
+
// and `00:00` on `TZ=Asia/Tokyo` with the same `timeZone="UTC"` prop and no error. Every
|
|
49
|
+
// FORMATTING path here was already zoned; only the parse was not.
|
|
50
|
+
if (typeof value === 'string' && OFFSETLESS_DATETIME.test(value)) {
|
|
51
|
+
throw invalidValueError('DateTime', value, 'an ISO string carrying Z or a ±HH:MM offset');
|
|
52
|
+
}
|
|
42
53
|
const date = value instanceof Date ? value : new Date(value);
|
|
43
54
|
if (Number.isNaN(date.getTime())) {
|
|
44
55
|
throw invalidValueError('DateTime', value, 'a valid Date, ISO string, or epoch millis');
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
// The rules behind `FileInput` and `Dropzone`, with no renderer: which files a control accepts,
|
|
2
|
+
// why it turned one away, and how a byte count and a ratio become something a human reads.
|
|
3
|
+
// Kept here because a `.tsx` holds markup and never a rule — and because "did it reject the
|
|
4
|
+
// right file" is the question a component test could never ask without a DOM.
|
|
5
|
+
|
|
6
|
+
/** Why a file was turned away. A reason, not a message: the caller owns the translated string. */
|
|
7
|
+
export type FileRejectionReason = 'type' | 'size' | 'count';
|
|
8
|
+
|
|
9
|
+
/** The three fields of a `File` these rules read. Structural, so a test needs no DOM. */
|
|
10
|
+
export interface FileCandidate {
|
|
11
|
+
readonly name: string;
|
|
12
|
+
readonly type: string;
|
|
13
|
+
readonly size: number;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export interface FileRejection<TFile extends FileCandidate> {
|
|
17
|
+
readonly file: TFile;
|
|
18
|
+
readonly reason: FileRejectionReason;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export interface FileSelection<TFile extends FileCandidate> {
|
|
22
|
+
readonly accepted: readonly TFile[];
|
|
23
|
+
/** Never dropped silently: a file that vanished with no explanation reads as a broken control. */
|
|
24
|
+
readonly rejected: readonly FileRejection<TFile>[];
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export interface FileSelectionLimits {
|
|
28
|
+
/** The `accept` attribute's own grammar: `.png`, `image/png`, `image/*`, comma-separated. */
|
|
29
|
+
readonly accept?: string | undefined;
|
|
30
|
+
readonly maxBytes?: number | undefined;
|
|
31
|
+
readonly maxFiles?: number | undefined;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* A file whose type the browser could not guess arrives with `type: ''`, and an empty type
|
|
36
|
+
* matches no MIME pattern here — not even a wildcard one — because the alternative is a control
|
|
37
|
+
* that quietly widens itself for exactly the files least worth trusting. The server sniffs the
|
|
38
|
+
* bytes anyway; this is the cheap half, and the cheap half fails closed too.
|
|
39
|
+
*/
|
|
40
|
+
export function acceptMatches(accept: string, file: FileCandidate): boolean {
|
|
41
|
+
const patterns = accept
|
|
42
|
+
.split(',')
|
|
43
|
+
.map((one) => one.trim().toLowerCase())
|
|
44
|
+
.filter((one) => one !== '');
|
|
45
|
+
if (patterns.length === 0) return true;
|
|
46
|
+
const type = file.type.toLowerCase();
|
|
47
|
+
const name = file.name.toLowerCase();
|
|
48
|
+
return patterns.some((pattern) => {
|
|
49
|
+
if (pattern.startsWith('.')) return name.endsWith(pattern);
|
|
50
|
+
if (pattern.endsWith('/*')) return type !== '' && type.startsWith(pattern.slice(0, -1));
|
|
51
|
+
return type !== '' && type === pattern;
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/** Partition a drop or a picker's `files` into what the control takes and what it refused. */
|
|
56
|
+
export function selectFiles<TFile extends FileCandidate>(
|
|
57
|
+
files: readonly TFile[],
|
|
58
|
+
limits: FileSelectionLimits = {},
|
|
59
|
+
): FileSelection<TFile> {
|
|
60
|
+
const accepted: TFile[] = [];
|
|
61
|
+
const rejected: FileRejection<TFile>[] = [];
|
|
62
|
+
for (const file of files) {
|
|
63
|
+
if (limits.accept !== undefined && !acceptMatches(limits.accept, file)) {
|
|
64
|
+
rejected.push({ file, reason: 'type' });
|
|
65
|
+
} else if (limits.maxBytes !== undefined && file.size > limits.maxBytes) {
|
|
66
|
+
rejected.push({ file, reason: 'size' });
|
|
67
|
+
} else if (limits.maxFiles !== undefined && accepted.length >= limits.maxFiles) {
|
|
68
|
+
rejected.push({ file, reason: 'count' });
|
|
69
|
+
} else {
|
|
70
|
+
accepted.push(file);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
return { accepted, rejected };
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/** 0..100, integer. A ratio outside the range, or `NaN`, is 0 — never a bar that renders `NaN%`. */
|
|
77
|
+
export function progressPercent(ratio: number): number {
|
|
78
|
+
if (!Number.isFinite(ratio)) return 0;
|
|
79
|
+
return Math.round(Math.min(Math.max(ratio, 0), 1) * 100);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
// Decimal, not binary: `Intl`'s byte units ARE decimal (kB = 1000 B), so dividing by 1024 and
|
|
83
|
+
// labelling the result "kB" through `Intl` prints a number that disagrees with its own unit.
|
|
84
|
+
const BYTE_UNITS = ['byte', 'kilobyte', 'megabyte', 'gigabyte', 'terabyte'] as const;
|
|
85
|
+
const BYTE_STEP = 1000;
|
|
86
|
+
|
|
87
|
+
/** A size a human reads, in the viewer's locale — never a hand-built "1.2 MB" string. */
|
|
88
|
+
export function formatBytes(bytes: number, locale: string): string {
|
|
89
|
+
const safe = Number.isFinite(bytes) && bytes > 0 ? bytes : 0;
|
|
90
|
+
let value = safe;
|
|
91
|
+
let index = 0;
|
|
92
|
+
while (value >= BYTE_STEP && index < BYTE_UNITS.length - 1) {
|
|
93
|
+
value /= BYTE_STEP;
|
|
94
|
+
index += 1;
|
|
95
|
+
}
|
|
96
|
+
return new Intl.NumberFormat(locale, {
|
|
97
|
+
style: 'unit',
|
|
98
|
+
unit: BYTE_UNITS[index] ?? 'byte',
|
|
99
|
+
unitDisplay: 'short',
|
|
100
|
+
maximumFractionDigits: index === 0 ? 0 : 1,
|
|
101
|
+
}).format(value);
|
|
102
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
// The Lucide glyph shape as data, and the one gate between glyph data and markup:
|
|
2
|
+
// only these tags, only these attributes, only token-safe paint. Pure, so the rule
|
|
3
|
+
// is testable with no renderer — the package's `*-view.ts` convention.
|
|
4
|
+
|
|
5
|
+
import { invalidGlyphError } from '../errors';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* A Lucide `IconNode`: `[tag, attributes]` pairs, the shape `lucide-static` publishes and the
|
|
9
|
+
* shape `src/icons/glyphs/*.ts` is generated into. Structural, so an upstream icon node passes
|
|
10
|
+
* straight in with no adapter.
|
|
11
|
+
*/
|
|
12
|
+
export type IconGlyph = readonly (readonly [
|
|
13
|
+
tag: string,
|
|
14
|
+
attrs: Readonly<Record<string, string>>,
|
|
15
|
+
])[];
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Tag → the attributes it may carry. The allowlist is the security property: a glyph is data, and
|
|
19
|
+
* data reaching an attribute sink unchecked is how `onload=` or `href=` gets into the DOM.
|
|
20
|
+
*/
|
|
21
|
+
export const ICON_TAGS = {
|
|
22
|
+
circle: ['cx', 'cy', 'r', 'fill'],
|
|
23
|
+
ellipse: ['cx', 'cy', 'rx', 'ry'],
|
|
24
|
+
line: ['x1', 'x2', 'y1', 'y2'],
|
|
25
|
+
path: ['d'],
|
|
26
|
+
polygon: ['points'],
|
|
27
|
+
polyline: ['points'],
|
|
28
|
+
rect: ['height', 'rx', 'ry', 'width', 'x', 'y'],
|
|
29
|
+
} as const satisfies Readonly<Record<string, readonly string[]>>;
|
|
30
|
+
|
|
31
|
+
export type IconTag = keyof typeof ICON_TAGS;
|
|
32
|
+
|
|
33
|
+
export interface IconElement {
|
|
34
|
+
readonly tag: IconTag;
|
|
35
|
+
readonly attrs: Readonly<Record<string, string>>;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/** The only paint values allowed: a literal colour in a glyph would bypass the token system. */
|
|
39
|
+
const FILL_VALUES: ReadonlySet<string> = new Set(['none', 'currentColor']);
|
|
40
|
+
|
|
41
|
+
export function isIconTag(tag: string): tag is IconTag {
|
|
42
|
+
return Object.hasOwn(ICON_TAGS, tag);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
const known = (tag: IconTag): readonly string[] => ICON_TAGS[tag];
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Validate a glyph and hand back its elements. Throws rather than silently dropping: a glyph that
|
|
49
|
+
* lost an attribute renders as a plausible-looking wrong icon, which is the bug nobody notices.
|
|
50
|
+
*/
|
|
51
|
+
export function iconElements(glyph: IconGlyph): readonly IconElement[] {
|
|
52
|
+
const elements: IconElement[] = [];
|
|
53
|
+
for (const [tag, attrs] of glyph) {
|
|
54
|
+
if (!isIconTag(tag)) {
|
|
55
|
+
throw invalidGlyphError(`tag <${tag}>`, `one of ${Object.keys(ICON_TAGS).join(', ')}`);
|
|
56
|
+
}
|
|
57
|
+
for (const [name, value] of Object.entries(attrs)) {
|
|
58
|
+
if (!known(tag).includes(name)) {
|
|
59
|
+
throw invalidGlyphError(
|
|
60
|
+
`attribute "${name}" on <${tag}>`,
|
|
61
|
+
`one of ${known(tag).join(', ')}`,
|
|
62
|
+
);
|
|
63
|
+
}
|
|
64
|
+
if (name === 'fill' && !FILL_VALUES.has(value)) {
|
|
65
|
+
throw invalidGlyphError(
|
|
66
|
+
`fill="${value}"`,
|
|
67
|
+
'fill="none" or fill="currentColor" — colour comes from the theme, never from the glyph',
|
|
68
|
+
);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
elements.push({ tag, attrs });
|
|
72
|
+
}
|
|
73
|
+
return elements;
|
|
74
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
// What the foot of an endless list shows. A rule, not markup: "loading", "there is more" and
|
|
2
|
+
// "that was everything" are three different announcements, and a list that shows two of them at
|
|
3
|
+
// once (or none) is the bug this decides away from the component.
|
|
4
|
+
|
|
5
|
+
import { invalidValueError } from '../errors';
|
|
6
|
+
|
|
7
|
+
export type LoadMoreState = 'loading' | 'more' | 'end';
|
|
8
|
+
|
|
9
|
+
export interface LoadMoreInput {
|
|
10
|
+
readonly hasMore: boolean;
|
|
11
|
+
readonly loading?: boolean | undefined;
|
|
12
|
+
/** The next page's URL. Required while there is more, because the no-JS path is a navigation. */
|
|
13
|
+
readonly nextHref?: string | undefined;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Loading wins over "more": the control must not invite a second request for a page that is
|
|
18
|
+
* already in flight.
|
|
19
|
+
*/
|
|
20
|
+
export function loadMoreState(input: LoadMoreInput): LoadMoreState {
|
|
21
|
+
if (input.hasMore && (input.nextHref ?? '') === '') {
|
|
22
|
+
throw invalidValueError(
|
|
23
|
+
'InfiniteScroll',
|
|
24
|
+
input.nextHref,
|
|
25
|
+
'a nextHref URL whenever hasMore is true — with scripting off the control is a link, and a link needs somewhere to go',
|
|
26
|
+
);
|
|
27
|
+
}
|
|
28
|
+
if (input.loading === true) return 'loading';
|
|
29
|
+
return input.hasMore ? 'more' : 'end';
|
|
30
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// Pure href/target core behind <Link>, <Avatar> and <Breadcrumb>. Split out so the two rules —
|
|
2
|
+
// a scheme a browser will execute is never emitted, and "external" is decided on the value that
|
|
3
|
+
// SURVIVES that check — are testable without a renderer. `javascript:` used to pass through
|
|
4
|
+
// `href={props.href}` untouched AND read as internal (the test was `/^https?:\/\//`), so it also
|
|
5
|
+
// lost `rel="noopener"`.
|
|
6
|
+
|
|
7
|
+
import { safeUrl } from '@ultimat3/core';
|
|
8
|
+
|
|
9
|
+
export interface LinkTarget {
|
|
10
|
+
/** `undefined` means emit no `href` at all: an inert anchor beats a live unchecked one. */
|
|
11
|
+
readonly href: string | undefined;
|
|
12
|
+
readonly external: boolean;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* `external` is `true` only for a URL that both survived the scheme check and names another
|
|
17
|
+
* origin's protocol — so a refused value can never acquire `target="_blank"` on the way out.
|
|
18
|
+
*/
|
|
19
|
+
export function linkTarget(href: string, declaredExternal?: boolean | undefined): LinkTarget {
|
|
20
|
+
const safe = safeUrl(href, 'href');
|
|
21
|
+
if (safe === null) return { href: undefined, external: false };
|
|
22
|
+
return { href: safe, external: declaredExternal === true || /^https?:\/\//.test(safe) };
|
|
23
|
+
}
|
package/src/debounce.ts
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
// Trailing-edge debounce: the last call of a burst wins, `ms` after the burst stops.
|
|
2
|
+
// One timer, always cancellable — a component that unmounts mid-burst must not fire
|
|
3
|
+
// a filter into a tree that is gone, which is what a leaked timer does.
|
|
4
|
+
|
|
5
|
+
import { invalidValueError } from './errors';
|
|
6
|
+
|
|
7
|
+
export interface Debounced<A extends readonly unknown[]> {
|
|
8
|
+
(...args: A): void;
|
|
9
|
+
/** Drop the pending call. Wire it to the component's cleanup. */
|
|
10
|
+
cancel(): void;
|
|
11
|
+
/** Run the pending call now, if there is one. Blur and submit both need this. */
|
|
12
|
+
flush(): void;
|
|
13
|
+
/** True while a call is waiting. */
|
|
14
|
+
pending(): boolean;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export const DEBOUNCE_DEFAULT_MS = 250;
|
|
18
|
+
|
|
19
|
+
export function debounce<A extends readonly unknown[]>(
|
|
20
|
+
fn: (...args: A) => void,
|
|
21
|
+
ms: number = DEBOUNCE_DEFAULT_MS,
|
|
22
|
+
): Debounced<A> {
|
|
23
|
+
if (!Number.isFinite(ms) || ms < 0) {
|
|
24
|
+
throw invalidValueError('debounce', ms, 'a finite, non-negative delay in milliseconds');
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
let timer: ReturnType<typeof setTimeout> | undefined;
|
|
28
|
+
let queued: A | undefined;
|
|
29
|
+
|
|
30
|
+
const cancel = (): void => {
|
|
31
|
+
if (timer !== undefined) clearTimeout(timer);
|
|
32
|
+
timer = undefined;
|
|
33
|
+
queued = undefined;
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
const run = (): void => {
|
|
37
|
+
const args = queued;
|
|
38
|
+
// Cleared BEFORE the call: `fn` may schedule the next burst, and clearing after would
|
|
39
|
+
// discard the call it just queued.
|
|
40
|
+
cancel();
|
|
41
|
+
if (args !== undefined) fn(...args);
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
const debounced = (...args: A): void => {
|
|
45
|
+
queued = args;
|
|
46
|
+
if (timer !== undefined) clearTimeout(timer);
|
|
47
|
+
timer = setTimeout(run, ms);
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
return Object.assign(debounced, {
|
|
51
|
+
cancel,
|
|
52
|
+
flush: run,
|
|
53
|
+
pending: (): boolean => timer !== undefined,
|
|
54
|
+
});
|
|
55
|
+
}
|