@heyramzi/ui 2.11.0 → 2.11.2
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/dist/agents/helpers.js +38 -38
- package/dist/agents/page-state.js +49 -50
- package/dist/agents/vendor/color.js +146 -127
- package/dist/agents/vendor/draw.js +617 -508
- package/dist/agents/vendor/engine.js +698 -599
- package/dist/agents/vendor/mesh.js +653 -683
- package/dist/agents/vendor/plastic.js +3913 -3112
- package/dist/agents/vendor/presets.js +163 -164
- package/dist/agents/vendor/shapes.js +21 -20
- package/dist/agents/vendor/ticker.js +41 -42
- package/dist/agents/vendor/types.js +1 -0
- package/dist/agents/vendor/wear.js +1421 -1448
- package/dist/ai/confirmation/confirmation-context.svelte.js +6 -6
- package/dist/ai/confirmation/index.js +3 -1
- package/dist/ai/index.js +33 -0
- package/dist/ai/prompt-input/index.js +3 -1
- package/dist/ai/reasoning/index.js +3 -1
- package/dist/ai/reasoning/reasoning-context.svelte.js +6 -6
- package/dist/ai/suggestion/index.js +3 -1
- package/dist/ai/typing-dots/index.js +3 -1
- package/dist/animations/text-swap.js +24 -24
- package/dist/brand/index.js +54 -48
- package/dist/canvas/card/resize.js +5 -3
- package/dist/canvas/edges/edge-path.js +255 -242
- package/dist/canvas/editor/context-menu.js +39 -36
- package/dist/canvas/editor/dispatch.svelte.js +154 -151
- package/dist/canvas/editor/editor-context.js +7 -2
- package/dist/canvas/editor/editor-mode.js +1 -0
- package/dist/canvas/editor/frame.js +73 -76
- package/dist/canvas/editor/hand-context.js +5 -2
- package/dist/canvas/editor/history-core.js +163 -191
- package/dist/canvas/editor/keymap.js +95 -169
- package/dist/canvas/editor/layout-actions.js +143 -144
- package/dist/canvas/editor/lock.js +52 -51
- package/dist/canvas/editor/rebase.js +217 -240
- package/dist/canvas/editor/style.js +132 -137
- package/dist/canvas/editor/text-field-context.js +7 -2
- package/dist/canvas/editor/z-order.js +65 -70
- package/dist/canvas/headless/alignment.js +22 -16
- package/dist/canvas/headless/break-apart-find.js +286 -279
- package/dist/canvas/headless/break-apart-pieces.js +62 -58
- package/dist/canvas/headless/break-apart-plan.js +299 -325
- package/dist/canvas/headless/break-apart-style.js +75 -70
- package/dist/canvas/headless/break-apart.js +188 -181
- package/dist/canvas/headless/canvas-cleanup.js +78 -58
- package/dist/canvas/headless/edge-anchors.js +115 -116
- package/dist/canvas/headless/edge-memo.js +24 -22
- package/dist/canvas/headless/edge-serialization.js +17 -27
- package/dist/canvas/headless/figure-geometry.js +232 -264
- package/dist/canvas/headless/fit-viewport.js +84 -67
- package/dist/canvas/headless/grid.js +88 -86
- package/dist/canvas/headless/icon-node.js +44 -36
- package/dist/canvas/headless/index.js +1 -0
- package/dist/canvas/headless/linkify.js +17 -19
- package/dist/canvas/headless/pen-marks.js +101 -95
- package/dist/canvas/headless/sketch.js +231 -209
- package/dist/canvas/headless/snap-guides.js +99 -83
- package/dist/canvas/headless/svg-figure.js +133 -117
- package/dist/canvas/headless/table-layout.js +146 -107
- package/dist/canvas/index.js +2 -0
- package/dist/canvas/lod/lod-mode.svelte.js +20 -18
- package/dist/canvas/lod/render-all.svelte.js +36 -39
- package/dist/canvas/ops/arrange.js +78 -71
- package/dist/canvas/ops/ops.js +260 -255
- package/dist/canvas/pen/colors.js +37 -35
- package/dist/canvas/pen/eraser.js +28 -27
- package/dist/canvas/pen/geometry.js +120 -130
- package/dist/canvas/pen/index.js +1 -0
- package/dist/canvas/pen/ops.js +11 -11
- package/dist/canvas/pen/pen-session.js +150 -159
- package/dist/canvas/pen/plugin.js +107 -104
- package/dist/canvas/pen/shapes.js +73 -68
- package/dist/canvas/pen/stroke-path.js +32 -30
- package/dist/canvas/pen/types.js +21 -21
- package/dist/canvas/pen/ui.js +10 -8
- package/dist/canvas/plugin.js +46 -46
- package/dist/canvas/screen/glyphs.js +12 -11
- package/dist/canvas/screen/labels.js +22 -22
- package/dist/canvas/screen/parts.js +98 -111
- package/dist/canvas/screen/plugin.js +47 -56
- package/dist/canvas/screen/types.js +30 -35
- package/dist/canvas/screen/ui.js +7 -7
- package/dist/canvas/test-utils.js +14 -14
- package/dist/canvas/types.js +1 -0
- package/dist/canvas/ui/forward-wheel.js +24 -25
- package/dist/canvas/ui/icons.js +64 -131
- package/dist/canvas/ui/place-panel.js +58 -49
- package/dist/canvas/ui/shortcut-tip.js +14 -12
- package/dist/canvas/ui/tools.js +300 -385
- package/dist/charts/dashboard/chart.js +4 -0
- package/dist/charts/dashboard/data-table.js +11 -0
- package/dist/charts/dashboard/windows.js +8 -3
- package/dist/charts/edge-fade.js +10 -5
- package/dist/charts/hover-band.js +16 -11
- package/dist/charts/index.js +0 -1
- package/dist/charts/motion.js +11 -7
- package/dist/charts/primitives/chart-utils.js +12 -12
- package/dist/components/copy/clipboard.js +32 -32
- package/dist/components/copy/copied.svelte.js +31 -23
- package/dist/components/data-table/data-table.js +39 -39
- package/dist/components/docs/index.js +4 -0
- package/dist/components/docs/scroll-spy.svelte.js +73 -68
- package/dist/components/list-page/filter-section.js +4 -1
- package/dist/components/list-page/index.js +2 -0
- package/dist/components/list-page/list-table.js +7 -2
- package/dist/components/list-page/queue-rail.js +14 -0
- package/dist/components/list-page/section-host.js +4 -2
- package/dist/components/list-page/step.js +4 -3
- package/dist/components/list-page/types.js +1 -0
- package/dist/components/picker/trigger.js +48 -30
- package/dist/components/picker/types.js +1 -0
- package/dist/components/segmented/collapse.js +38 -27
- package/dist/components/segmented/index.js +8 -0
- package/dist/components/segmented/segmented.js +67 -42
- package/dist/components/star-rating-input/index.js +3 -1
- package/dist/components/table-view/types.js +1 -0
- package/dist/components/tags-input/tags.js +81 -69
- package/dist/components/theme/index.js +4 -0
- package/dist/components/toolbar/index.js +4 -0
- package/dist/components/toolbar/toolbar-trigger.js +14 -1
- package/dist/editor/anchors.js +17 -13
- package/dist/editor/block-id.js +52 -51
- package/dist/editor/block-ops.js +108 -80
- package/dist/editor/doc-blocks.js +155 -166
- package/dist/editor/extensions.js +139 -180
- package/dist/editor/index.js +4 -0
- package/dist/editor/markdown-test-helpers.js +4 -2
- package/dist/editor/markdown.js +420 -408
- package/dist/editor/serializer.js +204 -200
- package/dist/editor/slash-items.js +89 -101
- package/dist/editor/youtube-url.js +25 -20
- package/dist/effects/animated-beam/path-calculator.svelte.js +43 -38
- package/dist/effects/animated-beam/types.js +1 -0
- package/dist/effects/border-beam/css.js +92 -78
- package/dist/effects/border-beam/presets.js +1705 -1720
- package/dist/effects/border-beam/register-properties.js +43 -33
- package/dist/effects/border-beam/types.js +1 -0
- package/dist/effects/image-comparison/compare.js +3 -2
- package/dist/effects/image-reveal/types.js +1 -0
- package/dist/effects/magnetic/magnetic.js +58 -52
- package/dist/effects/reveal/observe.js +50 -40
- package/dist/effects/reveal/types.js +1 -0
- package/dist/effects/shader-gradient/color.js +36 -29
- package/dist/effects/shader-gradient/renderer.js +384 -295
- package/dist/effects/shader-gradient/shaders.js +31 -0
- package/dist/effects/shader-gradient/types.js +1 -0
- package/dist/icons/apple-symbol-exports.js +99 -124
- package/dist/icons/sf-symbols.js +357 -461
- package/dist/icons/trades.js +43 -28
- package/dist/inbox/index.js +1 -0
- package/dist/inbox/logic.js +126 -122
- package/dist/inbox/types.js +43 -43
- package/dist/lib/arrive.js +19 -12
- package/dist/lib/icon-types.js +1 -0
- package/dist/lib/initials.js +16 -10
- package/dist/lib/layout.js +5 -0
- package/dist/lib/panel.js +13 -0
- package/dist/lib/result.js +22 -22
- package/dist/lib/sliding-pill.js +59 -44
- package/dist/lib/theme-transition.js +43 -43
- package/dist/lib/tone.js +31 -24
- package/dist/lib/utils.js +3 -1
- package/dist/onboarding/define-tours.js +24 -23
- package/dist/onboarding/onboarding.svelte.js +16 -12
- package/dist/onboarding/pick.js +10 -6
- package/dist/onboarding/stores.js +40 -41
- package/dist/onboarding/wait.js +24 -23
- package/dist/panel/side-panel-types.js +1 -0
- package/dist/record/demo-data.js +459 -486
- package/dist/record/fields.js +129 -131
- package/dist/record/format.js +70 -82
- package/dist/record/gutter.js +1 -0
- package/dist/record/kinds.js +95 -105
- package/dist/record/logic.js +238 -219
- package/dist/record/types.js +49 -48
- package/dist/shadcn/accordion/index.js +3 -1
- package/dist/shadcn/alert/index.js +3 -1
- package/dist/shadcn/alert-dialog/index.js +3 -1
- package/dist/shadcn/attachment/index.js +3 -1
- package/dist/shadcn/avatar/index.js +3 -1
- package/dist/shadcn/breadcrumb/index.js +3 -1
- package/dist/shadcn/bubble/index.js +3 -1
- package/dist/shadcn/button/index.js +3 -1
- package/dist/shadcn/calendar/index.js +3 -1
- package/dist/shadcn/card/index.js +3 -1
- package/dist/shadcn/checkbox/index.js +3 -1
- package/dist/shadcn/code-block/index.js +3 -1
- package/dist/shadcn/collapsible/index.js +3 -1
- package/dist/shadcn/command/index.js +4 -1
- package/dist/shadcn/context-menu/index.js +3 -1
- package/dist/shadcn/dialog/index.js +3 -1
- package/dist/shadcn/dropdown-menu/menu-item.js +40 -20
- package/dist/shadcn/empty/index.js +3 -1
- package/dist/shadcn/field/index.js +3 -1
- package/dist/shadcn/hooks/highlighter.js +77 -75
- package/dist/shadcn/hooks/is-mobile.svelte.js +3 -3
- package/dist/shadcn/hooks/use-highlighted-code.svelte.js +62 -62
- package/dist/shadcn/input/index.js +3 -1
- package/dist/shadcn/kbd/index.js +3 -1
- package/dist/shadcn/label/index.js +3 -1
- package/dist/shadcn/marker/index.js +3 -1
- package/dist/shadcn/message/index.js +3 -1
- package/dist/shadcn/message-scroller/index.js +3 -1
- package/dist/shadcn/popover/index.js +3 -1
- package/dist/shadcn/progress/index.js +3 -1
- package/dist/shadcn/progress/tone.js +8 -7
- package/dist/shadcn/radio-group/index.js +3 -1
- package/dist/shadcn/scroll-area/index.js +3 -1
- package/dist/shadcn/select/index.js +3 -1
- package/dist/shadcn/separator/index.js +3 -1
- package/dist/shadcn/sheet/index.js +3 -1
- package/dist/shadcn/sidebar/context.svelte.js +42 -28
- package/dist/shadcn/sidebar/index.js +3 -1
- package/dist/shadcn/skeleton/index.js +3 -1
- package/dist/shadcn/slider/index.js +3 -1
- package/dist/shadcn/switch/index.js +3 -1
- package/dist/shadcn/table/index.js +3 -1
- package/dist/shadcn/tabs/index.js +3 -1
- package/dist/shadcn/textarea/index.js +3 -1
- package/dist/shadcn/toggle/index.js +3 -1
- package/dist/shadcn/toggle-group/index.js +3 -1
- package/dist/shadcn/tooltip/context.js +7 -2
- package/dist/shadcn/tooltip/index.js +3 -1
- package/dist/shadcn/trace/index.js +3 -1
- package/dist/slides/bridges.js +65 -59
- package/dist/slides/deck-controller.svelte.js +210 -207
- package/dist/slides/export/capture.js +66 -71
- package/dist/slides/export/ffmpeg.js +76 -72
- package/dist/slides/export/index.js +3 -0
- package/dist/slides/export/launch.js +9 -6
- package/dist/slides/export/pdf.js +60 -54
- package/dist/slides/export/types.js +1 -0
- package/dist/slides/labels.js +24 -24
- package/dist/slides/layout.js +39 -41
- package/dist/slides/model.js +9 -7
- package/dist/slides/navigation.js +78 -73
- package/dist/slides/types.js +2 -2
- package/dist/status/define-statuses.js +18 -14
- package/dist/status/status-types.js +1 -0
- package/dist/test-setup.js +24 -20
- package/dist/thread/logic.js +73 -77
- package/dist/thread/types.js +21 -21
- package/dist/work/board-order.js +94 -90
- package/dist/work/dates.js +16 -9
- package/dist/work/detail/detail-types.js +18 -18
- package/dist/work/docs/edited.js +32 -29
- package/dist/work/docs/index.js +4 -0
- package/dist/work/docs/labels.js +34 -34
- package/dist/work/docs/menu.js +113 -106
- package/dist/work/docs/outline.js +39 -29
- package/dist/work/gantt/logic.js +211 -235
- package/dist/work/inbox/inbox-logic.js +71 -75
- package/dist/work/inbox/inbox-statuses.js +75 -72
- package/dist/work/inbox/inbox-types.js +1 -0
- package/dist/work/kanban-drag.js +27 -22
- package/dist/work/kanban-types.js +1 -0
- package/dist/work/presets/sales.js +36 -32
- package/dist/work/reorder.js +9 -8
- package/dist/work/task-types.js +1 -0
- package/dist/work/time/duration.js +51 -46
- package/dist/work/time/time-types.js +23 -23
- package/dist/work/use-kanban-dnd.svelte.js +126 -125
- package/package.json +3 -1
- package/src/components/list-page/master-detail.svelte +3 -1
- package/src/components/list-page/rail-row.svelte +4 -4
- package/src/components/tags-input/tags-input.svelte +2 -0
- package/src/editor/markdown.ts +30 -35
|
@@ -2,4 +2,6 @@ import Content from "../../../src/shadcn/bubble/bubble-content.svelte";
|
|
|
2
2
|
import Group from "../../../src/shadcn/bubble/bubble-group.svelte";
|
|
3
3
|
import Reactions, { bubbleReactionsVariants } from "../../../src/shadcn/bubble/bubble-reactions.svelte";
|
|
4
4
|
import Root, { bubbleVariants } from "../../../src/shadcn/bubble/bubble.svelte";
|
|
5
|
-
export { Root, Group, Content, Reactions, bubbleVariants, bubbleReactionsVariants,
|
|
5
|
+
export { Root, Group, Content, Reactions, bubbleVariants, bubbleReactionsVariants,
|
|
6
|
+
//
|
|
7
|
+
Root as Bubble, Group as BubbleGroup, Content as BubbleContent, Reactions as BubbleReactions };
|
|
@@ -16,4 +16,6 @@ import YearSelect from "../../../src/shadcn/calendar/calendar-year-select.svelte
|
|
|
16
16
|
import Month from "../../../src/shadcn/calendar/calendar-month.svelte";
|
|
17
17
|
import Nav from "../../../src/shadcn/calendar/calendar-nav.svelte";
|
|
18
18
|
import Caption from "../../../src/shadcn/calendar/calendar-caption.svelte";
|
|
19
|
-
export { Day, Cell, Grid, Header, Months, GridRow, Heading, GridBody, GridHead, HeadCell, NextButton, PrevButton, Nav, Month, YearSelect, MonthSelect, Caption,
|
|
19
|
+
export { Day, Cell, Grid, Header, Months, GridRow, Heading, GridBody, GridHead, HeadCell, NextButton, PrevButton, Nav, Month, YearSelect, MonthSelect, Caption,
|
|
20
|
+
//
|
|
21
|
+
Root as Calendar };
|
|
@@ -5,4 +5,6 @@ import Footer from "../../../src/shadcn/card/card-footer.svelte";
|
|
|
5
5
|
import Header from "../../../src/shadcn/card/card-header.svelte";
|
|
6
6
|
import Title from "../../../src/shadcn/card/card-title.svelte";
|
|
7
7
|
import Action from "../../../src/shadcn/card/card-action.svelte";
|
|
8
|
-
export { Root, Content, Description, Footer, Header, Title, Action,
|
|
8
|
+
export { Root, Content, Description, Footer, Header, Title, Action,
|
|
9
|
+
//
|
|
10
|
+
Root as Card, Content as CardContent, Description as CardDescription, Footer as CardFooter, Header as CardHeader, Title as CardTitle, Action as CardAction };
|
|
@@ -6,4 +6,6 @@ import Header from "../../../src/shadcn/code-block/code-block-header.svelte";
|
|
|
6
6
|
import Title from "../../../src/shadcn/code-block/code-block-title.svelte";
|
|
7
7
|
import Line, { codeBlockLineVariants } from "../../../src/shadcn/code-block/code-block-line.svelte";
|
|
8
8
|
import Root, { codeBlockVariants } from "../../../src/shadcn/code-block/code-block.svelte";
|
|
9
|
-
export { Root, Header, Title, Actions, CopyButton, Content, Line, Footer, codeBlockVariants, codeBlockLineVariants,
|
|
9
|
+
export { Root, Header, Title, Actions, CopyButton, Content, Line, Footer, codeBlockVariants, codeBlockLineVariants,
|
|
10
|
+
//
|
|
11
|
+
Root as CodeBlock, Header as CodeBlockHeader, Title as CodeBlockTitle, Actions as CodeBlockActions, CopyButton as CodeBlockCopyButton, Content as CodeBlockContent, Line as CodeBlockLine, Footer as CodeBlockFooter };
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import Root from "../../../src/shadcn/collapsible/collapsible.svelte";
|
|
2
2
|
import Trigger from "../../../src/shadcn/collapsible/collapsible-trigger.svelte";
|
|
3
3
|
import Content from "../../../src/shadcn/collapsible/collapsible-content.svelte";
|
|
4
|
-
export { Root, Content, Trigger,
|
|
4
|
+
export { Root, Content, Trigger,
|
|
5
|
+
//
|
|
6
|
+
Root as Collapsible, Content as CollapsibleContent, Trigger as CollapsibleTrigger };
|
|
@@ -10,4 +10,7 @@ import List from "../../../src/shadcn/command/command-list.svelte";
|
|
|
10
10
|
import Separator from "../../../src/shadcn/command/command-separator.svelte";
|
|
11
11
|
import Shortcut from "../../../src/shadcn/command/command-shortcut.svelte";
|
|
12
12
|
import LinkItem from "../../../src/shadcn/command/command-link-item.svelte";
|
|
13
|
-
|
|
13
|
+
// The scorer Command uses by default, for a custom `filter` that wants to rank its own words.
|
|
14
|
+
export { computeCommandScore, Root, Dialog, Empty, Group, Item, LinkItem, Input, List, Separator, Shortcut, Loading,
|
|
15
|
+
//
|
|
16
|
+
Root as Command, Dialog as CommandDialog, Empty as CommandEmpty, Group as CommandGroup, Item as CommandItem, LinkItem as CommandLinkItem, Input as CommandInput, List as CommandList, Separator as CommandSeparator, Shortcut as CommandShortcut, Loading as CommandLoading };
|
|
@@ -14,4 +14,6 @@ import SubContent from "../../../src/shadcn/context-menu/context-menu-sub-conten
|
|
|
14
14
|
import SubTrigger from "../../../src/shadcn/context-menu/context-menu-sub-trigger.svelte";
|
|
15
15
|
import CheckboxItem from "../../../src/shadcn/context-menu/context-menu-checkbox-item.svelte";
|
|
16
16
|
import Label from "../../../src/shadcn/context-menu/context-menu-label.svelte";
|
|
17
|
-
export { Root, Sub, Portal, Item, GroupHeading, Label, Group, Trigger, Content, Shortcut, Separator, RadioItem, SubContent, SubTrigger, RadioGroup, CheckboxItem,
|
|
17
|
+
export { Root, Sub, Portal, Item, GroupHeading, Label, Group, Trigger, Content, Shortcut, Separator, RadioItem, SubContent, SubTrigger, RadioGroup, CheckboxItem,
|
|
18
|
+
//
|
|
19
|
+
Root as ContextMenu, Sub as ContextMenuSub, Portal as ContextMenuPortal, Item as ContextMenuItem, GroupHeading as ContextMenuGroupHeading, Group as ContextMenuGroup, Content as ContextMenuContent, Trigger as ContextMenuTrigger, Shortcut as ContextMenuShortcut, RadioItem as ContextMenuRadioItem, Separator as ContextMenuSeparator, RadioGroup as ContextMenuRadioGroup, SubContent as ContextMenuSubContent, SubTrigger as ContextMenuSubTrigger, CheckboxItem as ContextMenuCheckboxItem, Label as ContextMenuLabel };
|
|
@@ -8,4 +8,6 @@ import Content from "../../../src/shadcn/dialog/dialog-content.svelte";
|
|
|
8
8
|
import Description from "../../../src/shadcn/dialog/dialog-description.svelte";
|
|
9
9
|
import Trigger from "../../../src/shadcn/dialog/dialog-trigger.svelte";
|
|
10
10
|
import Close from "../../../src/shadcn/dialog/dialog-close.svelte";
|
|
11
|
-
export { Root, Title, Portal, Footer, Header, Trigger, Overlay, Content, Description, Close,
|
|
11
|
+
export { Root, Title, Portal, Footer, Header, Trigger, Overlay, Content, Description, Close,
|
|
12
|
+
//
|
|
13
|
+
Root as Dialog, Title as DialogTitle, Portal as DialogPortal, Footer as DialogFooter, Header as DialogHeader, Trigger as DialogTrigger, Overlay as DialogOverlay, Content as DialogContent, Description as DialogDescription, Close as DialogClose };
|
|
@@ -1,23 +1,43 @@
|
|
|
1
1
|
import { tv } from "tailwind-variants";
|
|
2
|
+
/**
|
|
3
|
+
* The one row a menu is built from.
|
|
4
|
+
*/
|
|
5
|
+
/*
|
|
6
|
+
* WHY it is a recipe and not only a component: `DropdownMenu.Item` needs a `DropdownMenu.Root` above it, and the diagram canvas has no trigger element to hang one on.
|
|
7
|
+
*/
|
|
8
|
+
/*
|
|
9
|
+
* It opens its own panel at the pointer, so it drew its own rows: fifteen of them in `diagram-context-menu.svelte`, in four widths of gap and two paddings,
|
|
10
|
+
*/
|
|
11
|
+
/*
|
|
12
|
+
* none of which could follow a change to the set.
|
|
13
|
+
*/
|
|
14
|
+
/*
|
|
15
|
+
* WHY both `hover:` and `focus:`: bits-ui moves a `data-highlighted` focus ring with the keyboard and never fires hover, while a hand-rolled panel has only the pointer.
|
|
16
|
+
*/
|
|
17
|
+
/*
|
|
18
|
+
* A row has to look the same either way, so it answers to both.
|
|
19
|
+
*/
|
|
2
20
|
export const menuItemClass = tv({
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
base: "relative flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-disabled:pointer-events-none data-disabled:opacity-50 disabled:pointer-events-none disabled:opacity-50",
|
|
22
|
+
variants: {
|
|
23
|
+
variant: {
|
|
24
|
+
default: "hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground",
|
|
25
|
+
destructive: "text-destructive *:[svg]:text-destructive hover:bg-destructive/10 focus:bg-destructive/10 focus:text-destructive dark:hover:bg-destructive/20 dark:focus:bg-destructive/20"
|
|
26
|
+
},
|
|
27
|
+
/** A row in a set where a sibling carries a leading mark. */
|
|
28
|
+
inset: {
|
|
29
|
+
true: "pl-7",
|
|
30
|
+
false: ""
|
|
31
|
+
},
|
|
32
|
+
/** Panels that fill their width: a canvas menu, a picker column. */
|
|
33
|
+
block: {
|
|
34
|
+
true: "w-full",
|
|
35
|
+
false: ""
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
defaultVariants: {
|
|
39
|
+
variant: "default",
|
|
40
|
+
inset: false,
|
|
41
|
+
block: false
|
|
42
|
+
}
|
|
23
43
|
});
|
|
@@ -4,4 +4,6 @@ import Media from "../../../src/shadcn/empty/empty-media.svelte";
|
|
|
4
4
|
import Title from "../../../src/shadcn/empty/empty-title.svelte";
|
|
5
5
|
import Description from "../../../src/shadcn/empty/empty-description.svelte";
|
|
6
6
|
import Content from "../../../src/shadcn/empty/empty-content.svelte";
|
|
7
|
-
export { Root, Header, Media, Title, Description, Content,
|
|
7
|
+
export { Root, Header, Media, Title, Description, Content,
|
|
8
|
+
//
|
|
9
|
+
Root as Empty, Header as EmptyHeader, Media as EmptyMedia, Title as EmptyTitle, Description as EmptyDescription, Content as EmptyContent };
|
|
@@ -9,4 +9,6 @@ import Description from "../../../src/shadcn/field/field-description.svelte";
|
|
|
9
9
|
import Separator from "../../../src/shadcn/field/field-separator.svelte";
|
|
10
10
|
import Error from "../../../src/shadcn/field/field-error.svelte";
|
|
11
11
|
import Simple from "../../../src/shadcn/field/simple-field.svelte";
|
|
12
|
-
export { Field, Set, Legend, Group, Content, Label, Title, Description, Separator, Error, Simple,
|
|
12
|
+
export { Field, Set, Legend, Group, Content, Label, Title, Description, Separator, Error, Simple,
|
|
13
|
+
//
|
|
14
|
+
Set as FieldSet, Legend as FieldLegend, Group as FieldGroup, Content as FieldContent, Label as FieldLabel, Title as FieldTitle, Description as FieldDescription, Separator as FieldSeparator, Error as FieldError, Simple as SimpleField };
|
|
@@ -1,92 +1,94 @@
|
|
|
1
1
|
import { createHighlighterCore } from "shiki/core";
|
|
2
2
|
import { createJavaScriptRegexEngine } from "shiki/engine/javascript";
|
|
3
|
+
// Add the languages you need. Each one loads the first time it is used.
|
|
3
4
|
const languages = {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
5
|
+
bash: () => import("shiki/langs/shellscript.mjs"),
|
|
6
|
+
css: () => import("shiki/langs/css.mjs"),
|
|
7
|
+
diff: () => import("shiki/langs/diff.mjs"),
|
|
8
|
+
html: () => import("shiki/langs/html.mjs"),
|
|
9
|
+
javascript: () => import("shiki/langs/javascript.mjs"),
|
|
10
|
+
json: () => import("shiki/langs/json.mjs"),
|
|
11
|
+
jsx: () => import("shiki/langs/jsx.mjs"),
|
|
12
|
+
markdown: () => import("shiki/langs/markdown.mjs"),
|
|
13
|
+
python: () => import("shiki/langs/python.mjs"),
|
|
14
|
+
sql: () => import("shiki/langs/sql.mjs"),
|
|
15
|
+
svelte: () => import("shiki/langs/svelte.mjs"),
|
|
16
|
+
tsx: () => import("shiki/langs/tsx.mjs"),
|
|
17
|
+
typescript: () => import("shiki/langs/typescript.mjs"),
|
|
18
|
+
yaml: () => import("shiki/langs/yaml.mjs")
|
|
18
19
|
};
|
|
19
20
|
const aliases = {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
21
|
+
js: "javascript",
|
|
22
|
+
md: "markdown",
|
|
23
|
+
py: "python",
|
|
24
|
+
sh: "bash",
|
|
25
|
+
shell: "bash",
|
|
26
|
+
shellscript: "bash",
|
|
27
|
+
ts: "typescript",
|
|
28
|
+
yml: "yaml",
|
|
29
|
+
zsh: "bash"
|
|
29
30
|
};
|
|
30
31
|
let highlighter;
|
|
31
32
|
function getHighlighter() {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
engine: createJavaScriptRegexEngine({
|
|
39
|
-
forgiving: true
|
|
40
|
-
})
|
|
41
|
-
});
|
|
42
|
-
return highlighter;
|
|
33
|
+
highlighter ??= createHighlighterCore({
|
|
34
|
+
themes: [import("shiki/themes/github-light.mjs"), import("shiki/themes/github-dark.mjs")],
|
|
35
|
+
langs: [],
|
|
36
|
+
engine: createJavaScriptRegexEngine({ forgiving: true })
|
|
37
|
+
});
|
|
38
|
+
return highlighter;
|
|
43
39
|
}
|
|
44
40
|
function getLanguage(language) {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
41
|
+
const name = language.toLowerCase();
|
|
42
|
+
if (name === "ansi") {
|
|
43
|
+
return name;
|
|
44
|
+
}
|
|
45
|
+
if (name in languages) {
|
|
46
|
+
return name;
|
|
47
|
+
}
|
|
48
|
+
return aliases[name] ?? null;
|
|
53
49
|
}
|
|
54
50
|
function toHighlightedLine(tokens) {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
51
|
+
return tokens.map((token) => ({
|
|
52
|
+
content: token.content,
|
|
53
|
+
style: Object.entries(token.htmlStyle ?? {}).map(([property, value]) => `${property}:${value}`).join(";"),
|
|
54
|
+
class: "text-(--shiki-light) dark:text-(--shiki-dark)"
|
|
55
|
+
}));
|
|
60
56
|
}
|
|
57
|
+
// Loads a language and returns a highlighter for it, or null for a language
|
|
58
|
+
// that is not listed.
|
|
61
59
|
export async function loadHighlighter(language) {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
60
|
+
const lang = getLanguage(language);
|
|
61
|
+
if (!lang) {
|
|
62
|
+
return null;
|
|
63
|
+
}
|
|
64
|
+
const shiki = await getHighlighter();
|
|
65
|
+
if (lang !== "ansi" && !shiki.getLoadedLanguages().includes(lang)) {
|
|
66
|
+
await shiki.loadLanguage(languages[lang]);
|
|
67
|
+
}
|
|
68
|
+
return {
|
|
69
|
+
// Returns the tokens of each line, and the grammar state after the last
|
|
70
|
+
// line. Pass that state back to continue where the code left off.
|
|
71
|
+
highlight(code, state) {
|
|
72
|
+
const tokenize = (text) => shiki.codeToTokens(text, {
|
|
73
|
+
lang,
|
|
74
|
+
themes: {
|
|
75
|
+
light: "github-light",
|
|
76
|
+
dark: "github-dark"
|
|
77
|
+
},
|
|
78
|
+
defaultColor: false,
|
|
79
|
+
grammarState: state
|
|
80
|
+
}).tokens;
|
|
81
|
+
// ANSI has no grammar state, so each line is tokenized on its own and
|
|
82
|
+
// gets the same colors whether it arrives in one piece or streams.
|
|
83
|
+
const tokens = lang === "ansi" ? code.split("\n").flatMap((line) => tokenize(line)) : tokenize(code);
|
|
84
|
+
return {
|
|
85
|
+
lines: tokens.map((line) => toHighlightedLine(line)),
|
|
86
|
+
state: shiki.getLastGrammarState(tokens)
|
|
87
|
+
};
|
|
88
|
+
} };
|
|
88
89
|
}
|
|
90
|
+
// Returns the tokens of each line, or null for a language that is not listed.
|
|
89
91
|
export async function highlightCode(code, language) {
|
|
90
|
-
|
|
91
|
-
|
|
92
|
+
const highlighter = await loadHighlighter(language);
|
|
93
|
+
return highlighter ? highlighter.highlight(code).lines : null;
|
|
92
94
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { MediaQuery } from "svelte/reactivity";
|
|
2
2
|
const DEFAULT_MOBILE_BREAKPOINT = 768;
|
|
3
3
|
export class IsMobile extends MediaQuery {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
constructor(breakpoint = DEFAULT_MOBILE_BREAKPOINT) {
|
|
5
|
+
super(`max-width: ${breakpoint - 1}px`);
|
|
6
|
+
}
|
|
7
7
|
}
|
|
@@ -1,65 +1,65 @@
|
|
|
1
1
|
import { loadHighlighter } from "./highlighter.js";
|
|
2
|
+
/**
|
|
3
|
+
* Highlights `code`. Each `current` entry is a plain string until the highlighter loads, then
|
|
4
|
+
* tokens, so pass it to `CodeBlock.Line`'s `code` prop either way.
|
|
5
|
+
*/
|
|
2
6
|
export function useHighlightedCode(value, language) {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
get current () {
|
|
62
|
-
return lines;
|
|
63
|
-
}
|
|
64
|
-
};
|
|
7
|
+
let loaded = $state.raw(null);
|
|
8
|
+
$effect(() => {
|
|
9
|
+
const lang = language();
|
|
10
|
+
let cancelled = false;
|
|
11
|
+
loadHighlighter(lang).then((next) => {
|
|
12
|
+
if (!cancelled) {
|
|
13
|
+
loaded = {
|
|
14
|
+
language: lang,
|
|
15
|
+
highlighter: next
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
}).catch(() => {});
|
|
19
|
+
return () => {
|
|
20
|
+
cancelled = true;
|
|
21
|
+
};
|
|
22
|
+
});
|
|
23
|
+
// The complete lines, highlighted. While the code streams, only the new
|
|
24
|
+
// lines are tokenized, starting from the grammar state of the last one.
|
|
25
|
+
let done = {
|
|
26
|
+
highlighter: null,
|
|
27
|
+
text: "",
|
|
28
|
+
lines: []
|
|
29
|
+
};
|
|
30
|
+
const lines = $derived.by(() => {
|
|
31
|
+
const raw = value();
|
|
32
|
+
// A trailing newline would render as an extra empty line.
|
|
33
|
+
const code = raw.endsWith("\n") ? raw.slice(0, -1) : raw;
|
|
34
|
+
const lang = language();
|
|
35
|
+
const highlighter = loaded?.language === lang ? loaded.highlighter : null;
|
|
36
|
+
if (!highlighter) {
|
|
37
|
+
return code.split("\n");
|
|
38
|
+
}
|
|
39
|
+
let next = done;
|
|
40
|
+
if (next.highlighter !== highlighter || !code.startsWith(next.text)) {
|
|
41
|
+
next = {
|
|
42
|
+
highlighter,
|
|
43
|
+
text: "",
|
|
44
|
+
lines: []
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
const end = code.lastIndexOf("\n") + 1;
|
|
48
|
+
if (end > next.text.length) {
|
|
49
|
+
const result = highlighter.highlight(code.slice(next.text.length, end - 1), next.state);
|
|
50
|
+
next = {
|
|
51
|
+
highlighter,
|
|
52
|
+
text: code.slice(0, end),
|
|
53
|
+
lines: [...next.lines, ...result.lines],
|
|
54
|
+
state: result.state
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
done = next;
|
|
58
|
+
// The last line is still being written, so it is tokenized every time.
|
|
59
|
+
const tail = code.slice(end);
|
|
60
|
+
return [...next.lines, highlighter.highlight(tail, next.state).lines[0]];
|
|
61
|
+
});
|
|
62
|
+
return { get current() {
|
|
63
|
+
return lines;
|
|
64
|
+
} };
|
|
65
65
|
}
|
package/dist/shadcn/kbd/index.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import Content from "../../../src/shadcn/marker/marker-content.svelte";
|
|
2
2
|
import Icon from "../../../src/shadcn/marker/marker-icon.svelte";
|
|
3
3
|
import Root, { markerVariants } from "../../../src/shadcn/marker/marker.svelte";
|
|
4
|
-
export { Root, Icon, Content, markerVariants,
|
|
4
|
+
export { Root, Icon, Content, markerVariants,
|
|
5
|
+
//
|
|
6
|
+
Root as Marker, Icon as MarkerIcon, Content as MarkerContent };
|
|
@@ -4,4 +4,6 @@ import Footer from "../../../src/shadcn/message/message-footer.svelte";
|
|
|
4
4
|
import Group from "../../../src/shadcn/message/message-group.svelte";
|
|
5
5
|
import Header from "../../../src/shadcn/message/message-header.svelte";
|
|
6
6
|
import Root from "../../../src/shadcn/message/message.svelte";
|
|
7
|
-
export { Root, Group, Avatar, Content, Header, Footer,
|
|
7
|
+
export { Root, Group, Avatar, Content, Header, Footer,
|
|
8
|
+
//
|
|
9
|
+
Root as Message, Group as MessageGroup, Avatar as MessageAvatar, Content as MessageContent, Header as MessageHeader, Footer as MessageFooter };
|
|
@@ -5,4 +5,6 @@ import Provider from "../../../src/shadcn/message-scroller/message-scroller-prov
|
|
|
5
5
|
import Viewport from "../../../src/shadcn/message-scroller/message-scroller-viewport.svelte";
|
|
6
6
|
import Root from "../../../src/shadcn/message-scroller/message-scroller.svelte";
|
|
7
7
|
export { useMessageScroller, useMessageScrollerScrollable, useMessageScrollerVisibility } from "@shadcn-svelte/primitives/message-scroller";
|
|
8
|
-
export { Provider, Root, Viewport, Content, Item, Button,
|
|
8
|
+
export { Provider, Root, Viewport, Content, Item, Button,
|
|
9
|
+
//
|
|
10
|
+
Provider as MessageScrollerProvider, Root as MessageScroller, Viewport as MessageScrollerViewport, Content as MessageScrollerContent, Item as MessageScrollerItem, Button as MessageScrollerButton };
|
|
@@ -6,4 +6,6 @@ import Header from "../../../src/shadcn/popover/popover-header.svelte";
|
|
|
6
6
|
import Title from "../../../src/shadcn/popover/popover-title.svelte";
|
|
7
7
|
import Trigger from "../../../src/shadcn/popover/popover-trigger.svelte";
|
|
8
8
|
import Portal from "../../../src/shadcn/popover/popover-portal.svelte";
|
|
9
|
-
export { Root, Content, Description, Header, Title, Trigger, Close, Portal,
|
|
9
|
+
export { Root, Content, Description, Header, Title, Trigger, Close, Portal,
|
|
10
|
+
//
|
|
11
|
+
Root as Popover, Content as PopoverContent, Description as PopoverDescription, Header as PopoverHeader, Title as PopoverTitle, Trigger as PopoverTrigger, Close as PopoverClose, Portal as PopoverPortal };
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
+
/** The fill colour for each tone. No tone is the primary colour, as before. */
|
|
1
2
|
const FILL = {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
neutral: "bg-muted-foreground",
|
|
4
|
+
accent: "bg-[color:var(--tone-accent,var(--color-primary))]",
|
|
5
|
+
info: "bg-info",
|
|
6
|
+
success: "bg-success",
|
|
7
|
+
warning: "bg-warning",
|
|
8
|
+
destructive: "bg-destructive"
|
|
8
9
|
};
|
|
9
10
|
export function progressToneClass(tone) {
|
|
10
|
-
|
|
11
|
+
return tone ? FILL[tone] : "bg-primary";
|
|
11
12
|
}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
import Root from "../../../src/shadcn/radio-group/radio-group.svelte";
|
|
2
2
|
import Item from "../../../src/shadcn/radio-group/radio-group-item.svelte";
|
|
3
|
-
export { Root, Item,
|
|
3
|
+
export { Root, Item,
|
|
4
|
+
//
|
|
5
|
+
Root as RadioGroup, Item as RadioGroupItem };
|
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
import Root from "../../../src/shadcn/scroll-area/scroll-area.svelte";
|
|
2
2
|
import Scrollbar from "../../../src/shadcn/scroll-area/scroll-area-scrollbar.svelte";
|
|
3
|
-
export { Root,
|
|
3
|
+
export { Root,
|
|
4
|
+
//,
|
|
5
|
+
Root as ScrollArea, Scrollbar, Scrollbar as ScrollAreaScrollbar };
|
|
@@ -9,4 +9,6 @@ import ScrollDownButton from "../../../src/shadcn/select/select-scroll-down-butt
|
|
|
9
9
|
import ScrollUpButton from "../../../src/shadcn/select/select-scroll-up-button.svelte";
|
|
10
10
|
import GroupHeading from "../../../src/shadcn/select/select-group-heading.svelte";
|
|
11
11
|
import Portal from "../../../src/shadcn/select/select-portal.svelte";
|
|
12
|
-
export { Root, Group, Label, Item, Content, Trigger, Separator, ScrollDownButton, ScrollUpButton, GroupHeading, Portal,
|
|
12
|
+
export { Root, Group, Label, Item, Content, Trigger, Separator, ScrollDownButton, ScrollUpButton, GroupHeading, Portal,
|
|
13
|
+
//
|
|
14
|
+
Root as Select, Group as SelectGroup, Label as SelectLabel, Item as SelectItem, Content as SelectContent, Trigger as SelectTrigger, Separator as SelectSeparator, ScrollDownButton as SelectScrollDownButton, ScrollUpButton as SelectScrollUpButton, GroupHeading as SelectGroupHeading, Portal as SelectPortal };
|