@devalok/shilp-sutra 0.31.0 → 0.33.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/dist/_chunks/badge-group.js +123 -172
- package/dist/_chunks/date-time-picker.js +851 -0
- package/dist/_chunks/document-preview.js +92 -0
- package/dist/_chunks/file-preview.js +511 -0
- package/dist/_chunks/image-preview.js +90 -0
- package/dist/_chunks/mention-suggestion.js +362 -0
- package/dist/_chunks/primitives.js +109 -109
- package/dist/_chunks/stat-row.js +144 -124
- package/dist/_chunks/tiptap.js +11595 -7731
- package/dist/_chunks/use-calendar.js +117 -890
- package/dist/_chunks/vendor-client.js +1055 -894
- package/dist/ai/block-renderer.d.ts +2 -1
- package/dist/ai/block-renderer.d.ts.map +1 -1
- package/dist/ai/block-renderer.js +30 -29
- package/dist/ai/blocks/block-table.d.ts.map +1 -1
- package/dist/ai/blocks/confirm.d.ts.map +1 -1
- package/dist/ai/blocks/divider.d.ts.map +1 -1
- package/dist/ai/blocks/error.d.ts.map +1 -1
- package/dist/ai/blocks/info.d.ts.map +1 -1
- package/dist/ai/blocks/loading.d.ts.map +1 -1
- package/dist/ai/blocks/stat-row.d.ts.map +1 -1
- package/dist/ai/blocks/success.d.ts.map +1 -1
- package/dist/ai/blocks/text.d.ts.map +1 -1
- package/dist/ai/command-bar.d.ts +18 -0
- package/dist/ai/command-bar.d.ts.map +1 -1
- package/dist/ai/command-bar.js +126 -125
- package/dist/ai/conversation.d.ts +13 -1
- package/dist/ai/conversation.d.ts.map +1 -1
- package/dist/ai/conversation.js +78 -78
- package/dist/ai/types.d.ts +0 -1
- package/dist/ai/types.d.ts.map +1 -1
- package/dist/ai/types.js +0 -1
- package/dist/composed/bulk-action-bar.d.ts +6 -4
- package/dist/composed/bulk-action-bar.d.ts.map +1 -1
- package/dist/composed/bulk-action-bar.js +102 -58
- package/dist/composed/command-palette.d.ts +9 -0
- package/dist/composed/command-palette.d.ts.map +1 -1
- package/dist/composed/command-palette.js +68 -68
- package/dist/composed/confirm-dialog.d.ts +1 -1
- package/dist/composed/confirm-dialog.d.ts.map +1 -1
- package/dist/composed/confirm-dialog.js +10 -10
- package/dist/composed/date-picker/date-picker.d.ts +11 -1
- package/dist/composed/date-picker/date-picker.d.ts.map +1 -1
- package/dist/composed/date-picker/index.js +9 -8
- package/dist/composed/date-picker/month-picker.d.ts.map +1 -1
- package/dist/composed/date-picker/year-picker.d.ts.map +1 -1
- package/dist/composed/deadline-indicator.d.ts +1 -1
- package/dist/composed/deadline-indicator.d.ts.map +1 -1
- package/dist/composed/deadline-indicator.js +39 -36
- package/dist/composed/emoji-picker.d.ts +14 -2
- package/dist/composed/emoji-picker.d.ts.map +1 -1
- package/dist/composed/emoji-picker.js +66 -55
- package/dist/composed/error-boundary.d.ts +21 -1
- package/dist/composed/error-boundary.d.ts.map +1 -1
- package/dist/composed/error-boundary.js +47 -32
- package/dist/composed/extensions/emoji-data.d.ts +35 -0
- package/dist/composed/extensions/emoji-data.d.ts.map +1 -0
- package/dist/composed/extensions/emoji-node.d.ts +11 -0
- package/dist/composed/extensions/emoji-node.d.ts.map +1 -0
- package/dist/composed/extensions/emoji-suggestion.d.ts +4 -6
- package/dist/composed/extensions/emoji-suggestion.d.ts.map +1 -1
- package/dist/composed/extensions/slash-command.d.ts +35 -0
- package/dist/composed/extensions/slash-command.d.ts.map +1 -0
- package/dist/composed/file-preview/audio-preview.d.ts +7 -0
- package/dist/composed/file-preview/audio-preview.d.ts.map +1 -0
- package/dist/composed/file-preview/document-preview.d.ts +7 -0
- package/dist/composed/file-preview/document-preview.d.ts.map +1 -0
- package/dist/composed/file-preview/embed-preview.d.ts +7 -0
- package/dist/composed/file-preview/embed-preview.d.ts.map +1 -0
- package/dist/composed/file-preview/image-preview.d.ts +7 -0
- package/dist/composed/file-preview/image-preview.d.ts.map +1 -0
- package/dist/composed/file-preview/shared.d.ts +20 -0
- package/dist/composed/file-preview/shared.d.ts.map +1 -0
- package/dist/composed/file-preview/video-preview.d.ts +6 -0
- package/dist/composed/file-preview/video-preview.d.ts.map +1 -0
- package/dist/composed/file-preview.d.ts.map +1 -1
- package/dist/composed/file-preview.js +10 -662
- package/dist/composed/filter-bar.d.ts +10 -2
- package/dist/composed/filter-bar.d.ts.map +1 -1
- package/dist/composed/filter-bar.js +42 -43
- package/dist/composed/form-section.d.ts +1 -1
- package/dist/composed/form-section.d.ts.map +1 -1
- package/dist/composed/form-section.js +22 -21
- package/dist/composed/index.d.ts +9 -3
- package/dist/composed/index.d.ts.map +1 -1
- package/dist/composed/index.js +79 -69
- package/dist/composed/inline-edit.d.ts +1 -1
- package/dist/composed/inline-edit.d.ts.map +1 -1
- package/dist/composed/inline-edit.js +33 -32
- package/dist/composed/markdown-viewer.d.ts +1 -1
- package/dist/composed/markdown-viewer.d.ts.map +1 -1
- package/dist/composed/markdown-viewer.js +60 -59
- package/dist/composed/master-detail.d.ts +11 -7
- package/dist/composed/master-detail.d.ts.map +1 -1
- package/dist/composed/master-detail.js +123 -84
- package/dist/composed/responsive-overlay.d.ts +8 -0
- package/dist/composed/responsive-overlay.d.ts.map +1 -1
- package/dist/composed/rich-chat-input/attachment-strip.d.ts +15 -0
- package/dist/composed/rich-chat-input/attachment-strip.d.ts.map +1 -0
- package/dist/composed/rich-chat-input/audio-player.d.ts +11 -0
- package/dist/composed/rich-chat-input/audio-player.d.ts.map +1 -0
- package/dist/composed/rich-chat-input/audio-waveform.d.ts +24 -0
- package/dist/composed/rich-chat-input/audio-waveform.d.ts.map +1 -0
- package/dist/composed/rich-chat-input/chat-toolbar.d.ts +51 -0
- package/dist/composed/rich-chat-input/chat-toolbar.d.ts.map +1 -0
- package/dist/composed/rich-chat-input/recording-overlay.d.ts +15 -0
- package/dist/composed/rich-chat-input/recording-overlay.d.ts.map +1 -0
- package/dist/composed/rich-chat-input/reply-banner.d.ts +8 -0
- package/dist/composed/rich-chat-input/reply-banner.d.ts.map +1 -0
- package/dist/composed/rich-chat-input/schedule-send.d.ts +22 -0
- package/dist/composed/rich-chat-input/schedule-send.d.ts.map +1 -0
- package/dist/composed/rich-chat-input/use-voice-recorder.d.ts +18 -0
- package/dist/composed/rich-chat-input/use-voice-recorder.d.ts.map +1 -0
- package/dist/composed/rich-chat-input.d.ts +91 -0
- package/dist/composed/rich-chat-input.d.ts.map +1 -0
- package/dist/composed/rich-chat-input.js +1861 -0
- package/dist/composed/rich-text-editor.d.ts +14 -3
- package/dist/composed/rich-text-editor.d.ts.map +1 -1
- package/dist/composed/rich-text-editor.js +278 -447
- package/dist/composed/schedule-view.d.ts +9 -1
- package/dist/composed/schedule-view.d.ts.map +1 -1
- package/dist/hooks/index.d.ts +2 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +8 -4
- package/dist/hooks/use-touch-device.d.ts +12 -0
- package/dist/hooks/use-touch-device.d.ts.map +1 -0
- package/dist/hooks/use-touch-device.js +13 -0
- package/dist/hooks/use-viewport-height.d.ts +11 -0
- package/dist/hooks/use-viewport-height.d.ts.map +1 -0
- package/dist/hooks/use-viewport-height.js +16 -0
- package/dist/shell/bottom-navbar.d.ts.map +1 -1
- package/dist/shell/bottom-navbar.js +72 -63
- package/dist/shell/command-registry.d.ts.map +1 -1
- package/dist/shell/notification-center.d.ts.map +1 -1
- package/dist/shell/notification-center.js +77 -77
- package/dist/shell/top-bar.d.ts +2 -2
- package/dist/shell/top-bar.d.ts.map +1 -1
- package/dist/shell/top-bar.js +61 -60
- package/dist/tailwind/index.cjs +51 -7
- package/dist/tailwind/preset.d.ts.map +1 -1
- package/dist/tailwind/preset.js +51 -7
- package/dist/tokens/primitives.css +3 -1
- package/dist/tokens/semantic.css +16 -13
- package/dist/ui/autocomplete.d.ts.map +1 -1
- package/dist/ui/autocomplete.js +38 -39
- package/dist/ui/badge.d.ts +104 -2
- package/dist/ui/badge.d.ts.map +1 -1
- package/dist/ui/banner.d.ts.map +1 -1
- package/dist/ui/banner.js +8 -7
- package/dist/ui/button-group.d.ts +27 -37
- package/dist/ui/button-group.d.ts.map +1 -1
- package/dist/ui/button-group.js +95 -29
- package/dist/ui/button.d.ts +2 -2
- package/dist/ui/button.d.ts.map +1 -1
- package/dist/ui/button.js +118 -134
- package/dist/ui/card.js +24 -24
- package/dist/ui/charts/area-chart.d.ts +2 -0
- package/dist/ui/charts/area-chart.d.ts.map +1 -1
- package/dist/ui/charts/bar-chart.d.ts +2 -0
- package/dist/ui/charts/bar-chart.d.ts.map +1 -1
- package/dist/ui/charts/chart-container.d.ts +2 -0
- package/dist/ui/charts/chart-container.d.ts.map +1 -1
- package/dist/ui/charts/index.js +583 -577
- package/dist/ui/charts/line-chart.d.ts +2 -0
- package/dist/ui/charts/line-chart.d.ts.map +1 -1
- package/dist/ui/charts/pie-chart.d.ts +2 -0
- package/dist/ui/charts/pie-chart.d.ts.map +1 -1
- package/dist/ui/charts/radar-chart.d.ts +2 -0
- package/dist/ui/charts/radar-chart.d.ts.map +1 -1
- package/dist/ui/checkbox.d.ts +2 -0
- package/dist/ui/checkbox.d.ts.map +1 -1
- package/dist/ui/checkbox.js +36 -27
- package/dist/ui/color-input.js +5 -5
- package/dist/ui/combobox.d.ts +6 -1
- package/dist/ui/combobox.d.ts.map +1 -1
- package/dist/ui/combobox.js +1 -1
- package/dist/ui/context-menu.js +1 -1
- package/dist/ui/data-table-body.d.ts +12 -0
- package/dist/ui/data-table-body.d.ts.map +1 -0
- package/dist/ui/data-table-body.js +219 -0
- package/dist/ui/data-table-bulk-actions.d.ts +19 -0
- package/dist/ui/data-table-bulk-actions.d.ts.map +1 -0
- package/dist/ui/data-table-bulk-actions.js +61 -0
- package/dist/ui/data-table-card.d.ts +9 -0
- package/dist/ui/data-table-card.d.ts.map +1 -0
- package/dist/ui/data-table-card.js +73 -0
- package/dist/ui/data-table-context.d.ts +62 -0
- package/dist/ui/data-table-context.d.ts.map +1 -0
- package/dist/ui/data-table-context.js +48 -0
- package/dist/ui/data-table-header.d.ts +10 -0
- package/dist/ui/data-table-header.d.ts.map +1 -0
- package/dist/ui/data-table-header.js +141 -0
- package/dist/ui/data-table-pagination.d.ts +13 -0
- package/dist/ui/data-table-pagination.d.ts.map +1 -0
- package/dist/ui/data-table-pagination.js +84 -0
- package/dist/ui/data-table.d.ts +11 -9
- package/dist/ui/data-table.d.ts.map +1 -1
- package/dist/ui/data-table.js +258 -573
- package/dist/ui/dialog.d.ts +6 -2
- package/dist/ui/dialog.d.ts.map +1 -1
- package/dist/ui/dialog.js +84 -82
- package/dist/ui/dropdown-menu.js +1 -1
- package/dist/ui/hover-card.d.ts +7 -0
- package/dist/ui/hover-card.d.ts.map +1 -1
- package/dist/ui/hover-card.js +3 -3
- package/dist/ui/icon-group.d.ts +2 -4
- package/dist/ui/icon-group.d.ts.map +1 -1
- package/dist/ui/icon-group.js +22 -23
- package/dist/ui/index.d.ts +2 -2
- package/dist/ui/index.d.ts.map +1 -1
- package/dist/ui/index.js +324 -327
- package/dist/ui/label.js +1 -1
- package/dist/ui/lib/bottom-sheet.d.ts +16 -0
- package/dist/ui/lib/bottom-sheet.d.ts.map +1 -0
- package/dist/ui/menubar.d.ts.map +1 -1
- package/dist/ui/menubar.js +64 -73
- package/dist/ui/navigation-menu.d.ts.map +1 -1
- package/dist/ui/navigation-menu.js +40 -44
- package/dist/ui/number-input.d.ts.map +1 -1
- package/dist/ui/number-input.js +19 -17
- package/dist/ui/popover.d.ts.map +1 -1
- package/dist/ui/popover.js +107 -32
- package/dist/ui/progress-ring.d.ts.map +1 -1
- package/dist/ui/progress-ring.js +80 -80
- package/dist/ui/progress.js +4 -4
- package/dist/ui/radio.d.ts +5 -2
- package/dist/ui/radio.d.ts.map +1 -1
- package/dist/ui/radio.js +29 -20
- package/dist/ui/search-input.d.ts.map +1 -1
- package/dist/ui/search-input.js +13 -12
- package/dist/ui/segmented-control.d.ts +6 -108
- package/dist/ui/segmented-control.d.ts.map +1 -1
- package/dist/ui/segmented-control.js +86 -272
- package/dist/ui/select.js +5 -5
- package/dist/ui/separator.js +5 -5
- package/dist/ui/sheet.d.ts +2 -0
- package/dist/ui/sheet.d.ts.map +1 -1
- package/dist/ui/sheet.js +102 -84
- package/dist/ui/sidebar.d.ts.map +1 -1
- package/dist/ui/sidebar.js +200 -175
- package/dist/ui/slider.js +14 -14
- package/dist/ui/split-button.d.ts +45 -0
- package/dist/ui/split-button.d.ts.map +1 -0
- package/dist/ui/split-button.js +282 -0
- package/dist/ui/status-dot.js +8 -8
- package/dist/ui/stepper.d.ts.map +1 -1
- package/dist/ui/stepper.js +33 -31
- package/dist/ui/switch.js +3 -3
- package/dist/ui/tabs.js +6 -6
- package/dist/ui/toast-types.d.ts +0 -1
- package/dist/ui/toast-types.d.ts.map +1 -1
- package/dist/ui/toast-types.js +0 -1
- package/dist/ui/toast.d.ts.map +1 -1
- package/dist/ui/toast.js +156 -150
- package/dist/ui/toggle-group.js +1 -1
- package/dist/ui/toggle.js +1 -1
- package/dist/ui/tooltip.js +3 -3
- package/docs/components/composed/emoji-picker.md +9 -0
- package/docs/components/composed/rich-chat-input.md +88 -0
- package/docs/components/composed/rich-text-editor.md +5 -0
- package/docs/components/ui/button-group.md +9 -0
- package/docs/components/ui/button.md +4 -0
- package/docs/components/ui/data-table-body.md +13 -0
- package/docs/components/ui/data-table-bulk-actions.md +13 -0
- package/docs/components/ui/data-table-card.md +13 -0
- package/docs/components/ui/data-table-context.md +13 -0
- package/docs/components/ui/data-table-header.md +13 -0
- package/docs/components/ui/data-table-pagination.md +13 -0
- package/docs/components/ui/split-button.md +41 -0
- package/llms-full.txt +235 -48
- package/llms.txt +54 -2
- package/package.json +30 -31
- package/dist/ui/chip.d.ts +0 -19
- package/dist/ui/chip.d.ts.map +0 -1
- package/dist/ui/chip.js +0 -14
- package/dist/ui/lib/use-ripple.d.ts +0 -14
- package/dist/ui/lib/use-ripple.d.ts.map +0 -1
package/llms.txt
CHANGED
|
@@ -4,6 +4,54 @@
|
|
|
4
4
|
> Built on the same primitives as shadcn/ui but with key API differences.
|
|
5
5
|
> Read this file BEFORE writing any UI code. Do NOT guess from shadcn/ui knowledge.
|
|
6
6
|
|
|
7
|
+
## BREAKING CHANGES (v0.33.0)
|
|
8
|
+
|
|
9
|
+
- **EmojiSuggestion:** Named export removed. Use `createEmojiSuggestion(set?)` factory. Default: `createEmojiSuggestion()` (native set).
|
|
10
|
+
- **Emoji HTML output:** Non-native `emojiSet` renders emoji as `<span data-emoji-id="..." data-emoji-set="..." role="img">native</span>` nodes, not raw Unicode. `plainText` still returns Unicode.
|
|
11
|
+
|
|
12
|
+
## CHANGES (v0.33.0)
|
|
13
|
+
|
|
14
|
+
- **RichChatInput v2** — Complete rewrite. Structured output (`html`, `plainText`, `attachments?`, `voiceNote?`). Zone architecture. 4 variants: `compact` (default), `expanded`, `minimal`, `inline`. Props: `onSubmit`, `onSchedule?(msg, date)`, `mentions?`, `slashCommands?`, `onFileUpload?`, `onImageUpload?`, `onVoiceRecord?`, `onTranscribe?`, `replyTo?`, `toolbar?`, `emojiSet?`, `actionButton?`, `enterBehavior?`, `maxLength?`, `isStreaming?`, `disclaimer?`, `sendOptions?`, `leadingSlot?`, `trailingSlot?`.
|
|
15
|
+
- **Custom EmojiNode** — TipTap inline atom node. Renders emoji via spritesheet images for consistent Apple/Google/Twitter/Facebook art styles. `emojiSet` prop on `EmojiPicker`, `EmojiPickerPopover`, `RichChatInput`, `RichTextEditor`. Sets: `native` (default), `apple`, `google`, `twitter`, `facebook`.
|
|
16
|
+
- **SplitButton** (`ui/`) — `[Action | ▼]` button with dropdown. Props: `variant(solid|soft|outline)`, `color`, `size`, `triggerSide(left|right)`, `triggerWidth`, `placement` (Floating UI), `dropdownContent`. Proper ARIA: `role="group"`, `aria-haspopup`, `aria-expanded`.
|
|
17
|
+
- **Schedule Send** — `onSchedule?(msg, date)` on RichChatInput. Smart presets (time-of-day aware) + DateTimePicker. Banner shows scheduled time. Send button morphs to SplitButton.
|
|
18
|
+
- **ButtonGroup rebuild** — Compound component pattern. Button reads position from context, applies radius inline. New props: `disabled` (propagates), `attached` (true/false), `fullWidth`. Tonal dividers for solid/soft/ghost variants. Focus z-index isolation.
|
|
19
|
+
- **TipTap v2 → v3** — `useEditorState`, `immediatelyRender: false` (SSR-safe), `ListKit`. Fixes React 19 `removeChild` crash.
|
|
20
|
+
- **Composable toolbar** — Exported: `ToolbarButton`, `ToolbarDivider`, `ToolbarGroup`, `BoldButton`, `ItalicButton`, `UnderlineButton`, `StrikeButton`, `HighlightButton`, `CodeButton`, `BulletListButton`, `OrderedListButton`, `BlockquoteButton`, `LinkButton`, `EmojiButton`.
|
|
21
|
+
- **Button `disabled`** — Now inherited from ButtonGroup context.
|
|
22
|
+
|
|
23
|
+
## BREAKING CHANGES (v0.32.0)
|
|
24
|
+
|
|
25
|
+
- **Button:** `variant="default"` removed (use `"solid"`), `variant="destructive"` removed (use `variant="solid" color="error"`), `color="default"` removed (use `"accent"`).
|
|
26
|
+
- **Chip:** Removed. Use `Badge` instead.
|
|
27
|
+
- **SegmentedControl:** Rewritten. `variant="filled"` → `"accent"`, `variant="tonal"` → `"default"`. `SegmentedControlItem` no longer exported. Legacy sizes `small`/`medium`/`big` removed.
|
|
28
|
+
- **TopBar:** Now renders as `<header>` (was `<div>`).
|
|
29
|
+
- **Sidebar:** Now renders as `<aside>` (was `<div>`).
|
|
30
|
+
- **InfoBlock:** `role="status"` (was `role="alert"`).
|
|
31
|
+
- **Border tokens:** One step darker system-wide.
|
|
32
|
+
- **Dark mode button text:** Pure white `neutral-0` (#fff) on brand-colored buttons.
|
|
33
|
+
- **BottomNavbar:** Bottom padding is now `pb-safe` (safe-area-inset).
|
|
34
|
+
- **ResponsiveOverlay:** Deprecated. Use Dialog or Sheet directly.
|
|
35
|
+
- **iOS inputs:** Forced to `font-size: max(16px, 1em)` on mobile via preset.
|
|
36
|
+
|
|
37
|
+
## CHANGES (v0.32.0)
|
|
38
|
+
|
|
39
|
+
- **Mobile Responsiveness:**
|
|
40
|
+
- Dialog auto-fullScreens on mobile (<768px). Opt out: `<DialogContent responsive={false}>`.
|
|
41
|
+
- Sheet auto-bottom with swipe-to-dismiss on mobile. Drag handle, 30% threshold. Opt out: `<SheetContent responsive={false}>`.
|
|
42
|
+
- Popover renders as bottom drawer on mobile automatically.
|
|
43
|
+
- `.touch-target` utility — 44px invisible hit area for Apple HIG compliance.
|
|
44
|
+
- `.pt-safe`, `.pb-safe`, `.pl-safe`, `.pr-safe`, `.p-safe` — safe area inset utilities.
|
|
45
|
+
- `useTouchDevice()` — detects touch capability (vs viewport width).
|
|
46
|
+
- `useViewportHeight()` — dynamic viewport height via Visual Viewport API.
|
|
47
|
+
- Sidebar has swipe-to-close on mobile.
|
|
48
|
+
- **DataTable `mobileView="card"`** — Rows render as stacked cards below 640px. First column = card title, rest = label-value pairs.
|
|
49
|
+
- **DataTable `aria-sort`** — Sortable column headers include `aria-sort`.
|
|
50
|
+
- **Charts `ariaLabel` prop** — Configurable screen reader label on all chart components.
|
|
51
|
+
- **SegmentedControl** — Redesigned: `variant="default"` (white pill + shadow-sm) | `variant="accent"` (brand pill). Inset radius, snappy spring animation.
|
|
52
|
+
- **`--shadow-kbd` token** — Keyboard shortcut badge shadow. Use `shadow-kbd` utility.
|
|
53
|
+
- **Checkbox/Radio `size` prop** — `sm | md (default) | lg`.
|
|
54
|
+
|
|
7
55
|
## CHANGES (v0.31.0)
|
|
8
56
|
- **Alert `size` prop** — `sm | md (default) | lg`. Scales padding, gap, icon, text.
|
|
9
57
|
- **Card `color` prop** — `default | accent | error | success | warning | info | neutral`. Semantic border color.
|
|
@@ -327,6 +375,8 @@ Components with two-axis system: Button, Badge, Alert, Banner, Progress, StatusB
|
|
|
327
375
|
### Inputs & Controls
|
|
328
376
|
- Button: variant(solid|soft|outline|ghost|link) color(accent|error|success|warning|neutral) size(xs|sm|md|lg|compact-xs|compact-sm|compact-md|icon-xs|icon-sm|icon-md|icon-lg) shape(default|pill) weight(semibold|normal) + loading, startIcon, endIcon, asChild, processing?('ambient'|'working'|'urgent'|boolean — marching ants SVG border, forces soft variant), processingColor?('accent'|'error'|'success'|'warning'|'neutral'), processingDisabled?(boolean, default true — set false for cancel-by-click). onClickAsync auto-activates processing='working' during loading phase. Layout animation always on. Deprecated aliases still work: variant="default"→solid, variant="destructive"→solid+error, color="default"→accent
|
|
329
377
|
- IconButton: icon(ReactNode, required) shape(square|circle) size(sm|md|lg) + aria-label required
|
|
378
|
+
- SplitButton: [Action | ▼] button with dropdown. Props: variant(solid|soft|outline), color, size(xs|sm|md|icon-xs|icon-sm|icon-md), triggerSide(left|right, default right), triggerWidth?(number|string), placement?(Floating UI Placement, default top-end), dropdownContent(ReactNode), open?, onOpenChange?, dropdownLabel?, dropdownIcon?. ARIA: role="group", aria-haspopup="menu", aria-expanded.
|
|
379
|
+
- ButtonGroup: Visually merges adjacent Buttons. Props: variant, color, size, disabled (propagates), orientation(horizontal|vertical), attached(true|false, default true), fullWidth. Compound pattern: Button reads position from context, applies radius + border-removal inline. Tonal dividers for solid/soft/ghost. Focus z-index isolation.
|
|
330
380
|
- Icon: `<Icon icon={IconPlus} />` — context-aware wrapper for Tabler icons. Size tiers: xs(14px) sm(16px) md(18px) lg(20px) xl(24px) 2xl(32px). Default: md. Stroke: light(1.5) regular(2) bold(2.5). Default: regular. Scales per size tier. Reads size from parent Button/IconGroup via IconContext. Explicit props override. Accessibility: aria-hidden by default. Pass label="Add item" for accessible icons. Animation: animate="spin|pulse|bounce|draw". `draw` renders SVG path-draw animation (check/X icons draw progressively via pathLength; other icons fall back to static). State machine: state="idle|loading|success|error". Button integration: startIcon={<Icon icon={IconPlus} />} (NOT raw <IconPlus />). IconGroup: <IconGroup size="sm" gap="tight"> for toolbar patterns.
|
|
331
381
|
- Input: size(xs|sm|md|lg) state(InputState) + startSection(ReactNode), endSection(ReactNode), startSectionClickable(bool), endSectionClickable(bool), startSectionType('icon'|'label'), endSectionType('icon'|'label'), wrapperClassName(string). Container-level focus ring wraps input + sections as one unit. Sections are pointer-events-none by default; use *SectionClickable for interactive content (clear buttons, toggles). Section type auto-inferred: strings→'label' (tinted bg + border separator), React elements→'icon' (fixed-width centered). Override with *SectionType. Flexbox section layout. Icons auto-size via IconProvider per input size. className targets <input>, wrapperClassName targets wrapper div. Deprecated aliases: startIcon→startSection, endIcon→endSection, inputVariants→inputWrapperVariants. Type: InputState = 'default' | 'error' | 'warning' | 'success'
|
|
332
382
|
- SearchInput: size(xs|sm|md|lg) + loading, onClear. Delegates to Input v2 sections internally.
|
|
@@ -427,8 +477,9 @@ Import: `@devalok/shilp-sutra/ui/chat`
|
|
|
427
477
|
- Presets: date range quick-select buttons — presets(PresetKey[]), onSelect(start, end). Keys: today, yesterday, last7days, last30days, thisMonth, lastMonth, thisYear
|
|
428
478
|
- useCalendar: hook for calendar month state — returns currentMonth, goToPreviousMonth, goToNextMonth, goToMonth, goToYear
|
|
429
479
|
- (UploadProgress REMOVED — upload tracking is now built into toast.upload())
|
|
430
|
-
- RichTextEditor: Tiptap editor — bold/italic/underline/strike/highlight, headings, blockquote, lists (bullet/ordered/task), code, links, images (paste/drop/upload), file attachments, @mentions, emoji picker + :shortcode:, text alignment, HR. Props: onImageUpload?, onFileUpload?, mentions?, onMentionSearch?, onMentionSelect?(item: MentionItem)
|
|
480
|
+
- RichTextEditor: Tiptap editor — bold/italic/underline/strike/highlight, headings, blockquote, lists (bullet/ordered/task), code, links, images (paste/drop/upload), file attachments, @mentions, emoji picker + :shortcode:, text alignment, HR. Props: onImageUpload?, onFileUpload?, mentions?, onMentionSearch?, onMentionSelect?(item: MentionItem), emojiSet?(native|apple|google|twitter|facebook)
|
|
431
481
|
- RichTextViewer: read-only renderer for RichTextEditor HTML content (renders all above content types)
|
|
482
|
+
- RichChatInput: compact rich text chat input for AI/messaging. Output: RichChatInputMessage { html, plainText, attachments?, voiceNote? }. Variants: compact(default), expanded, minimal, inline. Key props: onSubmit(msg), onSchedule?(msg,date), emojiSet?, mentions?, slashCommands?, onFileUpload?, onImageUpload?, onVoiceRecord?, replyTo?, toolbar?(bool|items[]|ReactNode), actionButton?(ReactNode|false), enterBehavior?(send|newline), maxLength?, isStreaming?, onCancel?, disclaimer?, sendOptions?, leadingSlot?, trailingSlot?. Composable toolbar primitives exported: ToolbarButton, ToolbarDivider, ToolbarGroup, BoldButton, ItalicButton, etc.
|
|
432
483
|
- ActivityFeed: items(ActivityItem[]), onLoadMore, loading, hasMore, emptyState, compact, maxInitialItems, groupBy?('time'|'none'), groupLabels?({ today, yesterday, thisWeek, older }), renderItem?((item, index) => ReactNode|undefined, custom renderer per item — return ReactNode for custom, undefined for default). Type: ActivityItem = { id, actor?, action, timestamp, icon?, color?, detail? }. Utility: groupItemsByTime(items, labels) exported.
|
|
433
484
|
- CommandPalette: open, defaultOpen, onOpenChange (controlled/uncontrolled), keybinding(string|string[]|false), maxHeight, emptyState(ReactNode), footerHints(FooterHint[]|false). CommandItem: label(string|ReactNode), description(string|ReactNode), renderLabel(query=>ReactNode), filterValue(string), shortcut(rendered as keycap badges). Keyboard shortcuts rendered per-key with platform-aware Cmd/Ctrl. Reduced-motion support via MotionProvider.
|
|
434
485
|
- MemberPicker: thin wrapper around MultiSelectPopover with Avatar rendering
|
|
@@ -441,7 +492,8 @@ Import: `@devalok/shilp-sutra/ui/chat`
|
|
|
441
492
|
- MasterDetail: selected, onBack, masterWidth, breakpoint(sm|md|lg). Compound: MasterDetail.List, MasterDetail.Detail, MasterDetail.ListItem(active). Desktop=grid, mobile=stacked with back button.
|
|
442
493
|
- ResponsiveOverlay: open, onOpenChange, title, description, breakpoint(sm|md). Dialog on desktop, bottom Sheet on mobile.
|
|
443
494
|
- MarkdownViewer: content(string), compact?, allowHtml?(false), linkTarget?('_blank'). Renders markdown with design system tokens.
|
|
444
|
-
- EmojiPicker: onSelect(emoji), theme(auto|light|dark).
|
|
495
|
+
- EmojiPicker: onSelect(emoji), set?(native|apple|google|twitter|facebook), theme(auto|light|dark). EmojiPickerPopover wraps in Popover. Lazy-loads emoji-mart with set-specific data.
|
|
496
|
+
- EmojiNode: TipTap inline atom node for spritesheet emoji rendering. Attrs: id, native, set, x, y. Use createEmojiSuggestion(set) to wire :shortcode: autocomplete. Export: EmojiNode, EmojiNodeAttrs, createEmojiSuggestion.
|
|
445
497
|
- FilePreview: url, type?(image|pdf|video|audio|embed), mimeType?, alt?. Auto-detects type. Image zoom, PDF iframe, native video/audio, embed for Figma/YouTube/Loom.
|
|
446
498
|
- ErrorDisplay, GlobalLoading
|
|
447
499
|
- Loading skeletons: CardSkeleton, TableSkeleton, BoardSkeleton, ListSkeleton
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@devalok/shilp-sutra",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.33.0",
|
|
4
4
|
"description": "Devalok Design System — tokens, components, and patterns for Next.js",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -103,11 +103,6 @@
|
|
|
103
103
|
"default": "./dist/ui/color-swatch.js",
|
|
104
104
|
"types": "./dist/ui/color-swatch.d.ts"
|
|
105
105
|
},
|
|
106
|
-
"./ui/chip": {
|
|
107
|
-
"import": "./dist/ui/chip.js",
|
|
108
|
-
"default": "./dist/ui/chip.js",
|
|
109
|
-
"types": "./dist/ui/chip.d.ts"
|
|
110
|
-
},
|
|
111
106
|
"./ui/code": {
|
|
112
107
|
"import": "./dist/ui/code.js",
|
|
113
108
|
"default": "./dist/ui/code.js",
|
|
@@ -523,6 +518,11 @@
|
|
|
523
518
|
"default": "./dist/composed/rich-text-editor.js",
|
|
524
519
|
"types": "./dist/composed/rich-text-editor.d.ts"
|
|
525
520
|
},
|
|
521
|
+
"./composed/rich-chat-input": {
|
|
522
|
+
"import": "./dist/composed/rich-chat-input.js",
|
|
523
|
+
"default": "./dist/composed/rich-chat-input.js",
|
|
524
|
+
"types": "./dist/composed/rich-chat-input.d.ts"
|
|
525
|
+
},
|
|
526
526
|
"./composed/simple-tooltip": {
|
|
527
527
|
"import": "./dist/composed/simple-tooltip.js",
|
|
528
528
|
"default": "./dist/composed/simple-tooltip.js",
|
|
@@ -706,16 +706,6 @@
|
|
|
706
706
|
"llms.txt",
|
|
707
707
|
"llms-full.txt"
|
|
708
708
|
],
|
|
709
|
-
"scripts": {
|
|
710
|
-
"build": "vite build && node scripts/post-build.mjs",
|
|
711
|
-
"build:tokens": "node scripts/copy-tokens.mjs",
|
|
712
|
-
"build:docs": "node scripts/build-component-docs.mjs",
|
|
713
|
-
"build:docs:check": "node scripts/build-component-docs.mjs --check",
|
|
714
|
-
"typecheck": "tsc --noEmit",
|
|
715
|
-
"lint": "eslint src/",
|
|
716
|
-
"test": "vitest run",
|
|
717
|
-
"prepublishOnly": "pnpm build"
|
|
718
|
-
},
|
|
719
709
|
"peerDependencies": {
|
|
720
710
|
"@emoji-mart/data": "^1.0.0",
|
|
721
711
|
"@emoji-mart/react": "^1.0.0",
|
|
@@ -814,19 +804,14 @@
|
|
|
814
804
|
"@tabler/icons-react": "^3.37.1",
|
|
815
805
|
"@tanstack/react-table": "^8.21.2",
|
|
816
806
|
"@tanstack/react-virtual": "^3.13.19",
|
|
817
|
-
"@tiptap/core": "^
|
|
818
|
-
"@tiptap/extension-highlight": "^
|
|
819
|
-
"@tiptap/extension-image": "^
|
|
820
|
-
"@tiptap/extension-
|
|
821
|
-
"@tiptap/extension-
|
|
822
|
-
"@tiptap/
|
|
823
|
-
"@tiptap/
|
|
824
|
-
"@tiptap/
|
|
825
|
-
"@tiptap/extension-text-align": "^2.27.2",
|
|
826
|
-
"@tiptap/extension-underline": "^2.27.2",
|
|
827
|
-
"@tiptap/react": "^2.27.2",
|
|
828
|
-
"@tiptap/starter-kit": "^2.27.2",
|
|
829
|
-
"@tiptap/suggestion": "^2.27.2",
|
|
807
|
+
"@tiptap/core": "^3.22.3",
|
|
808
|
+
"@tiptap/extension-highlight": "^3.22.3",
|
|
809
|
+
"@tiptap/extension-image": "^3.22.3",
|
|
810
|
+
"@tiptap/extension-mention": "^3.22.3",
|
|
811
|
+
"@tiptap/extension-text-align": "^3.22.3",
|
|
812
|
+
"@tiptap/react": "^3.22.3",
|
|
813
|
+
"@tiptap/starter-kit": "^3.22.3",
|
|
814
|
+
"@tiptap/suggestion": "^3.22.3",
|
|
830
815
|
"@types/react-syntax-highlighter": "^15.5.13",
|
|
831
816
|
"aria-hidden": "^1.2.4",
|
|
832
817
|
"class-variance-authority": "^0.7.1",
|
|
@@ -857,5 +842,19 @@
|
|
|
857
842
|
"engines": {
|
|
858
843
|
"node": ">=20.19.0"
|
|
859
844
|
},
|
|
860
|
-
"
|
|
861
|
-
|
|
845
|
+
"dependencies": {
|
|
846
|
+
"@floating-ui/dom": "^1.6.0",
|
|
847
|
+
"@tiptap/extension-list": "^3.22.3",
|
|
848
|
+
"@tiptap/extensions": "^3.22.3",
|
|
849
|
+
"prosemirror-state": "^1.4.4"
|
|
850
|
+
},
|
|
851
|
+
"scripts": {
|
|
852
|
+
"build": "vite build && node scripts/post-build.mjs",
|
|
853
|
+
"build:tokens": "node scripts/copy-tokens.mjs",
|
|
854
|
+
"build:docs": "node scripts/build-component-docs.mjs",
|
|
855
|
+
"build:docs:check": "node scripts/build-component-docs.mjs --check",
|
|
856
|
+
"typecheck": "tsc --noEmit",
|
|
857
|
+
"lint": "eslint src/",
|
|
858
|
+
"test": "vitest run"
|
|
859
|
+
}
|
|
860
|
+
}
|
package/dist/ui/chip.d.ts
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { BadgeProps } from './badge';
|
|
3
|
-
import * as React from 'react';
|
|
4
|
-
/**
|
|
5
|
-
* @deprecated Use `<Badge onClick={...}>` instead of `<Chip>`.
|
|
6
|
-
* This wrapper maps the old Chip API (label prop) to Badge (children).
|
|
7
|
-
*/
|
|
8
|
-
interface ChipProps extends Omit<BadgeProps, 'children'> {
|
|
9
|
-
label: string;
|
|
10
|
-
icon?: React.ReactElement | null;
|
|
11
|
-
}
|
|
12
|
-
declare const Chip: React.ForwardRefExoticComponent<ChipProps & React.RefAttributes<HTMLElement>>;
|
|
13
|
-
/**
|
|
14
|
-
* @deprecated Use `<Badge.Group>` for overflow. For exit animations, wrap in `<AnimatePresence>`.
|
|
15
|
-
*/
|
|
16
|
-
declare const ChipGroup: ({ children, custom, initial, onExitComplete, presenceAffectsLayout, mode, propagate, anchorX, anchorY, root }: React.PropsWithChildren<import('framer-motion').AnimatePresenceProps>) => import("react/jsx-runtime").JSX.Element | null;
|
|
17
|
-
export { Chip, ChipGroup };
|
|
18
|
-
export type { ChipProps };
|
|
19
|
-
//# sourceMappingURL=chip.d.ts.map
|
package/dist/ui/chip.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chip.d.ts","sourceRoot":"","sources":["../../src/ui/chip.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAGzC;;;GAGG;AACH,UAAU,SAAU,SAAQ,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC;IACtD,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,KAAK,CAAC,YAAY,GAAG,IAAI,CAAA;CACjC;AAED,QAAA,MAAM,IAAI,+EAMT,CAAA;AAGD;;GAEG;AACH,QAAA,MAAM,SAAS,0OAAkB,CAAA;AAEjC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAA;AAC1B,YAAY,EAAE,SAAS,EAAE,CAAA"}
|
package/dist/ui/chip.js
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { jsx as p } from "react/jsx-runtime";
|
|
3
|
-
import * as t from "react";
|
|
4
|
-
import { B as a } from "../_chunks/badge-group.js";
|
|
5
|
-
import { A as e } from "../_chunks/framer.js";
|
|
6
|
-
const s = t.forwardRef(
|
|
7
|
-
({ label: o, icon: r, ...i }, m) => /* @__PURE__ */ p(a, { ref: m, startIcon: r ?? void 0, ...i, children: o })
|
|
8
|
-
);
|
|
9
|
-
s.displayName = "Chip";
|
|
10
|
-
const f = e;
|
|
11
|
-
export {
|
|
12
|
-
s as Chip,
|
|
13
|
-
f as ChipGroup
|
|
14
|
-
};
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { MouseEvent } from 'react';
|
|
3
|
-
interface Ripple {
|
|
4
|
-
id: number;
|
|
5
|
-
x: number;
|
|
6
|
-
y: number;
|
|
7
|
-
size: number;
|
|
8
|
-
}
|
|
9
|
-
export declare function useRipple(duration?: number): {
|
|
10
|
-
ripples: Ripple[];
|
|
11
|
-
createRipple: (e: MouseEvent<HTMLElement>) => void;
|
|
12
|
-
};
|
|
13
|
-
export {};
|
|
14
|
-
//# sourceMappingURL=use-ripple.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"use-ripple.d.ts","sourceRoot":"","sources":["../../../src/ui/lib/use-ripple.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4C,KAAK,UAAU,EAAE,MAAM,OAAO,CAAA;AAEjF,UAAU,MAAM;IACd,EAAE,EAAE,MAAM,CAAA;IACV,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,IAAI,EAAE,MAAM,CAAA;CACb;AAED,wBAAgB,SAAS,CAAC,QAAQ,SAAM;;sBAQD,UAAU,CAAC,WAAW,CAAC;EAgB7D"}
|