tempest-react-sdk 0.25.0 → 0.26.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/README.md +14 -1
- package/bin/lib/alias/collect.mjs +94 -0
- package/bin/lib/alias/collect.test.mjs +95 -0
- package/bin/lib/alias/discover.mjs +77 -0
- package/bin/lib/alias/discover.test.mjs +189 -0
- package/bin/lib/alias/index.mjs +88 -0
- package/bin/lib/alias/index.test.mjs +138 -0
- package/bin/lib/alias/rewrite-css.mjs +76 -0
- package/bin/lib/alias/rewrite-css.test.mjs +85 -0
- package/bin/lib/alias/rewrite.mjs +141 -0
- package/bin/lib/alias/rewrite.test.mjs +148 -0
- package/bin/lib/alias/specifier.mjs +49 -0
- package/bin/lib/alias/specifier.test.mjs +85 -0
- package/bin/lib/alias/tsconfig.mjs +116 -0
- package/bin/lib/alias/typescript.mjs +23 -0
- package/bin/lib/icons/generate.mjs +156 -0
- package/bin/lib/icons/generate.test.mjs +125 -0
- package/bin/tempest.mjs +158 -13
- package/dist/audio/use-audio.cjs +1 -1
- package/dist/audio/use-audio.cjs.map +1 -1
- package/dist/audio/use-audio.js +12 -12
- package/dist/audio/use-audio.js.map +1 -1
- package/dist/charts/palette.cjs +1 -1
- package/dist/charts/palette.cjs.map +1 -1
- package/dist/charts/palette.js +2 -2
- package/dist/charts/palette.js.map +1 -1
- package/dist/charts.d.ts +5 -3
- package/dist/components/ClickOutside/ClickOutside.cjs +1 -1
- package/dist/components/ClickOutside/ClickOutside.cjs.map +1 -1
- package/dist/components/ClickOutside/ClickOutside.js +3 -1
- package/dist/components/ClickOutside/ClickOutside.js.map +1 -1
- package/dist/components/DataTable/DataTable.cjs +1 -1
- package/dist/components/DataTable/DataTable.cjs.map +1 -1
- package/dist/components/DataTable/DataTable.js +21 -23
- package/dist/components/DataTable/DataTable.js.map +1 -1
- package/dist/components/Kanban/Kanban.cjs +2 -0
- package/dist/components/Kanban/Kanban.cjs.map +1 -0
- package/dist/components/Kanban/Kanban.js +102 -0
- package/dist/components/Kanban/Kanban.js.map +1 -0
- package/dist/components/Kanban/Kanban.module.cjs +2 -0
- package/dist/components/Kanban/Kanban.module.cjs.map +1 -0
- package/dist/components/Kanban/Kanban.module.js +19 -0
- package/dist/components/Kanban/Kanban.module.js.map +1 -0
- package/dist/components/NotificationCenter/NotificationCenter.cjs +2 -0
- package/dist/components/NotificationCenter/NotificationCenter.cjs.map +1 -0
- package/dist/components/NotificationCenter/NotificationCenter.js +83 -0
- package/dist/components/NotificationCenter/NotificationCenter.js.map +1 -0
- package/dist/components/NotificationCenter/NotificationCenter.module.cjs +2 -0
- package/dist/components/NotificationCenter/NotificationCenter.module.cjs.map +1 -0
- package/dist/components/NotificationCenter/NotificationCenter.module.js +21 -0
- package/dist/components/NotificationCenter/NotificationCenter.module.js.map +1 -0
- package/dist/components/NotificationCenter/use-notification-inbox.cjs +2 -0
- package/dist/components/NotificationCenter/use-notification-inbox.cjs.map +1 -0
- package/dist/components/NotificationCenter/use-notification-inbox.js +63 -0
- package/dist/components/NotificationCenter/use-notification-inbox.js.map +1 -0
- package/dist/components/RefreshIndicator/RefreshIndicator.cjs +1 -1
- package/dist/components/RefreshIndicator/RefreshIndicator.cjs.map +1 -1
- package/dist/components/RefreshIndicator/RefreshIndicator.js +17 -17
- package/dist/components/RefreshIndicator/RefreshIndicator.js.map +1 -1
- package/dist/components/Tooltip/Tooltip.cjs +1 -1
- package/dist/components/Tooltip/Tooltip.cjs.map +1 -1
- package/dist/components/Tooltip/Tooltip.js +26 -20
- package/dist/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/components/VirtualTable/VirtualTable.cjs +2 -0
- package/dist/components/VirtualTable/VirtualTable.cjs.map +1 -0
- package/dist/components/VirtualTable/VirtualTable.js +116 -0
- package/dist/components/VirtualTable/VirtualTable.js.map +1 -0
- package/dist/components/VirtualTable/VirtualTable.module.cjs +2 -0
- package/dist/components/VirtualTable/VirtualTable.module.cjs.map +1 -0
- package/dist/components/VirtualTable/VirtualTable.module.js +20 -0
- package/dist/components/VirtualTable/VirtualTable.module.js.map +1 -0
- package/dist/components/Wizard/Wizard.cjs +1 -1
- package/dist/components/Wizard/Wizard.cjs.map +1 -1
- package/dist/components/Wizard/Wizard.js +53 -53
- package/dist/components/Wizard/Wizard.js.map +1 -1
- package/dist/geo/use-position-tracker.cjs +1 -1
- package/dist/geo/use-position-tracker.cjs.map +1 -1
- package/dist/geo/use-position-tracker.js +3 -1
- package/dist/geo/use-position-tracker.js.map +1 -1
- package/dist/hooks/use-async.cjs +1 -1
- package/dist/hooks/use-async.cjs.map +1 -1
- package/dist/hooks/use-async.js +3 -1
- package/dist/hooks/use-async.js.map +1 -1
- package/dist/hooks/use-click-outside.cjs +1 -1
- package/dist/hooks/use-click-outside.cjs.map +1 -1
- package/dist/hooks/use-click-outside.js +3 -1
- package/dist/hooks/use-click-outside.js.map +1 -1
- package/dist/hooks/use-deep-memo.cjs.map +1 -1
- package/dist/hooks/use-deep-memo.js.map +1 -1
- package/dist/hooks/use-event-listener.cjs +1 -1
- package/dist/hooks/use-event-listener.cjs.map +1 -1
- package/dist/hooks/use-event-listener.js +3 -1
- package/dist/hooks/use-event-listener.js.map +1 -1
- package/dist/hooks/use-interval.cjs +1 -1
- package/dist/hooks/use-interval.cjs.map +1 -1
- package/dist/hooks/use-interval.js +3 -1
- package/dist/hooks/use-interval.js.map +1 -1
- package/dist/hooks/use-is-first-render.cjs.map +1 -1
- package/dist/hooks/use-is-first-render.js.map +1 -1
- package/dist/hooks/use-long-press-handlers.cjs +1 -1
- package/dist/hooks/use-long-press-handlers.cjs.map +1 -1
- package/dist/hooks/use-long-press-handlers.js +25 -23
- package/dist/hooks/use-long-press-handlers.js.map +1 -1
- package/dist/hooks/use-long-press.cjs +1 -1
- package/dist/hooks/use-long-press.cjs.map +1 -1
- package/dist/hooks/use-long-press.js +3 -1
- package/dist/hooks/use-long-press.js.map +1 -1
- package/dist/hooks/use-online.cjs +1 -1
- package/dist/hooks/use-online.cjs.map +1 -1
- package/dist/hooks/use-online.js +6 -4
- package/dist/hooks/use-online.js.map +1 -1
- package/dist/hooks/use-previous.cjs.map +1 -1
- package/dist/hooks/use-previous.js.map +1 -1
- package/dist/hooks/use-service-worker-update.cjs +1 -1
- package/dist/hooks/use-service-worker-update.cjs.map +1 -1
- package/dist/hooks/use-service-worker-update.js +3 -1
- package/dist/hooks/use-service-worker-update.js.map +1 -1
- package/dist/hooks/use-sortable.cjs +2 -0
- package/dist/hooks/use-sortable.cjs.map +1 -0
- package/dist/hooks/use-sortable.js +169 -0
- package/dist/hooks/use-sortable.js.map +1 -0
- package/dist/hooks/use-stable-callback.cjs.map +1 -1
- package/dist/hooks/use-stable-callback.js.map +1 -1
- package/dist/hooks/use-timeout.cjs +1 -1
- package/dist/hooks/use-timeout.cjs.map +1 -1
- package/dist/hooks/use-timeout.js +3 -1
- package/dist/hooks/use-timeout.js.map +1 -1
- package/dist/icons/Icon.cjs +2 -0
- package/dist/icons/Icon.cjs.map +1 -0
- package/dist/icons/Icon.js +24 -0
- package/dist/icons/Icon.js.map +1 -0
- package/dist/icons/IconProvider.cjs +2 -0
- package/dist/icons/IconProvider.cjs.map +1 -0
- package/dist/icons/IconProvider.js +24 -0
- package/dist/icons/IconProvider.js.map +1 -0
- package/dist/icons/generated/aliases.cjs +2 -0
- package/dist/icons/generated/aliases.cjs.map +1 -0
- package/dist/icons/generated/aliases.js +255 -0
- package/dist/icons/generated/aliases.js.map +1 -0
- package/dist/icons/generated/icon-names.cjs +2 -0
- package/dist/icons/generated/icon-names.cjs.map +1 -0
- package/dist/icons/generated/icon-names.js +6 -0
- package/dist/icons/generated/icon-names.js.map +1 -0
- package/dist/icons/generated/loaders.cjs +2 -0
- package/dist/icons/generated/loaders.cjs.map +1 -0
- package/dist/icons/generated/loaders.js +32 -0
- package/dist/icons/generated/loaders.js.map +1 -0
- package/dist/icons/generated/shard-a.cjs +2 -0
- package/dist/icons/generated/shard-a.cjs.map +1 -0
- package/dist/icons/generated/shard-a.js +114 -0
- package/dist/icons/generated/shard-a.js.map +1 -0
- package/dist/icons/generated/shard-b.cjs +2 -0
- package/dist/icons/generated/shard-b.cjs.map +1 -0
- package/dist/icons/generated/shard-b.js +156 -0
- package/dist/icons/generated/shard-b.js.map +1 -0
- package/dist/icons/generated/shard-c.cjs +2 -0
- package/dist/icons/generated/shard-c.cjs.map +1 -0
- package/dist/icons/generated/shard-c.js +269 -0
- package/dist/icons/generated/shard-c.js.map +1 -0
- package/dist/icons/generated/shard-d.cjs +2 -0
- package/dist/icons/generated/shard-d.cjs.map +1 -0
- package/dist/icons/generated/shard-d.js +62 -0
- package/dist/icons/generated/shard-d.js.map +1 -0
- package/dist/icons/generated/shard-e.cjs +2 -0
- package/dist/icons/generated/shard-e.cjs.map +1 -0
- package/dist/icons/generated/shard-e.js +32 -0
- package/dist/icons/generated/shard-e.js.map +1 -0
- package/dist/icons/generated/shard-f.cjs +2 -0
- package/dist/icons/generated/shard-f.cjs.map +1 -0
- package/dist/icons/generated/shard-f.js +139 -0
- package/dist/icons/generated/shard-f.js.map +1 -0
- package/dist/icons/generated/shard-g.cjs +2 -0
- package/dist/icons/generated/shard-g.cjs.map +1 -0
- package/dist/icons/generated/shard-g.js +61 -0
- package/dist/icons/generated/shard-g.js.map +1 -0
- package/dist/icons/generated/shard-h.cjs +2 -0
- package/dist/icons/generated/shard-h.cjs.map +1 -0
- package/dist/icons/generated/shard-h.js +63 -0
- package/dist/icons/generated/shard-h.js.map +1 -0
- package/dist/icons/generated/shard-i.cjs +2 -0
- package/dist/icons/generated/shard-i.cjs.map +1 -0
- package/dist/icons/generated/shard-i.js +30 -0
- package/dist/icons/generated/shard-i.js.map +1 -0
- package/dist/icons/generated/shard-j.cjs +2 -0
- package/dist/icons/generated/shard-j.cjs.map +1 -0
- package/dist/icons/generated/shard-j.js +10 -0
- package/dist/icons/generated/shard-j.js.map +1 -0
- package/dist/icons/generated/shard-k.cjs +2 -0
- package/dist/icons/generated/shard-k.cjs.map +1 -0
- package/dist/icons/generated/shard-k.js +16 -0
- package/dist/icons/generated/shard-k.js.map +1 -0
- package/dist/icons/generated/shard-l.cjs +2 -0
- package/dist/icons/generated/shard-l.cjs.map +1 -0
- package/dist/icons/generated/shard-l.js +88 -0
- package/dist/icons/generated/shard-l.js.map +1 -0
- package/dist/icons/generated/shard-m.cjs +2 -0
- package/dist/icons/generated/shard-m.cjs.map +1 -0
- package/dist/icons/generated/shard-m.js +140 -0
- package/dist/icons/generated/shard-m.js.map +1 -0
- package/dist/icons/generated/shard-n.cjs +2 -0
- package/dist/icons/generated/shard-n.cjs.map +1 -0
- package/dist/icons/generated/shard-n.js +24 -0
- package/dist/icons/generated/shard-n.js.map +1 -0
- package/dist/icons/generated/shard-o.cjs +2 -0
- package/dist/icons/generated/shard-o.cjs.map +1 -0
- package/dist/icons/generated/shard-o.js +17 -0
- package/dist/icons/generated/shard-o.js.map +1 -0
- package/dist/icons/generated/shard-p.cjs +2 -0
- package/dist/icons/generated/shard-p.cjs.map +1 -0
- package/dist/icons/generated/shard-p.js +115 -0
- package/dist/icons/generated/shard-p.js.map +1 -0
- package/dist/icons/generated/shard-q.cjs +2 -0
- package/dist/icons/generated/shard-q.cjs.map +1 -0
- package/dist/icons/generated/shard-q.js +10 -0
- package/dist/icons/generated/shard-q.js.map +1 -0
- package/dist/icons/generated/shard-r.cjs +2 -0
- package/dist/icons/generated/shard-r.cjs.map +1 -0
- package/dist/icons/generated/shard-r.js +77 -0
- package/dist/icons/generated/shard-r.js.map +1 -0
- package/dist/icons/generated/shard-s.cjs +2 -0
- package/dist/icons/generated/shard-s.cjs.map +1 -0
- package/dist/icons/generated/shard-s.js +255 -0
- package/dist/icons/generated/shard-s.js.map +1 -0
- package/dist/icons/generated/shard-t.cjs +2 -0
- package/dist/icons/generated/shard-t.cjs.map +1 -0
- package/dist/icons/generated/shard-t.js +109 -0
- package/dist/icons/generated/shard-t.js.map +1 -0
- package/dist/icons/generated/shard-u.cjs +2 -0
- package/dist/icons/generated/shard-u.cjs.map +1 -0
- package/dist/icons/generated/shard-u.js +49 -0
- package/dist/icons/generated/shard-u.js.map +1 -0
- package/dist/icons/generated/shard-v.cjs +2 -0
- package/dist/icons/generated/shard-v.cjs.map +1 -0
- package/dist/icons/generated/shard-v.js +30 -0
- package/dist/icons/generated/shard-v.js.map +1 -0
- package/dist/icons/generated/shard-w.cjs +2 -0
- package/dist/icons/generated/shard-w.cjs.map +1 -0
- package/dist/icons/generated/shard-w.js +48 -0
- package/dist/icons/generated/shard-w.js.map +1 -0
- package/dist/icons/generated/shard-x.cjs +2 -0
- package/dist/icons/generated/shard-x.cjs.map +1 -0
- package/dist/icons/generated/shard-x.js +10 -0
- package/dist/icons/generated/shard-x.js.map +1 -0
- package/dist/icons/generated/shard-z.cjs +2 -0
- package/dist/icons/generated/shard-z.cjs.map +1 -0
- package/dist/icons/generated/shard-z.js +25 -0
- package/dist/icons/generated/shard-z.js.map +1 -0
- package/dist/icons/icon-context.cjs +2 -0
- package/dist/icons/icon-context.cjs.map +1 -0
- package/dist/icons/icon-context.js +13 -0
- package/dist/icons/icon-context.js.map +1 -0
- package/dist/icons/is-icon-name.cjs +2 -0
- package/dist/icons/is-icon-name.cjs.map +1 -0
- package/dist/icons/is-icon-name.js +10 -0
- package/dist/icons/is-icon-name.js.map +1 -0
- package/dist/icons/shard-cache.cjs +2 -0
- package/dist/icons/shard-cache.cjs.map +1 -0
- package/dist/icons/shard-cache.js +41 -0
- package/dist/icons/shard-cache.js.map +1 -0
- package/dist/icons/use-icon.cjs +2 -0
- package/dist/icons/use-icon.cjs.map +1 -0
- package/dist/icons/use-icon.js +20 -0
- package/dist/icons/use-icon.js.map +1 -0
- package/dist/icons-virtual.d.ts +22 -0
- package/dist/icons.cjs +1 -0
- package/dist/icons.d.ts +220 -0
- package/dist/icons.js +9 -0
- package/dist/offline/use-offline-sync.cjs +1 -1
- package/dist/offline/use-offline-sync.cjs.map +1 -1
- package/dist/offline/use-offline-sync.js +3 -1
- package/dist/offline/use-offline-sync.js.map +1 -1
- package/dist/push/use-push-subscription.cjs +1 -1
- package/dist/push/use-push-subscription.cjs.map +1 -1
- package/dist/push/use-push-subscription.js +3 -1
- package/dist/push/use-push-subscription.js.map +1 -1
- package/dist/sse/use-event-stream.cjs +1 -1
- package/dist/sse/use-event-stream.cjs.map +1 -1
- package/dist/sse/use-event-stream.js +3 -1
- package/dist/sse/use-event-stream.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/tempest-react-sdk.cjs +1 -1
- package/dist/tempest-react-sdk.d.ts +585 -3
- package/dist/tempest-react-sdk.js +189 -183
- package/dist/theme/ThemeProvider.cjs +1 -1
- package/dist/theme/ThemeProvider.cjs.map +1 -1
- package/dist/theme/ThemeProvider.js +6 -2
- package/dist/theme/ThemeProvider.js.map +1 -1
- package/dist/theme/color.cjs +1 -1
- package/dist/theme/color.cjs.map +1 -1
- package/dist/theme/color.js +77 -46
- package/dist/theme/color.js.map +1 -1
- package/dist/theme/create-theme.cjs +1 -1
- package/dist/theme/create-theme.cjs.map +1 -1
- package/dist/theme/create-theme.js +9 -3
- package/dist/theme/create-theme.js.map +1 -1
- package/dist/utils/compare-values.cjs +2 -0
- package/dist/utils/compare-values.cjs.map +1 -0
- package/dist/utils/compare-values.js +8 -0
- package/dist/utils/compare-values.js.map +1 -0
- package/dist/vision/use-camera-stream.cjs +1 -1
- package/dist/vision/use-camera-stream.cjs.map +1 -1
- package/dist/vision/use-camera-stream.js +3 -1
- package/dist/vision/use-camera-stream.js.map +1 -1
- package/dist/vite/create-vite-config.cjs +1 -1
- package/dist/vite/create-vite-config.cjs.map +1 -1
- package/dist/vite/create-vite-config.js +30 -22
- package/dist/vite/create-vite-config.js.map +1 -1
- package/dist/vite/tempest-icons.cjs +9 -0
- package/dist/vite/tempest-icons.cjs.map +1 -0
- package/dist/vite/tempest-icons.js +99 -0
- package/dist/vite/tempest-icons.js.map +1 -0
- package/dist/vite.cjs +1 -1
- package/dist/vite.d.ts +79 -0
- package/dist/vite.js +6 -5
- package/dist/ws/use-web-socket.cjs +1 -1
- package/dist/ws/use-web-socket.cjs.map +1 -1
- package/dist/ws/use-web-socket.js +3 -1
- package/dist/ws/use-web-socket.js.map +1 -1
- package/package.json +12 -3
- package/template/package.json +1 -1
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { Umbrella as e, UmbrellaOff as t, Underline as n, Undo as r, Undo2 as i, UndoDot as a, UnfoldHorizontal as o, UnfoldVertical as s, Ungroup as c, University as l, Unlink as u, Unlink2 as d, Unplug as f, Upload as p, Usb as m, User as h, UserCheck as g, UserCog as _, UserKey as v, UserLock as y, UserMinus as b, UserPen as x, UserPlus as S, UserRound as C, UserRoundArrowLeft as w, UserRoundCheck as T, UserRoundCog as E, UserRoundKey as D, UserRoundMinus as O, UserRoundPen as k, UserRoundPlus as A, UserRoundSearch as j, UserRoundX as M, UserSearch as N, UserStar as P, UserX as F, Users as I, UsersRound as L, Utensils as R, UtensilsCrossed as z, UtilityPole as B } from "lucide-react";
|
|
2
|
+
//#region src/icons/generated/shard-u.ts
|
|
3
|
+
var V = {
|
|
4
|
+
umbrella: e,
|
|
5
|
+
"umbrella-off": t,
|
|
6
|
+
underline: n,
|
|
7
|
+
undo: r,
|
|
8
|
+
"undo-2": i,
|
|
9
|
+
"undo-dot": a,
|
|
10
|
+
"unfold-horizontal": o,
|
|
11
|
+
"unfold-vertical": s,
|
|
12
|
+
ungroup: c,
|
|
13
|
+
university: l,
|
|
14
|
+
unlink: u,
|
|
15
|
+
"unlink-2": d,
|
|
16
|
+
unplug: f,
|
|
17
|
+
upload: p,
|
|
18
|
+
usb: m,
|
|
19
|
+
user: h,
|
|
20
|
+
"user-check": g,
|
|
21
|
+
"user-cog": _,
|
|
22
|
+
"user-key": v,
|
|
23
|
+
"user-lock": y,
|
|
24
|
+
"user-minus": b,
|
|
25
|
+
"user-pen": x,
|
|
26
|
+
"user-plus": S,
|
|
27
|
+
"user-round": C,
|
|
28
|
+
"user-round-arrow-left": w,
|
|
29
|
+
"user-round-check": T,
|
|
30
|
+
"user-round-cog": E,
|
|
31
|
+
"user-round-key": D,
|
|
32
|
+
"user-round-minus": O,
|
|
33
|
+
"user-round-pen": k,
|
|
34
|
+
"user-round-plus": A,
|
|
35
|
+
"user-round-search": j,
|
|
36
|
+
"user-round-x": M,
|
|
37
|
+
"user-search": N,
|
|
38
|
+
"user-star": P,
|
|
39
|
+
"user-x": F,
|
|
40
|
+
users: I,
|
|
41
|
+
"users-round": L,
|
|
42
|
+
utensils: R,
|
|
43
|
+
"utensils-crossed": z,
|
|
44
|
+
"utility-pole": B
|
|
45
|
+
};
|
|
46
|
+
//#endregion
|
|
47
|
+
export { V as default };
|
|
48
|
+
|
|
49
|
+
//# sourceMappingURL=shard-u.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shard-u.js","names":[],"sources":["../../../src/icons/generated/shard-u.ts"],"sourcesContent":["// GENERATED by scripts/gen-icons.mjs — do not edit.\n// Run `npm run gen:icons` after bumping lucide-react.\n\nimport {\n Umbrella,\n UmbrellaOff,\n Underline,\n Undo,\n Undo2,\n UndoDot,\n UnfoldHorizontal,\n UnfoldVertical,\n Ungroup,\n University,\n Unlink,\n Unlink2,\n Unplug,\n Upload,\n Usb,\n User,\n UserCheck,\n UserCog,\n UserKey,\n UserLock,\n UserMinus,\n UserPen,\n UserPlus,\n UserRound,\n UserRoundArrowLeft,\n UserRoundCheck,\n UserRoundCog,\n UserRoundKey,\n UserRoundMinus,\n UserRoundPen,\n UserRoundPlus,\n UserRoundSearch,\n UserRoundX,\n UserSearch,\n UserStar,\n UserX,\n Users,\n UsersRound,\n Utensils,\n UtensilsCrossed,\n UtilityPole,\n} from \"lucide-react\";\nimport type { LucideIcon } from \"lucide-react\";\n\n/** The 41 lucide icons whose slug starts with \"u\". */\nconst shard: Record<string, LucideIcon> = {\n umbrella: Umbrella,\n \"umbrella-off\": UmbrellaOff,\n underline: Underline,\n undo: Undo,\n \"undo-2\": Undo2,\n \"undo-dot\": UndoDot,\n \"unfold-horizontal\": UnfoldHorizontal,\n \"unfold-vertical\": UnfoldVertical,\n ungroup: Ungroup,\n university: University,\n unlink: Unlink,\n \"unlink-2\": Unlink2,\n unplug: Unplug,\n upload: Upload,\n usb: Usb,\n user: User,\n \"user-check\": UserCheck,\n \"user-cog\": UserCog,\n \"user-key\": UserKey,\n \"user-lock\": UserLock,\n \"user-minus\": UserMinus,\n \"user-pen\": UserPen,\n \"user-plus\": UserPlus,\n \"user-round\": UserRound,\n \"user-round-arrow-left\": UserRoundArrowLeft,\n \"user-round-check\": UserRoundCheck,\n \"user-round-cog\": UserRoundCog,\n \"user-round-key\": UserRoundKey,\n \"user-round-minus\": UserRoundMinus,\n \"user-round-pen\": UserRoundPen,\n \"user-round-plus\": UserRoundPlus,\n \"user-round-search\": UserRoundSearch,\n \"user-round-x\": UserRoundX,\n \"user-search\": UserSearch,\n \"user-star\": UserStar,\n \"user-x\": UserX,\n users: Users,\n \"users-round\": UsersRound,\n utensils: Utensils,\n \"utensils-crossed\": UtensilsCrossed,\n \"utility-pole\": UtilityPole,\n};\n\nexport default shard;\n"],"mappings":";;AAiDA,IAAM,IAAoC;CACtC,UAAU;CACV,gBAAgB;CAChB,WAAW;CACX,MAAM;CACN,UAAU;CACV,YAAY;CACZ,qBAAqB;CACrB,mBAAmB;CACnB,SAAS;CACT,YAAY;CACZ,QAAQ;CACR,YAAY;CACZ,QAAQ;CACR,QAAQ;CACR,KAAK;CACL,MAAM;CACN,cAAc;CACd,YAAY;CACZ,YAAY;CACZ,aAAa;CACb,cAAc;CACd,YAAY;CACZ,aAAa;CACb,cAAc;CACd,yBAAyB;CACzB,oBAAoB;CACpB,kBAAkB;CAClB,kBAAkB;CAClB,oBAAoB;CACpB,kBAAkB;CAClB,mBAAmB;CACnB,qBAAqB;CACrB,gBAAgB;CAChB,eAAe;CACf,aAAa;CACb,UAAU;CACV,OAAO;CACP,eAAe;CACf,UAAU;CACV,oBAAoB;CACpB,gBAAgB;AACpB"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
let e=require("lucide-react");var t={van:e.Van,variable:e.Variable,vault:e.Vault,"vector-square":e.VectorSquare,vegan:e.Vegan,"venetian-mask":e.VenetianMask,venus:e.Venus,"venus-and-mars":e.VenusAndMars,vibrate:e.Vibrate,"vibrate-off":e.VibrateOff,video:e.Video,"video-off":e.VideoOff,videotape:e.Videotape,view:e.View,voicemail:e.Voicemail,volleyball:e.Volleyball,volume:e.Volume,"volume-1":e.Volume1,"volume-2":e.Volume2,"volume-off":e.VolumeOff,"volume-x":e.VolumeX,vote:e.Vote};exports.default=t;
|
|
2
|
+
//# sourceMappingURL=shard-v.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shard-v.cjs","names":[],"sources":["../../../src/icons/generated/shard-v.ts"],"sourcesContent":["// GENERATED by scripts/gen-icons.mjs — do not edit.\n// Run `npm run gen:icons` after bumping lucide-react.\n\nimport {\n Van,\n Variable,\n Vault,\n VectorSquare,\n Vegan,\n VenetianMask,\n Venus,\n VenusAndMars,\n Vibrate,\n VibrateOff,\n Video,\n VideoOff,\n Videotape,\n View,\n Voicemail,\n Volleyball,\n Volume,\n Volume1,\n Volume2,\n VolumeOff,\n VolumeX,\n Vote,\n} from \"lucide-react\";\nimport type { LucideIcon } from \"lucide-react\";\n\n/** The 22 lucide icons whose slug starts with \"v\". */\nconst shard: Record<string, LucideIcon> = {\n van: Van,\n variable: Variable,\n vault: Vault,\n \"vector-square\": VectorSquare,\n vegan: Vegan,\n \"venetian-mask\": VenetianMask,\n venus: Venus,\n \"venus-and-mars\": VenusAndMars,\n vibrate: Vibrate,\n \"vibrate-off\": VibrateOff,\n video: Video,\n \"video-off\": VideoOff,\n videotape: Videotape,\n view: View,\n voicemail: Voicemail,\n volleyball: Volleyball,\n volume: Volume,\n \"volume-1\": Volume1,\n \"volume-2\": Volume2,\n \"volume-off\": VolumeOff,\n \"volume-x\": VolumeX,\n vote: Vote,\n};\n\nexport default shard;\n"],"mappings":"8BA8BA,IAAM,EAAoC,CACtC,IAAK,EAAA,IACL,SAAU,EAAA,SACV,MAAO,EAAA,MACP,gBAAiB,EAAA,aACjB,MAAO,EAAA,MACP,gBAAiB,EAAA,aACjB,MAAO,EAAA,MACP,iBAAkB,EAAA,aAClB,QAAS,EAAA,QACT,cAAe,EAAA,WACf,MAAO,EAAA,MACP,YAAa,EAAA,SACb,UAAW,EAAA,UACX,KAAM,EAAA,KACN,UAAW,EAAA,UACX,WAAY,EAAA,WACZ,OAAQ,EAAA,OACR,WAAY,EAAA,QACZ,WAAY,EAAA,QACZ,aAAc,EAAA,UACd,WAAY,EAAA,QACZ,KAAM,EAAA,IACV"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Van as e, Variable as t, Vault as n, VectorSquare as r, Vegan as i, VenetianMask as a, Venus as o, VenusAndMars as s, Vibrate as c, VibrateOff as l, Video as u, VideoOff as d, Videotape as f, View as p, Voicemail as m, Volleyball as h, Volume as g, Volume1 as _, Volume2 as v, VolumeOff as y, VolumeX as b, Vote as x } from "lucide-react";
|
|
2
|
+
//#region src/icons/generated/shard-v.ts
|
|
3
|
+
var S = {
|
|
4
|
+
van: e,
|
|
5
|
+
variable: t,
|
|
6
|
+
vault: n,
|
|
7
|
+
"vector-square": r,
|
|
8
|
+
vegan: i,
|
|
9
|
+
"venetian-mask": a,
|
|
10
|
+
venus: o,
|
|
11
|
+
"venus-and-mars": s,
|
|
12
|
+
vibrate: c,
|
|
13
|
+
"vibrate-off": l,
|
|
14
|
+
video: u,
|
|
15
|
+
"video-off": d,
|
|
16
|
+
videotape: f,
|
|
17
|
+
view: p,
|
|
18
|
+
voicemail: m,
|
|
19
|
+
volleyball: h,
|
|
20
|
+
volume: g,
|
|
21
|
+
"volume-1": _,
|
|
22
|
+
"volume-2": v,
|
|
23
|
+
"volume-off": y,
|
|
24
|
+
"volume-x": b,
|
|
25
|
+
vote: x
|
|
26
|
+
};
|
|
27
|
+
//#endregion
|
|
28
|
+
export { S as default };
|
|
29
|
+
|
|
30
|
+
//# sourceMappingURL=shard-v.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shard-v.js","names":[],"sources":["../../../src/icons/generated/shard-v.ts"],"sourcesContent":["// GENERATED by scripts/gen-icons.mjs — do not edit.\n// Run `npm run gen:icons` after bumping lucide-react.\n\nimport {\n Van,\n Variable,\n Vault,\n VectorSquare,\n Vegan,\n VenetianMask,\n Venus,\n VenusAndMars,\n Vibrate,\n VibrateOff,\n Video,\n VideoOff,\n Videotape,\n View,\n Voicemail,\n Volleyball,\n Volume,\n Volume1,\n Volume2,\n VolumeOff,\n VolumeX,\n Vote,\n} from \"lucide-react\";\nimport type { LucideIcon } from \"lucide-react\";\n\n/** The 22 lucide icons whose slug starts with \"v\". */\nconst shard: Record<string, LucideIcon> = {\n van: Van,\n variable: Variable,\n vault: Vault,\n \"vector-square\": VectorSquare,\n vegan: Vegan,\n \"venetian-mask\": VenetianMask,\n venus: Venus,\n \"venus-and-mars\": VenusAndMars,\n vibrate: Vibrate,\n \"vibrate-off\": VibrateOff,\n video: Video,\n \"video-off\": VideoOff,\n videotape: Videotape,\n view: View,\n voicemail: Voicemail,\n volleyball: Volleyball,\n volume: Volume,\n \"volume-1\": Volume1,\n \"volume-2\": Volume2,\n \"volume-off\": VolumeOff,\n \"volume-x\": VolumeX,\n vote: Vote,\n};\n\nexport default shard;\n"],"mappings":";;AA8BA,IAAM,IAAoC;CACtC,KAAK;CACL,UAAU;CACV,OAAO;CACP,iBAAiB;CACjB,OAAO;CACP,iBAAiB;CACjB,OAAO;CACP,kBAAkB;CAClB,SAAS;CACT,eAAe;CACf,OAAO;CACP,aAAa;CACb,WAAW;CACX,MAAM;CACN,WAAW;CACX,YAAY;CACZ,QAAQ;CACR,YAAY;CACZ,YAAY;CACZ,cAAc;CACd,YAAY;CACZ,MAAM;AACV"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
let e=require("lucide-react");var t={wallet:e.Wallet,"wallet-cards":e.WalletCards,"wallet-minimal":e.WalletMinimal,wallpaper:e.Wallpaper,wand:e.Wand,"wand-sparkles":e.WandSparkles,warehouse:e.Warehouse,"washing-machine":e.WashingMachine,watch:e.Watch,"waves-arrow-down":e.WavesArrowDown,"waves-arrow-up":e.WavesArrowUp,"waves-horizontal":e.WavesHorizontal,"waves-ladder":e.WavesLadder,"waves-vertical":e.WavesVertical,waypoints:e.Waypoints,webcam:e.Webcam,"webcam-off":e.WebcamOff,webhook:e.Webhook,"webhook-off":e.WebhookOff,weight:e.Weight,"weight-tilde":e.WeightTilde,wheat:e.Wheat,"wheat-off":e.WheatOff,"whole-word":e.WholeWord,wifi:e.Wifi,"wifi-cog":e.WifiCog,"wifi-high":e.WifiHigh,"wifi-low":e.WifiLow,"wifi-off":e.WifiOff,"wifi-pen":e.WifiPen,"wifi-sync":e.WifiSync,"wifi-zero":e.WifiZero,wind:e.Wind,"wind-arrow-down":e.WindArrowDown,wine:e.Wine,"wine-off":e.WineOff,workflow:e.Workflow,worm:e.Worm,wrench:e.Wrench,"wrench-off":e.WrenchOff};exports.default=t;
|
|
2
|
+
//# sourceMappingURL=shard-w.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shard-w.cjs","names":[],"sources":["../../../src/icons/generated/shard-w.ts"],"sourcesContent":["// GENERATED by scripts/gen-icons.mjs — do not edit.\n// Run `npm run gen:icons` after bumping lucide-react.\n\nimport {\n Wallet,\n WalletCards,\n WalletMinimal,\n Wallpaper,\n Wand,\n WandSparkles,\n Warehouse,\n WashingMachine,\n Watch,\n WavesArrowDown,\n WavesArrowUp,\n WavesHorizontal,\n WavesLadder,\n WavesVertical,\n Waypoints,\n Webcam,\n WebcamOff,\n Webhook,\n WebhookOff,\n Weight,\n WeightTilde,\n Wheat,\n WheatOff,\n WholeWord,\n Wifi,\n WifiCog,\n WifiHigh,\n WifiLow,\n WifiOff,\n WifiPen,\n WifiSync,\n WifiZero,\n Wind,\n WindArrowDown,\n Wine,\n WineOff,\n Workflow,\n Worm,\n Wrench,\n WrenchOff,\n} from \"lucide-react\";\nimport type { LucideIcon } from \"lucide-react\";\n\n/** The 40 lucide icons whose slug starts with \"w\". */\nconst shard: Record<string, LucideIcon> = {\n wallet: Wallet,\n \"wallet-cards\": WalletCards,\n \"wallet-minimal\": WalletMinimal,\n wallpaper: Wallpaper,\n wand: Wand,\n \"wand-sparkles\": WandSparkles,\n warehouse: Warehouse,\n \"washing-machine\": WashingMachine,\n watch: Watch,\n \"waves-arrow-down\": WavesArrowDown,\n \"waves-arrow-up\": WavesArrowUp,\n \"waves-horizontal\": WavesHorizontal,\n \"waves-ladder\": WavesLadder,\n \"waves-vertical\": WavesVertical,\n waypoints: Waypoints,\n webcam: Webcam,\n \"webcam-off\": WebcamOff,\n webhook: Webhook,\n \"webhook-off\": WebhookOff,\n weight: Weight,\n \"weight-tilde\": WeightTilde,\n wheat: Wheat,\n \"wheat-off\": WheatOff,\n \"whole-word\": WholeWord,\n wifi: Wifi,\n \"wifi-cog\": WifiCog,\n \"wifi-high\": WifiHigh,\n \"wifi-low\": WifiLow,\n \"wifi-off\": WifiOff,\n \"wifi-pen\": WifiPen,\n \"wifi-sync\": WifiSync,\n \"wifi-zero\": WifiZero,\n wind: Wind,\n \"wind-arrow-down\": WindArrowDown,\n wine: Wine,\n \"wine-off\": WineOff,\n workflow: Workflow,\n worm: Worm,\n wrench: Wrench,\n \"wrench-off\": WrenchOff,\n};\n\nexport default shard;\n"],"mappings":"8BAgDA,IAAM,EAAoC,CACtC,OAAQ,EAAA,OACR,eAAgB,EAAA,YAChB,iBAAkB,EAAA,cAClB,UAAW,EAAA,UACX,KAAM,EAAA,KACN,gBAAiB,EAAA,aACjB,UAAW,EAAA,UACX,kBAAmB,EAAA,eACnB,MAAO,EAAA,MACP,mBAAoB,EAAA,eACpB,iBAAkB,EAAA,aAClB,mBAAoB,EAAA,gBACpB,eAAgB,EAAA,YAChB,iBAAkB,EAAA,cAClB,UAAW,EAAA,UACX,OAAQ,EAAA,OACR,aAAc,EAAA,UACd,QAAS,EAAA,QACT,cAAe,EAAA,WACf,OAAQ,EAAA,OACR,eAAgB,EAAA,YAChB,MAAO,EAAA,MACP,YAAa,EAAA,SACb,aAAc,EAAA,UACd,KAAM,EAAA,KACN,WAAY,EAAA,QACZ,YAAa,EAAA,SACb,WAAY,EAAA,QACZ,WAAY,EAAA,QACZ,WAAY,EAAA,QACZ,YAAa,EAAA,SACb,YAAa,EAAA,SACb,KAAM,EAAA,KACN,kBAAmB,EAAA,cACnB,KAAM,EAAA,KACN,WAAY,EAAA,QACZ,SAAU,EAAA,SACV,KAAM,EAAA,KACN,OAAQ,EAAA,OACR,aAAc,EAAA,SAClB"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { Wallet as e, WalletCards as t, WalletMinimal as n, Wallpaper as r, Wand as i, WandSparkles as a, Warehouse as o, WashingMachine as s, Watch as c, WavesArrowDown as l, WavesArrowUp as u, WavesHorizontal as d, WavesLadder as f, WavesVertical as p, Waypoints as m, Webcam as h, WebcamOff as g, Webhook as _, WebhookOff as v, Weight as y, WeightTilde as b, Wheat as x, WheatOff as S, WholeWord as C, Wifi as w, WifiCog as T, WifiHigh as E, WifiLow as D, WifiOff as O, WifiPen as k, WifiSync as A, WifiZero as j, Wind as M, WindArrowDown as N, Wine as P, WineOff as F, Workflow as I, Worm as L, Wrench as R, WrenchOff as z } from "lucide-react";
|
|
2
|
+
//#region src/icons/generated/shard-w.ts
|
|
3
|
+
var B = {
|
|
4
|
+
wallet: e,
|
|
5
|
+
"wallet-cards": t,
|
|
6
|
+
"wallet-minimal": n,
|
|
7
|
+
wallpaper: r,
|
|
8
|
+
wand: i,
|
|
9
|
+
"wand-sparkles": a,
|
|
10
|
+
warehouse: o,
|
|
11
|
+
"washing-machine": s,
|
|
12
|
+
watch: c,
|
|
13
|
+
"waves-arrow-down": l,
|
|
14
|
+
"waves-arrow-up": u,
|
|
15
|
+
"waves-horizontal": d,
|
|
16
|
+
"waves-ladder": f,
|
|
17
|
+
"waves-vertical": p,
|
|
18
|
+
waypoints: m,
|
|
19
|
+
webcam: h,
|
|
20
|
+
"webcam-off": g,
|
|
21
|
+
webhook: _,
|
|
22
|
+
"webhook-off": v,
|
|
23
|
+
weight: y,
|
|
24
|
+
"weight-tilde": b,
|
|
25
|
+
wheat: x,
|
|
26
|
+
"wheat-off": S,
|
|
27
|
+
"whole-word": C,
|
|
28
|
+
wifi: w,
|
|
29
|
+
"wifi-cog": T,
|
|
30
|
+
"wifi-high": E,
|
|
31
|
+
"wifi-low": D,
|
|
32
|
+
"wifi-off": O,
|
|
33
|
+
"wifi-pen": k,
|
|
34
|
+
"wifi-sync": A,
|
|
35
|
+
"wifi-zero": j,
|
|
36
|
+
wind: M,
|
|
37
|
+
"wind-arrow-down": N,
|
|
38
|
+
wine: P,
|
|
39
|
+
"wine-off": F,
|
|
40
|
+
workflow: I,
|
|
41
|
+
worm: L,
|
|
42
|
+
wrench: R,
|
|
43
|
+
"wrench-off": z
|
|
44
|
+
};
|
|
45
|
+
//#endregion
|
|
46
|
+
export { B as default };
|
|
47
|
+
|
|
48
|
+
//# sourceMappingURL=shard-w.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shard-w.js","names":[],"sources":["../../../src/icons/generated/shard-w.ts"],"sourcesContent":["// GENERATED by scripts/gen-icons.mjs — do not edit.\n// Run `npm run gen:icons` after bumping lucide-react.\n\nimport {\n Wallet,\n WalletCards,\n WalletMinimal,\n Wallpaper,\n Wand,\n WandSparkles,\n Warehouse,\n WashingMachine,\n Watch,\n WavesArrowDown,\n WavesArrowUp,\n WavesHorizontal,\n WavesLadder,\n WavesVertical,\n Waypoints,\n Webcam,\n WebcamOff,\n Webhook,\n WebhookOff,\n Weight,\n WeightTilde,\n Wheat,\n WheatOff,\n WholeWord,\n Wifi,\n WifiCog,\n WifiHigh,\n WifiLow,\n WifiOff,\n WifiPen,\n WifiSync,\n WifiZero,\n Wind,\n WindArrowDown,\n Wine,\n WineOff,\n Workflow,\n Worm,\n Wrench,\n WrenchOff,\n} from \"lucide-react\";\nimport type { LucideIcon } from \"lucide-react\";\n\n/** The 40 lucide icons whose slug starts with \"w\". */\nconst shard: Record<string, LucideIcon> = {\n wallet: Wallet,\n \"wallet-cards\": WalletCards,\n \"wallet-minimal\": WalletMinimal,\n wallpaper: Wallpaper,\n wand: Wand,\n \"wand-sparkles\": WandSparkles,\n warehouse: Warehouse,\n \"washing-machine\": WashingMachine,\n watch: Watch,\n \"waves-arrow-down\": WavesArrowDown,\n \"waves-arrow-up\": WavesArrowUp,\n \"waves-horizontal\": WavesHorizontal,\n \"waves-ladder\": WavesLadder,\n \"waves-vertical\": WavesVertical,\n waypoints: Waypoints,\n webcam: Webcam,\n \"webcam-off\": WebcamOff,\n webhook: Webhook,\n \"webhook-off\": WebhookOff,\n weight: Weight,\n \"weight-tilde\": WeightTilde,\n wheat: Wheat,\n \"wheat-off\": WheatOff,\n \"whole-word\": WholeWord,\n wifi: Wifi,\n \"wifi-cog\": WifiCog,\n \"wifi-high\": WifiHigh,\n \"wifi-low\": WifiLow,\n \"wifi-off\": WifiOff,\n \"wifi-pen\": WifiPen,\n \"wifi-sync\": WifiSync,\n \"wifi-zero\": WifiZero,\n wind: Wind,\n \"wind-arrow-down\": WindArrowDown,\n wine: Wine,\n \"wine-off\": WineOff,\n workflow: Workflow,\n worm: Worm,\n wrench: Wrench,\n \"wrench-off\": WrenchOff,\n};\n\nexport default shard;\n"],"mappings":";;AAgDA,IAAM,IAAoC;CACtC,QAAQ;CACR,gBAAgB;CAChB,kBAAkB;CAClB,WAAW;CACX,MAAM;CACN,iBAAiB;CACjB,WAAW;CACX,mBAAmB;CACnB,OAAO;CACP,oBAAoB;CACpB,kBAAkB;CAClB,oBAAoB;CACpB,gBAAgB;CAChB,kBAAkB;CAClB,WAAW;CACX,QAAQ;CACR,cAAc;CACd,SAAS;CACT,eAAe;CACf,QAAQ;CACR,gBAAgB;CAChB,OAAO;CACP,aAAa;CACb,cAAc;CACd,MAAM;CACN,YAAY;CACZ,aAAa;CACb,YAAY;CACZ,YAAY;CACZ,YAAY;CACZ,aAAa;CACb,aAAa;CACb,MAAM;CACN,mBAAmB;CACnB,MAAM;CACN,YAAY;CACZ,UAAU;CACV,MAAM;CACN,QAAQ;CACR,cAAc;AAClB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shard-x.cjs","names":[],"sources":["../../../src/icons/generated/shard-x.ts"],"sourcesContent":["// GENERATED by scripts/gen-icons.mjs — do not edit.\n// Run `npm run gen:icons` after bumping lucide-react.\n\nimport { X, XLineTop } from \"lucide-react\";\nimport type { LucideIcon } from \"lucide-react\";\n\n/** The 2 lucide icons whose slug starts with \"x\". */\nconst shard: Record<string, LucideIcon> = {\n x: X,\n \"x-line-top\": XLineTop,\n};\n\nexport default shard;\n"],"mappings":"8BAOA,IAAM,EAAoC,CACtC,EAAG,EAAA,EACH,aAAc,EAAA,QAClB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shard-x.js","names":[],"sources":["../../../src/icons/generated/shard-x.ts"],"sourcesContent":["// GENERATED by scripts/gen-icons.mjs — do not edit.\n// Run `npm run gen:icons` after bumping lucide-react.\n\nimport { X, XLineTop } from \"lucide-react\";\nimport type { LucideIcon } from \"lucide-react\";\n\n/** The 2 lucide icons whose slug starts with \"x\". */\nconst shard: Record<string, LucideIcon> = {\n x: X,\n \"x-line-top\": XLineTop,\n};\n\nexport default shard;\n"],"mappings":";;AAOA,IAAM,IAAoC;CACtC,GAAG;CACH,cAAc;AAClB"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
let e=require("lucide-react");var t={zap:e.Zap,"zap-off":e.ZapOff,"zodiac-aquarius":e.ZodiacAquarius,"zodiac-aries":e.ZodiacAries,"zodiac-cancer":e.ZodiacCancer,"zodiac-capricorn":e.ZodiacCapricorn,"zodiac-gemini":e.ZodiacGemini,"zodiac-leo":e.ZodiacLeo,"zodiac-libra":e.ZodiacLibra,"zodiac-ophiuchus":e.ZodiacOphiuchus,"zodiac-pisces":e.ZodiacPisces,"zodiac-sagittarius":e.ZodiacSagittarius,"zodiac-scorpio":e.ZodiacScorpio,"zodiac-taurus":e.ZodiacTaurus,"zodiac-virgo":e.ZodiacVirgo,"zoom-in":e.ZoomIn,"zoom-out":e.ZoomOut};exports.default=t;
|
|
2
|
+
//# sourceMappingURL=shard-z.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shard-z.cjs","names":[],"sources":["../../../src/icons/generated/shard-z.ts"],"sourcesContent":["// GENERATED by scripts/gen-icons.mjs — do not edit.\n// Run `npm run gen:icons` after bumping lucide-react.\n\nimport {\n Zap,\n ZapOff,\n ZodiacAquarius,\n ZodiacAries,\n ZodiacCancer,\n ZodiacCapricorn,\n ZodiacGemini,\n ZodiacLeo,\n ZodiacLibra,\n ZodiacOphiuchus,\n ZodiacPisces,\n ZodiacSagittarius,\n ZodiacScorpio,\n ZodiacTaurus,\n ZodiacVirgo,\n ZoomIn,\n ZoomOut,\n} from \"lucide-react\";\nimport type { LucideIcon } from \"lucide-react\";\n\n/** The 17 lucide icons whose slug starts with \"z\". */\nconst shard: Record<string, LucideIcon> = {\n zap: Zap,\n \"zap-off\": ZapOff,\n \"zodiac-aquarius\": ZodiacAquarius,\n \"zodiac-aries\": ZodiacAries,\n \"zodiac-cancer\": ZodiacCancer,\n \"zodiac-capricorn\": ZodiacCapricorn,\n \"zodiac-gemini\": ZodiacGemini,\n \"zodiac-leo\": ZodiacLeo,\n \"zodiac-libra\": ZodiacLibra,\n \"zodiac-ophiuchus\": ZodiacOphiuchus,\n \"zodiac-pisces\": ZodiacPisces,\n \"zodiac-sagittarius\": ZodiacSagittarius,\n \"zodiac-scorpio\": ZodiacScorpio,\n \"zodiac-taurus\": ZodiacTaurus,\n \"zodiac-virgo\": ZodiacVirgo,\n \"zoom-in\": ZoomIn,\n \"zoom-out\": ZoomOut,\n};\n\nexport default shard;\n"],"mappings":"8BAyBA,IAAM,EAAoC,CACtC,IAAK,EAAA,IACL,UAAW,EAAA,OACX,kBAAmB,EAAA,eACnB,eAAgB,EAAA,YAChB,gBAAiB,EAAA,aACjB,mBAAoB,EAAA,gBACpB,gBAAiB,EAAA,aACjB,aAAc,EAAA,UACd,eAAgB,EAAA,YAChB,mBAAoB,EAAA,gBACpB,gBAAiB,EAAA,aACjB,qBAAsB,EAAA,kBACtB,iBAAkB,EAAA,cAClB,gBAAiB,EAAA,aACjB,eAAgB,EAAA,YAChB,UAAW,EAAA,OACX,WAAY,EAAA,OAChB"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Zap as e, ZapOff as t, ZodiacAquarius as n, ZodiacAries as r, ZodiacCancer as i, ZodiacCapricorn as a, ZodiacGemini as o, ZodiacLeo as s, ZodiacLibra as c, ZodiacOphiuchus as l, ZodiacPisces as u, ZodiacSagittarius as d, ZodiacScorpio as f, ZodiacTaurus as p, ZodiacVirgo as m, ZoomIn as h, ZoomOut as g } from "lucide-react";
|
|
2
|
+
//#region src/icons/generated/shard-z.ts
|
|
3
|
+
var _ = {
|
|
4
|
+
zap: e,
|
|
5
|
+
"zap-off": t,
|
|
6
|
+
"zodiac-aquarius": n,
|
|
7
|
+
"zodiac-aries": r,
|
|
8
|
+
"zodiac-cancer": i,
|
|
9
|
+
"zodiac-capricorn": a,
|
|
10
|
+
"zodiac-gemini": o,
|
|
11
|
+
"zodiac-leo": s,
|
|
12
|
+
"zodiac-libra": c,
|
|
13
|
+
"zodiac-ophiuchus": l,
|
|
14
|
+
"zodiac-pisces": u,
|
|
15
|
+
"zodiac-sagittarius": d,
|
|
16
|
+
"zodiac-scorpio": f,
|
|
17
|
+
"zodiac-taurus": p,
|
|
18
|
+
"zodiac-virgo": m,
|
|
19
|
+
"zoom-in": h,
|
|
20
|
+
"zoom-out": g
|
|
21
|
+
};
|
|
22
|
+
//#endregion
|
|
23
|
+
export { _ as default };
|
|
24
|
+
|
|
25
|
+
//# sourceMappingURL=shard-z.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shard-z.js","names":[],"sources":["../../../src/icons/generated/shard-z.ts"],"sourcesContent":["// GENERATED by scripts/gen-icons.mjs — do not edit.\n// Run `npm run gen:icons` after bumping lucide-react.\n\nimport {\n Zap,\n ZapOff,\n ZodiacAquarius,\n ZodiacAries,\n ZodiacCancer,\n ZodiacCapricorn,\n ZodiacGemini,\n ZodiacLeo,\n ZodiacLibra,\n ZodiacOphiuchus,\n ZodiacPisces,\n ZodiacSagittarius,\n ZodiacScorpio,\n ZodiacTaurus,\n ZodiacVirgo,\n ZoomIn,\n ZoomOut,\n} from \"lucide-react\";\nimport type { LucideIcon } from \"lucide-react\";\n\n/** The 17 lucide icons whose slug starts with \"z\". */\nconst shard: Record<string, LucideIcon> = {\n zap: Zap,\n \"zap-off\": ZapOff,\n \"zodiac-aquarius\": ZodiacAquarius,\n \"zodiac-aries\": ZodiacAries,\n \"zodiac-cancer\": ZodiacCancer,\n \"zodiac-capricorn\": ZodiacCapricorn,\n \"zodiac-gemini\": ZodiacGemini,\n \"zodiac-leo\": ZodiacLeo,\n \"zodiac-libra\": ZodiacLibra,\n \"zodiac-ophiuchus\": ZodiacOphiuchus,\n \"zodiac-pisces\": ZodiacPisces,\n \"zodiac-sagittarius\": ZodiacSagittarius,\n \"zodiac-scorpio\": ZodiacScorpio,\n \"zodiac-taurus\": ZodiacTaurus,\n \"zodiac-virgo\": ZodiacVirgo,\n \"zoom-in\": ZoomIn,\n \"zoom-out\": ZoomOut,\n};\n\nexport default shard;\n"],"mappings":";;AAyBA,IAAM,IAAoC;CACtC,KAAK;CACL,WAAW;CACX,mBAAmB;CACnB,gBAAgB;CAChB,iBAAiB;CACjB,oBAAoB;CACpB,iBAAiB;CACjB,cAAc;CACd,gBAAgB;CAChB,oBAAoB;CACpB,iBAAiB;CACjB,sBAAsB;CACtB,kBAAkB;CAClB,iBAAiB;CACjB,gBAAgB;CAChB,WAAW;CACX,YAAY;AAChB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icon-context.cjs","names":[],"sources":["../../src/icons/icon-context.ts"],"sourcesContent":["import { createContext, useContext } from \"react\";\nimport type { LucideIcon } from \"lucide-react\";\n\n/** A slug → icon-component table, as produced by `createIconRegistry`. */\nexport type IconRegistry = Readonly<Record<string, LucideIcon>>;\n\nexport interface IconContextValue {\n registry: IconRegistry;\n size: number | string | undefined;\n strokeWidth: number | undefined;\n}\n\n/**\n * The icon context.\n *\n * Lives here rather than next to `IconProvider` so that the provider module\n * exports only a component — a file mixing components with other values breaks\n * Fast Refresh, which is what `react-refresh/only-export-components` guards.\n */\nexport const IconContext = createContext<IconContextValue | null>(null);\n\n/**\n * Build an icon registry from statically imported lucide components.\n *\n * The point is that the imports are static, so the bundler keeps exactly the\n * icons named here and tree-shakes the rest — the opposite of `DynamicIcon`,\n * which forces a chunk boundary for all ~2000 icons whether you use them or not.\n *\n * @example\n * import { createIconRegistry } from \"tempest-react-sdk/icons\";\n * import { Save, Trash2 } from \"lucide-react\";\n *\n * export const icons = createIconRegistry({ save: Save, \"trash-2\": Trash2 });\n *\n * @param icons - Slug → icon component.\n * @returns The registry, ready for `IconProvider`.\n */\nexport function createIconRegistry(icons: Record<string, LucideIcon>): IconRegistry {\n return icons;\n}\n\n/**\n * Read the nearest icon context, or `null` outside a provider.\n *\n * @returns The context value, or `null`.\n */\nexport function useIconContext(): IconContextValue | null {\n return useContext(IconContext);\n}\n"],"mappings":"uBAmBA,IAAa,GAAA,EAAA,EAAA,cAAA,CAAqD,IAAI,EAkBtE,SAAgB,EAAmB,EAAiD,CAChF,OAAO,CACX,CAOA,SAAgB,GAA0C,CACtD,OAAA,EAAA,EAAA,WAAA,CAAkB,CAAW,CACjC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { createContext as e, useContext as t } from "react";
|
|
2
|
+
//#region src/icons/icon-context.ts
|
|
3
|
+
var n = e(null);
|
|
4
|
+
function r(e) {
|
|
5
|
+
return e;
|
|
6
|
+
}
|
|
7
|
+
function i() {
|
|
8
|
+
return t(n);
|
|
9
|
+
}
|
|
10
|
+
//#endregion
|
|
11
|
+
export { n as IconContext, r as createIconRegistry, i as useIconContext };
|
|
12
|
+
|
|
13
|
+
//# sourceMappingURL=icon-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icon-context.js","names":[],"sources":["../../src/icons/icon-context.ts"],"sourcesContent":["import { createContext, useContext } from \"react\";\nimport type { LucideIcon } from \"lucide-react\";\n\n/** A slug → icon-component table, as produced by `createIconRegistry`. */\nexport type IconRegistry = Readonly<Record<string, LucideIcon>>;\n\nexport interface IconContextValue {\n registry: IconRegistry;\n size: number | string | undefined;\n strokeWidth: number | undefined;\n}\n\n/**\n * The icon context.\n *\n * Lives here rather than next to `IconProvider` so that the provider module\n * exports only a component — a file mixing components with other values breaks\n * Fast Refresh, which is what `react-refresh/only-export-components` guards.\n */\nexport const IconContext = createContext<IconContextValue | null>(null);\n\n/**\n * Build an icon registry from statically imported lucide components.\n *\n * The point is that the imports are static, so the bundler keeps exactly the\n * icons named here and tree-shakes the rest — the opposite of `DynamicIcon`,\n * which forces a chunk boundary for all ~2000 icons whether you use them or not.\n *\n * @example\n * import { createIconRegistry } from \"tempest-react-sdk/icons\";\n * import { Save, Trash2 } from \"lucide-react\";\n *\n * export const icons = createIconRegistry({ save: Save, \"trash-2\": Trash2 });\n *\n * @param icons - Slug → icon component.\n * @returns The registry, ready for `IconProvider`.\n */\nexport function createIconRegistry(icons: Record<string, LucideIcon>): IconRegistry {\n return icons;\n}\n\n/**\n * Read the nearest icon context, or `null` outside a provider.\n *\n * @returns The context value, or `null`.\n */\nexport function useIconContext(): IconContextValue | null {\n return useContext(IconContext);\n}\n"],"mappings":";;AAmBA,IAAa,IAAc,EAAuC,IAAI;AAkBtE,SAAgB,EAAmB,GAAiD;CAChF,OAAO;AACX;AAOA,SAAgB,IAA0C;CACtD,OAAO,EAAW,CAAW;AACjC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is-icon-name.cjs","names":[],"sources":["../../src/icons/is-icon-name.ts"],"sourcesContent":["import type { IconName } from \"./generated/icon-name\";\nimport { iconNames } from \"./generated/icon-names\";\n\nconst known: ReadonlySet<string> = new Set(iconNames);\n\n/**\n * Narrow an arbitrary string to a known icon slug.\n *\n * Use it at the edge where untrusted names arrive — an API response, a CMS field,\n * a URL parameter — so the rest of the code works with `IconName` and a bad value\n * is handled once, where you can decide what to show instead.\n *\n * Note that this imports the full slug list (~6 KB brotli). `<Icon>` alone does\n * not, so only reach for this when you genuinely need to validate.\n *\n * @example\n * const slug = isIconName(row.icon) ? row.icon : \"circle-help\";\n *\n * @param value - Any string.\n * @returns `true` when `value` is a slug lucide ships, alias included.\n */\nexport function isIconName(value: string): value is IconName {\n return known.has(value);\n}\n"],"mappings":"8CAGA,IAAM,EAA6B,IAAI,IAAI,EAAA,SAAS,EAkBpD,SAAgB,EAAW,EAAkC,CACzD,OAAO,EAAM,IAAI,CAAK,CAC1B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is-icon-name.js","names":[],"sources":["../../src/icons/is-icon-name.ts"],"sourcesContent":["import type { IconName } from \"./generated/icon-name\";\nimport { iconNames } from \"./generated/icon-names\";\n\nconst known: ReadonlySet<string> = new Set(iconNames);\n\n/**\n * Narrow an arbitrary string to a known icon slug.\n *\n * Use it at the edge where untrusted names arrive — an API response, a CMS field,\n * a URL parameter — so the rest of the code works with `IconName` and a bad value\n * is handled once, where you can decide what to show instead.\n *\n * Note that this imports the full slug list (~6 KB brotli). `<Icon>` alone does\n * not, so only reach for this when you genuinely need to validate.\n *\n * @example\n * const slug = isIconName(row.icon) ? row.icon : \"circle-help\";\n *\n * @param value - Any string.\n * @returns `true` when `value` is a slug lucide ships, alias included.\n */\nexport function isIconName(value: string): value is IconName {\n return known.has(value);\n}\n"],"mappings":";;AAGA,IAAM,IAA6B,IAAI,IAAI,CAAS;AAkBpD,SAAgB,EAAW,GAAkC;CACzD,OAAO,EAAM,IAAI,CAAK;AAC1B"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=require("./generated/aliases.cjs"),t=require("./generated/loaders.cjs");var n=new Map,r=new Map,i=new Set,a=new Set;function o(t){return e.iconAliases[t]??t}function s(e){return n.get(o(e))}function c(e){let s=o(e);if(n.has(s))return Promise.resolve();let c=s[0]??``,l=t.shardLoaders[c];if(!l)return Promise.resolve();let u=r.get(c);if(u)return u;let d=l().then(e=>{for(let[t,r]of Object.entries(e.default))n.set(t,r)}).catch(()=>void 0).finally(()=>{r.delete(c),i.add(c);for(let e of a)e()});return r.set(c,d),d}function l(e){let r=o(e);if(n.has(r))return`ready`;let a=r[0]??``;return t.shardLoaders[a]?i.has(a)?`missing`:`loading`:`missing`}async function u(e){await Promise.all(e.map(c))}function d(e){return a.add(e),()=>a.delete(e)}exports.iconStatus=l,exports.loadIcon=c,exports.peekIcon=s,exports.preloadIcons=u,exports.resolveIconAlias=o,exports.subscribeToIcons=d;
|
|
2
|
+
//# sourceMappingURL=shard-cache.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shard-cache.cjs","names":[],"sources":["../../src/icons/shard-cache.ts"],"sourcesContent":["import type { LucideIcon } from \"lucide-react\";\n\nimport { iconAliases } from \"./generated/aliases\";\nimport { shardLoaders } from \"./generated/loaders\";\n\n/**\n * Slugs resolved so far, across every shard already fetched.\n *\n * Module-level and readable **synchronously**, which is the whole point: once a\n * page has rendered one icon whose slug starts with `s`, every other `s` icon is\n * already in memory and paints on its first frame. A cache that could only be\n * read from an effect would flash a fallback for each new icon, which is the\n * behavior `lucide-react`'s own `DynamicIcon` has.\n */\nconst resolved = new Map<string, LucideIcon>();\n\n/** In-flight shard fetches, so N icons from one shard trigger one import. */\nconst inFlight = new Map<string, Promise<void>>();\n\n/**\n * Initial letters whose shard has already settled.\n *\n * Needed to tell \"still loading\" from \"no such icon\": until the shard arrives,\n * absence from `resolved` proves nothing. Only once the letter is in here does a\n * missing slug mean the name is genuinely wrong — which is what lets `Icon` warn\n * about a typo without also warning on every icon mid-flight.\n */\nconst settledLetters = new Set<string>();\n\n/** Callbacks to run after a shard lands, so mounted `<Icon>`s re-render. */\nconst listeners = new Set<() => void>();\n\n/**\n * Map a slug to the canonical slug that owns the icon.\n *\n * Lucide keeps 248 deprecated aliases (`alert-circle` → `circle-alert`), and a\n * slug persisted in a database years ago is exactly the case this feature exists\n * for, so an alias must keep resolving after a lucide bump renames it.\n *\n * @param slug - Any icon slug, canonical or deprecated.\n * @returns The canonical slug.\n */\nexport function resolveIconAlias(slug: string): string {\n return iconAliases[slug] ?? slug;\n}\n\n/**\n * Read an icon out of the cache without triggering a fetch.\n *\n * @param slug - Any icon slug, canonical or deprecated.\n * @returns The icon component, or `undefined` when its shard is not loaded yet.\n */\nexport function peekIcon(slug: string): LucideIcon | undefined {\n return resolved.get(resolveIconAlias(slug));\n}\n\n/**\n * Load the shard that owns `slug`, if it is not loaded or loading already.\n *\n * Resolves without error for an unknown slug: a name that came from an API is\n * data, not a programming mistake, so the caller renders its fallback instead of\n * seeing an exception thrown mid-render.\n *\n * @param slug - Any icon slug, canonical or deprecated.\n * @returns A promise that settles once the shard is in the cache.\n */\nexport function loadIcon(slug: string): Promise<void> {\n const canonical = resolveIconAlias(slug);\n if (resolved.has(canonical)) return Promise.resolve();\n\n const letter = canonical[0] ?? \"\";\n const loader = shardLoaders[letter];\n if (!loader) return Promise.resolve();\n\n const pending = inFlight.get(letter);\n if (pending) return pending;\n\n const promise = loader()\n .then((mod) => {\n for (const [name, icon] of Object.entries(mod.default)) resolved.set(name, icon);\n })\n .catch(() => undefined)\n .finally(() => {\n inFlight.delete(letter);\n settledLetters.add(letter);\n for (const listener of listeners) listener();\n });\n inFlight.set(letter, promise);\n return promise;\n}\n\n/**\n * Whether a slug is ready, still loading, or not an icon at all.\n *\n * `\"missing\"` is only reported once that is actually knowable: either lucide has\n * no icons under that initial letter, or the letter's shard already settled\n * without the slug in it.\n *\n * @param slug - Any icon slug, canonical or deprecated.\n * @returns The slug's resolution state.\n */\nexport function iconStatus(slug: string): \"ready\" | \"loading\" | \"missing\" {\n const canonical = resolveIconAlias(slug);\n if (resolved.has(canonical)) return \"ready\";\n const letter = canonical[0] ?? \"\";\n if (!shardLoaders[letter]) return \"missing\";\n return settledLetters.has(letter) ? \"missing\" : \"loading\";\n}\n\n/**\n * Warm the cache for slugs you know you are about to render.\n *\n * Useful right before opening a menu or a picker: the shards land while the user\n * is still reaching for it, so nothing flashes a fallback.\n *\n * @param slugs - Icon slugs to preload.\n * @returns A promise that settles when every needed shard is in the cache.\n */\nexport async function preloadIcons(slugs: readonly string[]): Promise<void> {\n await Promise.all(slugs.map(loadIcon));\n}\n\n/**\n * Subscribe to shard arrivals.\n *\n * @param listener - Called after each shard lands.\n * @returns An unsubscribe function.\n */\nexport function subscribeToIcons(listener: () => void): () => void {\n listeners.add(listener);\n return () => listeners.delete(listener);\n}\n"],"mappings":"gFAcA,IAAM,EAAW,IAAI,IAGf,EAAW,IAAI,IAUf,EAAiB,IAAI,IAGrB,EAAY,IAAI,IAYtB,SAAgB,EAAiB,EAAsB,CACnD,OAAO,EAAA,YAAY,IAAS,CAChC,CAQA,SAAgB,EAAS,EAAsC,CAC3D,OAAO,EAAS,IAAI,EAAiB,CAAI,CAAC,CAC9C,CAYA,SAAgB,EAAS,EAA6B,CAClD,IAAM,EAAY,EAAiB,CAAI,EACvC,GAAI,EAAS,IAAI,CAAS,EAAG,OAAO,QAAQ,QAAQ,EAEpD,IAAM,EAAS,EAAU,IAAM,GACzB,EAAS,EAAA,aAAa,GAC5B,GAAI,CAAC,EAAQ,OAAO,QAAQ,QAAQ,EAEpC,IAAM,EAAU,EAAS,IAAI,CAAM,EACnC,GAAI,EAAS,OAAO,EAEpB,IAAM,EAAU,EAAO,CAAC,CACnB,KAAM,GAAQ,CACX,IAAK,GAAM,CAAC,EAAM,KAAS,OAAO,QAAQ,EAAI,OAAO,EAAG,EAAS,IAAI,EAAM,CAAI,CACnF,CAAC,CAAC,CACD,UAAY,IAAA,EAAS,CAAC,CACtB,YAAc,CACX,EAAS,OAAO,CAAM,EACtB,EAAe,IAAI,CAAM,EACzB,IAAK,IAAM,KAAY,EAAW,EAAS,CAC/C,CAAC,EAEL,OADA,EAAS,IAAI,EAAQ,CAAO,EACrB,CACX,CAYA,SAAgB,EAAW,EAA+C,CACtE,IAAM,EAAY,EAAiB,CAAI,EACvC,GAAI,EAAS,IAAI,CAAS,EAAG,MAAO,QACpC,IAAM,EAAS,EAAU,IAAM,GAE/B,OADK,EAAA,aAAa,GACX,EAAe,IAAI,CAAM,EAAI,UAAY,UADd,SAEtC,CAWA,eAAsB,EAAa,EAAyC,CACxE,MAAM,QAAQ,IAAI,EAAM,IAAI,CAAQ,CAAC,CACzC,CAQA,SAAgB,EAAiB,EAAkC,CAE/D,OADA,EAAU,IAAI,CAAQ,MACT,EAAU,OAAO,CAAQ,CAC1C"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { iconAliases as e } from "./generated/aliases.js";
|
|
2
|
+
import { shardLoaders as t } from "./generated/loaders.js";
|
|
3
|
+
//#region src/icons/shard-cache.ts
|
|
4
|
+
var n = /* @__PURE__ */ new Map(), r = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Set(), a = /* @__PURE__ */ new Set();
|
|
5
|
+
function o(t) {
|
|
6
|
+
return e[t] ?? t;
|
|
7
|
+
}
|
|
8
|
+
function s(e) {
|
|
9
|
+
return n.get(o(e));
|
|
10
|
+
}
|
|
11
|
+
function c(e) {
|
|
12
|
+
let s = o(e);
|
|
13
|
+
if (n.has(s)) return Promise.resolve();
|
|
14
|
+
let c = s[0] ?? "", l = t[c];
|
|
15
|
+
if (!l) return Promise.resolve();
|
|
16
|
+
let u = r.get(c);
|
|
17
|
+
if (u) return u;
|
|
18
|
+
let d = l().then((e) => {
|
|
19
|
+
for (let [t, r] of Object.entries(e.default)) n.set(t, r);
|
|
20
|
+
}).catch(() => void 0).finally(() => {
|
|
21
|
+
r.delete(c), i.add(c);
|
|
22
|
+
for (let e of a) e();
|
|
23
|
+
});
|
|
24
|
+
return r.set(c, d), d;
|
|
25
|
+
}
|
|
26
|
+
function l(e) {
|
|
27
|
+
let r = o(e);
|
|
28
|
+
if (n.has(r)) return "ready";
|
|
29
|
+
let a = r[0] ?? "";
|
|
30
|
+
return t[a] ? i.has(a) ? "missing" : "loading" : "missing";
|
|
31
|
+
}
|
|
32
|
+
async function u(e) {
|
|
33
|
+
await Promise.all(e.map(c));
|
|
34
|
+
}
|
|
35
|
+
function d(e) {
|
|
36
|
+
return a.add(e), () => a.delete(e);
|
|
37
|
+
}
|
|
38
|
+
//#endregion
|
|
39
|
+
export { l as iconStatus, c as loadIcon, s as peekIcon, u as preloadIcons, o as resolveIconAlias, d as subscribeToIcons };
|
|
40
|
+
|
|
41
|
+
//# sourceMappingURL=shard-cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shard-cache.js","names":[],"sources":["../../src/icons/shard-cache.ts"],"sourcesContent":["import type { LucideIcon } from \"lucide-react\";\n\nimport { iconAliases } from \"./generated/aliases\";\nimport { shardLoaders } from \"./generated/loaders\";\n\n/**\n * Slugs resolved so far, across every shard already fetched.\n *\n * Module-level and readable **synchronously**, which is the whole point: once a\n * page has rendered one icon whose slug starts with `s`, every other `s` icon is\n * already in memory and paints on its first frame. A cache that could only be\n * read from an effect would flash a fallback for each new icon, which is the\n * behavior `lucide-react`'s own `DynamicIcon` has.\n */\nconst resolved = new Map<string, LucideIcon>();\n\n/** In-flight shard fetches, so N icons from one shard trigger one import. */\nconst inFlight = new Map<string, Promise<void>>();\n\n/**\n * Initial letters whose shard has already settled.\n *\n * Needed to tell \"still loading\" from \"no such icon\": until the shard arrives,\n * absence from `resolved` proves nothing. Only once the letter is in here does a\n * missing slug mean the name is genuinely wrong — which is what lets `Icon` warn\n * about a typo without also warning on every icon mid-flight.\n */\nconst settledLetters = new Set<string>();\n\n/** Callbacks to run after a shard lands, so mounted `<Icon>`s re-render. */\nconst listeners = new Set<() => void>();\n\n/**\n * Map a slug to the canonical slug that owns the icon.\n *\n * Lucide keeps 248 deprecated aliases (`alert-circle` → `circle-alert`), and a\n * slug persisted in a database years ago is exactly the case this feature exists\n * for, so an alias must keep resolving after a lucide bump renames it.\n *\n * @param slug - Any icon slug, canonical or deprecated.\n * @returns The canonical slug.\n */\nexport function resolveIconAlias(slug: string): string {\n return iconAliases[slug] ?? slug;\n}\n\n/**\n * Read an icon out of the cache without triggering a fetch.\n *\n * @param slug - Any icon slug, canonical or deprecated.\n * @returns The icon component, or `undefined` when its shard is not loaded yet.\n */\nexport function peekIcon(slug: string): LucideIcon | undefined {\n return resolved.get(resolveIconAlias(slug));\n}\n\n/**\n * Load the shard that owns `slug`, if it is not loaded or loading already.\n *\n * Resolves without error for an unknown slug: a name that came from an API is\n * data, not a programming mistake, so the caller renders its fallback instead of\n * seeing an exception thrown mid-render.\n *\n * @param slug - Any icon slug, canonical or deprecated.\n * @returns A promise that settles once the shard is in the cache.\n */\nexport function loadIcon(slug: string): Promise<void> {\n const canonical = resolveIconAlias(slug);\n if (resolved.has(canonical)) return Promise.resolve();\n\n const letter = canonical[0] ?? \"\";\n const loader = shardLoaders[letter];\n if (!loader) return Promise.resolve();\n\n const pending = inFlight.get(letter);\n if (pending) return pending;\n\n const promise = loader()\n .then((mod) => {\n for (const [name, icon] of Object.entries(mod.default)) resolved.set(name, icon);\n })\n .catch(() => undefined)\n .finally(() => {\n inFlight.delete(letter);\n settledLetters.add(letter);\n for (const listener of listeners) listener();\n });\n inFlight.set(letter, promise);\n return promise;\n}\n\n/**\n * Whether a slug is ready, still loading, or not an icon at all.\n *\n * `\"missing\"` is only reported once that is actually knowable: either lucide has\n * no icons under that initial letter, or the letter's shard already settled\n * without the slug in it.\n *\n * @param slug - Any icon slug, canonical or deprecated.\n * @returns The slug's resolution state.\n */\nexport function iconStatus(slug: string): \"ready\" | \"loading\" | \"missing\" {\n const canonical = resolveIconAlias(slug);\n if (resolved.has(canonical)) return \"ready\";\n const letter = canonical[0] ?? \"\";\n if (!shardLoaders[letter]) return \"missing\";\n return settledLetters.has(letter) ? \"missing\" : \"loading\";\n}\n\n/**\n * Warm the cache for slugs you know you are about to render.\n *\n * Useful right before opening a menu or a picker: the shards land while the user\n * is still reaching for it, so nothing flashes a fallback.\n *\n * @param slugs - Icon slugs to preload.\n * @returns A promise that settles when every needed shard is in the cache.\n */\nexport async function preloadIcons(slugs: readonly string[]): Promise<void> {\n await Promise.all(slugs.map(loadIcon));\n}\n\n/**\n * Subscribe to shard arrivals.\n *\n * @param listener - Called after each shard lands.\n * @returns An unsubscribe function.\n */\nexport function subscribeToIcons(listener: () => void): () => void {\n listeners.add(listener);\n return () => listeners.delete(listener);\n}\n"],"mappings":";;;AAcA,IAAM,oBAAW,IAAI,IAAwB,GAGvC,oBAAW,IAAI,IAA2B,GAU1C,oBAAiB,IAAI,IAAY,GAGjC,oBAAY,IAAI,IAAgB;AAYtC,SAAgB,EAAiB,GAAsB;CACnD,OAAO,EAAY,MAAS;AAChC;AAQA,SAAgB,EAAS,GAAsC;CAC3D,OAAO,EAAS,IAAI,EAAiB,CAAI,CAAC;AAC9C;AAYA,SAAgB,EAAS,GAA6B;CAClD,IAAM,IAAY,EAAiB,CAAI;CACvC,IAAI,EAAS,IAAI,CAAS,GAAG,OAAO,QAAQ,QAAQ;CAEpD,IAAM,IAAS,EAAU,MAAM,IACzB,IAAS,EAAa;CAC5B,IAAI,CAAC,GAAQ,OAAO,QAAQ,QAAQ;CAEpC,IAAM,IAAU,EAAS,IAAI,CAAM;CACnC,IAAI,GAAS,OAAO;CAEpB,IAAM,IAAU,EAAO,CAAC,CACnB,MAAM,MAAQ;EACX,KAAK,IAAM,CAAC,GAAM,MAAS,OAAO,QAAQ,EAAI,OAAO,GAAG,EAAS,IAAI,GAAM,CAAI;CACnF,CAAC,CAAC,CACD,YAAY,KAAA,CAAS,CAAC,CACtB,cAAc;EAEX,AADA,EAAS,OAAO,CAAM,GACtB,EAAe,IAAI,CAAM;EACzB,KAAK,IAAM,KAAY,GAAW,EAAS;CAC/C,CAAC;CAEL,OADA,EAAS,IAAI,GAAQ,CAAO,GACrB;AACX;AAYA,SAAgB,EAAW,GAA+C;CACtE,IAAM,IAAY,EAAiB,CAAI;CACvC,IAAI,EAAS,IAAI,CAAS,GAAG,OAAO;CACpC,IAAM,IAAS,EAAU,MAAM;CAE/B,OADK,EAAa,KACX,EAAe,IAAI,CAAM,IAAI,YAAY,YADd;AAEtC;AAWA,eAAsB,EAAa,GAAyC;CACxE,MAAM,QAAQ,IAAI,EAAM,IAAI,CAAQ,CAAC;AACzC;AAQA,SAAgB,EAAiB,GAAkC;CAE/D,OADA,EAAU,IAAI,CAAQ,SACT,EAAU,OAAO,CAAQ;AAC1C"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=require("./icon-context.cjs"),t=require("./shard-cache.cjs");let n=require("react");function r(r){let i=e.useIconContext(),a=r?i?.registry[r]:void 0,[,o]=(0,n.useState)(0),s=!a&&r?t.peekIcon(r):void 0,c=a??s;return(0,n.useEffect)(()=>{if(!r||c)return;let e=!0,n=t.subscribeToIcons(()=>{e&&o(e=>e+1)});return t.loadIcon(r),()=>{e=!1,n()}},[r,c]),c}exports.useIcon=r;
|
|
2
|
+
//# sourceMappingURL=use-icon.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-icon.cjs","names":[],"sources":["../../src/icons/use-icon.ts"],"sourcesContent":["import { useEffect, useState } from \"react\";\nimport type { LucideIcon } from \"lucide-react\";\n\nimport { useIconContext } from \"./icon-context\";\nimport { loadIcon, peekIcon, subscribeToIcons } from \"./shard-cache\";\n\n/**\n * Resolve an icon slug to its component.\n *\n * Resolution is synchronous whenever it can be: the provider registry first, then\n * the shard cache. Both are plain reads during render, so a slug the app declared\n * statically — or one whose shard a sibling icon already pulled in — is returned\n * on the first frame with no intermediate empty state.\n *\n * Only a genuinely cold slug falls through to the effect, which fetches the shard\n * for that initial letter and re-renders once it lands.\n *\n * @param slug - Any icon slug, canonical or deprecated. `undefined` skips work.\n * @returns The icon component, or `undefined` while it is loading or if the slug\n * does not exist.\n */\nexport function useIcon(slug: string | undefined): LucideIcon | undefined {\n const context = useIconContext();\n const fromRegistry = slug ? context?.registry[slug] : undefined;\n const [, forceRender] = useState(0);\n\n const cached = !fromRegistry && slug ? peekIcon(slug) : undefined;\n const resolved = fromRegistry ?? cached;\n\n useEffect(() => {\n if (!slug || resolved) return;\n let active = true;\n const unsubscribe = subscribeToIcons(() => {\n if (active) forceRender((n) => n + 1);\n });\n void loadIcon(slug);\n return () => {\n active = false;\n unsubscribe();\n };\n }, [slug, resolved]);\n\n return resolved;\n}\n"],"mappings":"4FAqBA,SAAgB,EAAQ,EAAkD,CACtE,IAAM,EAAU,EAAA,eAAe,EACzB,EAAe,EAAO,GAAS,SAAS,GAAQ,IAAA,GAChD,EAAG,IAAA,EAAA,EAAA,SAAA,CAAwB,CAAC,EAE5B,EAAS,CAAC,GAAgB,EAAO,EAAA,SAAS,CAAI,EAAI,IAAA,GAClD,EAAW,GAAgB,EAejC,OAbA,EAAA,EAAA,UAAA,KAAgB,CACZ,GAAI,CAAC,GAAQ,EAAU,OACvB,IAAI,EAAS,GACP,EAAc,EAAA,qBAAuB,CACnC,GAAQ,EAAa,GAAM,EAAI,CAAC,CACxC,CAAC,EAED,OADA,EAAK,SAAS,CAAI,MACL,CACT,EAAS,GACT,EAAY,CAChB,CACJ,EAAG,CAAC,EAAM,CAAQ,CAAC,EAEZ,CACX"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { useIconContext as e } from "./icon-context.js";
|
|
2
|
+
import { loadIcon as t, peekIcon as n, subscribeToIcons as r } from "./shard-cache.js";
|
|
3
|
+
import { useEffect as i, useState as a } from "react";
|
|
4
|
+
//#region src/icons/use-icon.ts
|
|
5
|
+
function o(o) {
|
|
6
|
+
let s = e(), c = o ? s?.registry[o] : void 0, [, l] = a(0), u = !c && o ? n(o) : void 0, d = c ?? u;
|
|
7
|
+
return i(() => {
|
|
8
|
+
if (!o || d) return;
|
|
9
|
+
let e = !0, n = r(() => {
|
|
10
|
+
e && l((e) => e + 1);
|
|
11
|
+
});
|
|
12
|
+
return t(o), () => {
|
|
13
|
+
e = !1, n();
|
|
14
|
+
};
|
|
15
|
+
}, [o, d]), d;
|
|
16
|
+
}
|
|
17
|
+
//#endregion
|
|
18
|
+
export { o as useIcon };
|
|
19
|
+
|
|
20
|
+
//# sourceMappingURL=use-icon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-icon.js","names":[],"sources":["../../src/icons/use-icon.ts"],"sourcesContent":["import { useEffect, useState } from \"react\";\nimport type { LucideIcon } from \"lucide-react\";\n\nimport { useIconContext } from \"./icon-context\";\nimport { loadIcon, peekIcon, subscribeToIcons } from \"./shard-cache\";\n\n/**\n * Resolve an icon slug to its component.\n *\n * Resolution is synchronous whenever it can be: the provider registry first, then\n * the shard cache. Both are plain reads during render, so a slug the app declared\n * statically — or one whose shard a sibling icon already pulled in — is returned\n * on the first frame with no intermediate empty state.\n *\n * Only a genuinely cold slug falls through to the effect, which fetches the shard\n * for that initial letter and re-renders once it lands.\n *\n * @param slug - Any icon slug, canonical or deprecated. `undefined` skips work.\n * @returns The icon component, or `undefined` while it is loading or if the slug\n * does not exist.\n */\nexport function useIcon(slug: string | undefined): LucideIcon | undefined {\n const context = useIconContext();\n const fromRegistry = slug ? context?.registry[slug] : undefined;\n const [, forceRender] = useState(0);\n\n const cached = !fromRegistry && slug ? peekIcon(slug) : undefined;\n const resolved = fromRegistry ?? cached;\n\n useEffect(() => {\n if (!slug || resolved) return;\n let active = true;\n const unsubscribe = subscribeToIcons(() => {\n if (active) forceRender((n) => n + 1);\n });\n void loadIcon(slug);\n return () => {\n active = false;\n unsubscribe();\n };\n }, [slug, resolved]);\n\n return resolved;\n}\n"],"mappings":";;;;AAqBA,SAAgB,EAAQ,GAAkD;CACtE,IAAM,IAAU,EAAe,GACzB,IAAe,IAAO,GAAS,SAAS,KAAQ,KAAA,GAChD,GAAG,KAAe,EAAS,CAAC,GAE5B,IAAS,CAAC,KAAgB,IAAO,EAAS,CAAI,IAAI,KAAA,GAClD,IAAW,KAAgB;CAejC,OAbA,QAAgB;EACZ,IAAI,CAAC,KAAQ,GAAU;EACvB,IAAI,IAAS,IACP,IAAc,QAAuB;GACvC,AAAI,KAAQ,GAAa,MAAM,IAAI,CAAC;EACxC,CAAC;EAED,OADA,EAAc,CAAI,SACL;GAET,AADA,IAAS,IACT,EAAY;EAChB;CACJ,GAAG,CAAC,GAAM,CAAQ,CAAC,GAEZ;AACX"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Types for the module the `tempestIcons()` Vite plugin generates.
|
|
3
|
+
*
|
|
4
|
+
* Reference it once from an app's `vite-env.d.ts` (or any ambient `.d.ts`):
|
|
5
|
+
*
|
|
6
|
+
* /// <reference types="tempest-react-sdk/icons/virtual" />
|
|
7
|
+
*
|
|
8
|
+
* Without it, `import { staticIcons } from "virtual:tempest-icons"` is an
|
|
9
|
+
* unresolved module to `tsc`, even though Vite resolves it at build time.
|
|
10
|
+
*/
|
|
11
|
+
declare module "virtual:tempest-icons" {
|
|
12
|
+
import type { LucideIcon } from "lucide-react";
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Every icon slug found as a literal in the scanned source, mapped to the
|
|
16
|
+
* statically imported lucide component.
|
|
17
|
+
*
|
|
18
|
+
* Pass it to `IconProvider`'s `registry` prop. Slugs resolved from here cost
|
|
19
|
+
* no extra request — they are ordinary imports the bundler tree-shakes.
|
|
20
|
+
*/
|
|
21
|
+
export const staticIcons: Record<string, LucideIcon>;
|
|
22
|
+
}
|
package/dist/icons.cjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./icons/generated/aliases.cjs"),t=require("./icons/generated/icon-names.cjs"),n=require("./icons/icon-context.cjs"),r=require("./icons/shard-cache.cjs"),i=require("./icons/use-icon.cjs"),a=require("./icons/Icon.cjs"),o=require("./icons/IconProvider.cjs"),s=require("./icons/is-icon-name.cjs");exports.Icon=a.Icon,exports.IconProvider=o.IconProvider,exports.createIconRegistry=n.createIconRegistry,exports.iconAliases=e.iconAliases,exports.iconNames=t.iconNames,exports.iconStatus=r.iconStatus,exports.isIconName=s.isIconName,exports.loadIcon=r.loadIcon,exports.peekIcon=r.peekIcon,exports.preloadIcons=r.preloadIcons,exports.resolveIconAlias=r.resolveIconAlias,exports.useIcon=i.useIcon;
|