@devalok/shilp-sutra 0.47.0 → 0.49.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.
Files changed (228) hide show
  1. package/AGENTS.md +36 -12
  2. package/BREAKING.json +78 -0
  3. package/MIGRATION.md +891 -846
  4. package/dist/_chunks/badge-group.js +50 -63
  5. package/dist/_chunks/badge-group.js.map +1 -1
  6. package/dist/_chunks/chat.js +1 -1
  7. package/dist/_chunks/chat.js.map +1 -1
  8. package/dist/_chunks/emoji-suggestion.js +124 -0
  9. package/dist/_chunks/emoji-suggestion.js.map +1 -0
  10. package/dist/_chunks/emoji.js +1115 -0
  11. package/dist/_chunks/emoji.js.map +1 -0
  12. package/dist/_chunks/field-state.js +8 -0
  13. package/dist/_chunks/field-state.js.map +1 -0
  14. package/dist/_chunks/popover.js +50 -47
  15. package/dist/_chunks/popover.js.map +1 -1
  16. package/dist/_chunks/primitives.js +155 -155
  17. package/dist/_chunks/primitives.js.map +1 -1
  18. package/dist/_chunks/shared.js +4 -4
  19. package/dist/_chunks/tiptap.js +10 -10
  20. package/dist/_chunks/tiptap.js.map +1 -1
  21. package/dist/_chunks/use-calendar.js +1 -1
  22. package/dist/_chunks/use-calendar.js.map +1 -1
  23. package/dist/_chunks/use-controllable-open.js +15 -0
  24. package/dist/_chunks/use-controllable-open.js.map +1 -0
  25. package/dist/composed/command-palette.js +3 -3
  26. package/dist/composed/command-palette.js.map +1 -1
  27. package/dist/composed/confirm-dialog.js +3 -3
  28. package/dist/composed/confirm-dialog.js.map +1 -1
  29. package/dist/composed/date-picker/index.js +3 -3
  30. package/dist/composed/date-picker/index.js.map +1 -1
  31. package/dist/composed/emoji-picker.d.ts +19 -9
  32. package/dist/composed/emoji-picker.d.ts.map +1 -1
  33. package/dist/composed/emoji-picker.js +87 -68
  34. package/dist/composed/emoji-picker.js.map +1 -1
  35. package/dist/composed/error-boundary.js +1 -1
  36. package/dist/composed/error-boundary.js.map +1 -1
  37. package/dist/composed/extensions/emoji-data.d.ts +1 -14
  38. package/dist/composed/extensions/emoji-data.d.ts.map +1 -1
  39. package/dist/composed/extensions/emoji-node.d.ts +0 -3
  40. package/dist/composed/extensions/emoji-node.d.ts.map +1 -1
  41. package/dist/composed/extensions/emoji-node.js +9 -34
  42. package/dist/composed/extensions/emoji-node.js.map +1 -1
  43. package/dist/composed/extensions/emoji-suggestion.d.ts +2 -2
  44. package/dist/composed/extensions/emoji-suggestion.d.ts.map +1 -1
  45. package/dist/composed/extensions/emoji-suggestion.js +2 -116
  46. package/dist/composed/index.d.ts +3 -1
  47. package/dist/composed/index.d.ts.map +1 -1
  48. package/dist/composed/index.js +4 -3
  49. package/dist/composed/loading-skeleton.js +15 -15
  50. package/dist/composed/loading-skeleton.js.map +1 -1
  51. package/dist/composed/page-header.d.ts.map +1 -1
  52. package/dist/composed/page-header.js +32 -45
  53. package/dist/composed/page-header.js.map +1 -1
  54. package/dist/composed/page-skeletons.js +19 -19
  55. package/dist/composed/page-skeletons.js.map +1 -1
  56. package/dist/composed/responsive-modal.d.ts +39 -0
  57. package/dist/composed/responsive-modal.d.ts.map +1 -0
  58. package/dist/composed/responsive-modal.js +212 -0
  59. package/dist/composed/responsive-modal.js.map +1 -0
  60. package/dist/composed/rich-chat-input.d.ts.map +1 -1
  61. package/dist/composed/rich-chat-input.js +558 -579
  62. package/dist/composed/rich-chat-input.js.map +1 -1
  63. package/dist/composed/rich-text-editor.d.ts.map +1 -1
  64. package/dist/composed/rich-text-editor.js +167 -190
  65. package/dist/composed/rich-text-editor.js.map +1 -1
  66. package/dist/composed/schedule-view.d.ts +1 -1
  67. package/dist/composed/schedule-view.d.ts.map +1 -1
  68. package/dist/composed/schedule-view.js +48 -54
  69. package/dist/composed/schedule-view.js.map +1 -1
  70. package/dist/composed/status-badge.d.ts +13 -11
  71. package/dist/composed/status-badge.d.ts.map +1 -1
  72. package/dist/composed/status-badge.js +54 -130
  73. package/dist/composed/status-badge.js.map +1 -1
  74. package/dist/shell/bottom-navbar.js +1 -1
  75. package/dist/shell/bottom-navbar.js.map +1 -1
  76. package/dist/shell/top-bar.js +1 -1
  77. package/dist/shell/top-bar.js.map +1 -1
  78. package/dist/tokens/semantic.css +8 -1
  79. package/dist/ui/accordion.js +9 -9
  80. package/dist/ui/alert-dialog.js +26 -26
  81. package/dist/ui/aspect-ratio.js +1 -1
  82. package/dist/ui/autocomplete.js +7 -7
  83. package/dist/ui/avatar.d.ts.map +1 -1
  84. package/dist/ui/avatar.js +87 -82
  85. package/dist/ui/avatar.js.map +1 -1
  86. package/dist/ui/badge.d.ts.map +1 -1
  87. package/dist/ui/breadcrumb.d.ts +0 -1
  88. package/dist/ui/breadcrumb.d.ts.map +1 -1
  89. package/dist/ui/breadcrumb.js +58 -35
  90. package/dist/ui/breadcrumb.js.map +1 -1
  91. package/dist/ui/button.js +3 -3
  92. package/dist/ui/checkbox.d.ts +4 -2
  93. package/dist/ui/checkbox.d.ts.map +1 -1
  94. package/dist/ui/checkbox.js +33 -28
  95. package/dist/ui/checkbox.js.map +1 -1
  96. package/dist/ui/collapsible.js +4 -4
  97. package/dist/ui/combobox.d.ts +3 -0
  98. package/dist/ui/combobox.d.ts.map +1 -1
  99. package/dist/ui/combobox.js +137 -132
  100. package/dist/ui/combobox.js.map +1 -1
  101. package/dist/ui/context-menu.js +46 -46
  102. package/dist/ui/dialog.d.ts.map +1 -1
  103. package/dist/ui/dialog.js +53 -50
  104. package/dist/ui/dialog.js.map +1 -1
  105. package/dist/ui/dot.d.ts +38 -0
  106. package/dist/ui/dot.d.ts.map +1 -0
  107. package/dist/ui/dot.js +92 -0
  108. package/dist/ui/dot.js.map +1 -0
  109. package/dist/ui/dropdown-menu.d.ts.map +1 -1
  110. package/dist/ui/dropdown-menu.js +70 -65
  111. package/dist/ui/dropdown-menu.js.map +1 -1
  112. package/dist/ui/hover-card.js +11 -11
  113. package/dist/ui/index.d.ts +3 -2
  114. package/dist/ui/index.d.ts.map +1 -1
  115. package/dist/ui/index.js +67 -67
  116. package/dist/ui/index.js.map +1 -1
  117. package/dist/ui/input-otp.js +1 -1
  118. package/dist/ui/input-otp.js.map +1 -1
  119. package/dist/ui/input.d.ts +4 -2
  120. package/dist/ui/input.d.ts.map +1 -1
  121. package/dist/ui/input.js +38 -37
  122. package/dist/ui/input.js.map +1 -1
  123. package/dist/ui/label.js +1 -1
  124. package/dist/ui/lib/field-state.d.ts +21 -0
  125. package/dist/ui/lib/field-state.d.ts.map +1 -0
  126. package/dist/ui/lib/use-controllable-open.d.ts +32 -0
  127. package/dist/ui/lib/use-controllable-open.d.ts.map +1 -0
  128. package/dist/ui/link.js +1 -1
  129. package/dist/ui/number-input.d.ts +4 -2
  130. package/dist/ui/number-input.d.ts.map +1 -1
  131. package/dist/ui/number-input.js +51 -50
  132. package/dist/ui/number-input.js.map +1 -1
  133. package/dist/ui/pagination.js +1 -1
  134. package/dist/ui/popover.d.ts.map +1 -1
  135. package/dist/ui/progress.d.ts +66 -42
  136. package/dist/ui/progress.d.ts.map +1 -1
  137. package/dist/ui/progress.js +144 -40
  138. package/dist/ui/progress.js.map +1 -1
  139. package/dist/ui/radio.d.ts +6 -2
  140. package/dist/ui/radio.d.ts.map +1 -1
  141. package/dist/ui/radio.js +44 -33
  142. package/dist/ui/radio.js.map +1 -1
  143. package/dist/ui/select.d.ts +1 -1
  144. package/dist/ui/select.d.ts.map +1 -1
  145. package/dist/ui/select.js +58 -57
  146. package/dist/ui/select.js.map +1 -1
  147. package/dist/ui/separator.js +2 -2
  148. package/dist/ui/separator.js.map +1 -1
  149. package/dist/ui/sheet.d.ts.map +1 -1
  150. package/dist/ui/sheet.js +59 -56
  151. package/dist/ui/sheet.js.map +1 -1
  152. package/dist/ui/sidebar.js +5 -5
  153. package/dist/ui/sidebar.js.map +1 -1
  154. package/dist/ui/slider.js +6 -6
  155. package/dist/ui/slider.js.map +1 -1
  156. package/dist/ui/stat-card.d.ts.map +1 -1
  157. package/dist/ui/stat-card.js +122 -125
  158. package/dist/ui/stat-card.js.map +1 -1
  159. package/dist/ui/surface.js +1 -1
  160. package/dist/ui/switch.d.ts +3 -1
  161. package/dist/ui/switch.d.ts.map +1 -1
  162. package/dist/ui/switch.js +32 -27
  163. package/dist/ui/switch.js.map +1 -1
  164. package/dist/ui/textarea.d.ts +3 -3
  165. package/dist/ui/textarea.d.ts.map +1 -1
  166. package/dist/ui/textarea.js +18 -17
  167. package/dist/ui/textarea.js.map +1 -1
  168. package/dist/ui/toast.js +2 -2
  169. package/dist/ui/toast.js.map +1 -1
  170. package/dist/ui/toggle-group.js +1 -1
  171. package/dist/ui/toggle.js +1 -1
  172. package/dist/ui/tooltip.d.ts.map +1 -1
  173. package/dist/ui/tooltip.js +36 -33
  174. package/dist/ui/tooltip.js.map +1 -1
  175. package/docs/components/ai/ai-command-provider.md +46 -0
  176. package/docs/components/ai/block-renderer.md +59 -0
  177. package/docs/components/ai/command-bar.md +78 -0
  178. package/docs/components/ai/conversation.md +59 -0
  179. package/docs/components/ai/devadoot-icon.md +41 -0
  180. package/docs/components/composed/emoji-picker.md +19 -17
  181. package/docs/components/composed/page-header.md +1 -1
  182. package/docs/components/composed/responsive-modal.md +66 -0
  183. package/docs/components/composed/rich-text-editor.md +1 -1
  184. package/docs/components/composed/schedule-view.md +6 -2
  185. package/docs/components/ui/breadcrumb.md +1 -1
  186. package/docs/components/ui/checkbox.md +4 -1
  187. package/docs/components/ui/combobox.md +4 -0
  188. package/docs/components/ui/dot.md +61 -0
  189. package/docs/components/ui/progress.md +54 -16
  190. package/docs/components/ui/radio.md +6 -2
  191. package/docs/components/ui/select.md +9 -5
  192. package/docs/components/ui/switch.md +4 -1
  193. package/docs/components/ui/table-row-link.md +1 -1
  194. package/docs/components/ui/table.md +2 -1
  195. package/docs/recipes/index.md +1 -1
  196. package/docs/recipes/install-astro.md +15 -12
  197. package/docs/recipes/install-next-app-router.md +20 -12
  198. package/docs/recipes/install-next-pages.md +3 -1
  199. package/docs/recipes/install-remix.md +16 -13
  200. package/docs/recipes/install-tanstack-start.md +19 -12
  201. package/docs/recipes/install-vite.md +18 -15
  202. package/docs/recipes/troubleshoot.md +7 -8
  203. package/llms.txt +12 -4
  204. package/make-kit/components/form.md +2 -2
  205. package/make-kit/components/icon.md +2 -2
  206. package/make-kit/components/overview.md +2 -2
  207. package/make-kit/components/select.md +1 -1
  208. package/make-kit/components/table.md +1 -1
  209. package/mcp-manifest.json +2696 -1145
  210. package/mcp-manifest.schema.json +18 -0
  211. package/package.json +16 -14
  212. package/skill/SKILL.md +1 -1
  213. package/skill/references/components.md +12 -4
  214. package/skill/references/setup-astro.md +15 -12
  215. package/skill/references/setup-next-app-router.md +20 -12
  216. package/skill/references/setup-next-pages.md +3 -1
  217. package/skill/references/setup-remix.md +16 -13
  218. package/skill/references/setup-tanstack-start.md +19 -12
  219. package/skill/references/setup-vite.md +18 -15
  220. package/skill/references/troubleshoot.md +7 -8
  221. package/dist/_chunks/emoji-data.js +0 -45
  222. package/dist/_chunks/emoji-data.js.map +0 -1
  223. package/dist/composed/extensions/emoji-suggestion.js.map +0 -1
  224. package/dist/ui/status-dot.d.ts +0 -27
  225. package/dist/ui/status-dot.d.ts.map +0 -1
  226. package/dist/ui/status-dot.js +0 -68
  227. package/dist/ui/status-dot.js.map +0 -1
  228. package/docs/components/ui/status-dot.md +0 -35
@@ -90,7 +90,7 @@ var m = r.forwardRef(function({ error: r, onReset: o, className: s, ...c }, l) {
90
90
  o && /* @__PURE__ */ i("div", {
91
91
  className: "flex items-center gap-ds-04",
92
92
  children: /* @__PURE__ */ i(n, {
93
- variant: "outline",
93
+ variant: "soft",
94
94
  size: "md",
95
95
  onClick: o,
96
96
  children: "Try Again"
@@ -1 +1 @@
1
- {"version":3,"file":"error-boundary.js","names":[],"sources":["../../src/composed/error-boundary.tsx"],"sourcesContent":["'use client'\n\nimport { IconAlertTriangle, IconBan, IconFileUnknown, IconServerOff } from '@tabler/icons-react'\nimport * as React from 'react'\n\nimport { Button } from '../ui/button'\nimport { Icon } from '../ui/icon'\nimport { cn } from '../ui/lib/utils'\n\ndeclare const process: { env: { NODE_ENV?: string } } | undefined\n\nexport interface ErrorDisplayProps extends React.ComponentPropsWithoutRef<'div'> {\n error: unknown\n onReset?: () => void\n}\n\nfunction getStatusFromError(error: unknown): number | undefined {\n if (\n error &&\n typeof error === 'object' &&\n 'status' in error &&\n typeof (error as Record<string, unknown>).status === 'number'\n ) {\n return (error as Record<string, unknown>).status as number\n }\n return undefined\n}\n\nfunction getMessageFromError(error: unknown): string | undefined {\n if (error instanceof Error) {\n return error.message\n }\n if (\n error &&\n typeof error === 'object' &&\n 'data' in error\n ) {\n const data = (error as Record<string, unknown>).data\n if (typeof data === 'string') return data\n if (data && typeof data === 'object' && 'message' in data) {\n return String((data as Record<string, unknown>).message)\n }\n }\n if (typeof error === 'string') {\n return error\n }\n return undefined\n}\n\nfunction getStackFromError(error: unknown): string | undefined {\n if (error instanceof Error) {\n return error.stack\n }\n return undefined\n}\n\nfunction getErrorConfig(status?: number) {\n switch (status) {\n case 404:\n return {\n icon: IconFileUnknown,\n title: 'Page not found',\n message:\n 'The page you are looking for does not exist or has been moved.',\n bgClass: 'bg-accent-2',\n iconClass: 'text-accent-11',\n }\n case 403:\n return {\n icon: IconBan,\n title: 'Access denied',\n message:\n 'You do not have permission to view this page. Contact your administrator if you believe this is a mistake.',\n bgClass: 'bg-warning-3',\n iconClass: 'text-warning-11',\n }\n case 500:\n return {\n icon: IconServerOff,\n title: 'Server error',\n message:\n 'Something went wrong on our end. Please try again later or contact support if the issue persists.',\n bgClass: 'bg-error-3',\n iconClass: 'text-error-11',\n }\n default:\n return {\n icon: IconAlertTriangle,\n title: 'Something went wrong',\n message:\n 'An unexpected error occurred. Please try again or go back to the home page.',\n bgClass: 'bg-accent-2',\n iconClass: 'text-accent-11',\n }\n }\n}\n\nconst ErrorDisplay = React.forwardRef<HTMLDivElement, ErrorDisplayProps>(\n function ErrorDisplay({ error, onReset, className, ...props }, ref) {\n const status = getStatusFromError(error)\n const message = getMessageFromError(error)\n const stack = getStackFromError(error)\n const isDev =\n typeof process !== 'undefined' &&\n process.env &&\n process.env.NODE_ENV === 'development'\n\n const errorConfig = getErrorConfig(status)\n const ErrorIcon = errorConfig.icon\n\n return (\n <div ref={ref} {...props} className={cn(\"flex min-h-[60vh] items-center justify-center p-ds-05\", className)}>\n <div\n className=\"flex w-full max-w-lg flex-col items-center gap-ds-06 rounded-overlay-lg bg-surface-raised p-ds-07 text-center shadow-raised\"\n >\n {/* Error Icon */}\n <div\n className={cn(\n 'flex h-ds-lg w-ds-lg items-center justify-center rounded-bubble',\n errorConfig.bgClass,\n )}\n >\n <Icon\n icon={ErrorIcon}\n size=\"2xl\"\n className={errorConfig.iconClass}\n />\n </div>\n\n {/* Error IconInfoCircle */}\n <div className=\"flex flex-col gap-ds-03\">\n {status && (\n <span className=\"text-ds-sm text-surface-fg-subtle\">\n Error {status}\n </span>\n )}\n <h2 className=\"text-ds-2xl font-semibold text-surface-fg\">\n {errorConfig.title}\n </h2>\n <p className=\"text-ds-base text-surface-fg-subtle\">\n {message || errorConfig.message}\n </p>\n </div>\n\n {/* Actions */}\n {onReset && (\n <div className=\"flex items-center gap-ds-04\">\n <Button\n variant=\"outline\"\n size=\"md\"\n onClick={onReset}\n >\n Try Again\n </Button>\n </div>\n )}\n\n {/* Dev stack trace */}\n {isDev && stack && (\n <div className=\"w-full overflow-auto rounded-surface border border-surface-border-strong bg-surface-raised p-ds-05 text-left\">\n <p className=\"text-ds-sm mb-ds-03 font-semibold text-surface-fg\">\n Stack Trace (development only)\n </p>\n <pre className=\"whitespace-pre-wrap text-ds-sm text-surface-fg-subtle\">\n {stack}\n </pre>\n </div>\n )}\n </div>\n </div>\n )\n},\n)\n\nErrorDisplay.displayName = 'ErrorDisplay'\n\ninterface ErrorBoundaryProps {\n children: React.ReactNode\n /** Optional callback when the user clicks \"Try Again\" */\n onReset?: () => void\n /** Optional custom fallback — receives the caught error. Defaults to ErrorDisplay. */\n fallback?: (props: { error: unknown; onReset?: () => void }) => React.ReactNode\n}\n\ninterface ErrorBoundaryState {\n error: unknown | null\n}\n\nclass ErrorBoundary extends React.Component<ErrorBoundaryProps, ErrorBoundaryState> {\n constructor(props: ErrorBoundaryProps) {\n super(props)\n this.state = { error: null }\n }\n\n static getDerivedStateFromError(error: unknown): ErrorBoundaryState {\n return { error }\n }\n\n private handleReset = () => {\n this.setState({ error: null })\n this.props.onReset?.()\n }\n\n render() {\n if (this.state.error !== null) {\n if (this.props.fallback) {\n return this.props.fallback({ error: this.state.error, onReset: this.handleReset })\n }\n return <ErrorDisplay error={this.state.error} onReset={this.handleReset} />\n }\n return this.props.children\n }\n}\n\nexport { ErrorBoundary,ErrorDisplay }\nexport type { ErrorBoundaryProps }\n"],"mappings":"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"}
1
+ {"version":3,"file":"error-boundary.js","names":[],"sources":["../../src/composed/error-boundary.tsx"],"sourcesContent":["'use client'\n\nimport { IconAlertTriangle, IconBan, IconFileUnknown, IconServerOff } from '@tabler/icons-react'\nimport * as React from 'react'\n\nimport { Button } from '../ui/button'\nimport { Icon } from '../ui/icon'\nimport { cn } from '../ui/lib/utils'\n\ndeclare const process: { env: { NODE_ENV?: string } } | undefined\n\nexport interface ErrorDisplayProps extends React.ComponentPropsWithoutRef<'div'> {\n error: unknown\n onReset?: () => void\n}\n\nfunction getStatusFromError(error: unknown): number | undefined {\n if (\n error &&\n typeof error === 'object' &&\n 'status' in error &&\n typeof (error as Record<string, unknown>).status === 'number'\n ) {\n return (error as Record<string, unknown>).status as number\n }\n return undefined\n}\n\nfunction getMessageFromError(error: unknown): string | undefined {\n if (error instanceof Error) {\n return error.message\n }\n if (\n error &&\n typeof error === 'object' &&\n 'data' in error\n ) {\n const data = (error as Record<string, unknown>).data\n if (typeof data === 'string') return data\n if (data && typeof data === 'object' && 'message' in data) {\n return String((data as Record<string, unknown>).message)\n }\n }\n if (typeof error === 'string') {\n return error\n }\n return undefined\n}\n\nfunction getStackFromError(error: unknown): string | undefined {\n if (error instanceof Error) {\n return error.stack\n }\n return undefined\n}\n\nfunction getErrorConfig(status?: number) {\n switch (status) {\n case 404:\n return {\n icon: IconFileUnknown,\n title: 'Page not found',\n message:\n 'The page you are looking for does not exist or has been moved.',\n bgClass: 'bg-accent-2',\n iconClass: 'text-accent-11',\n }\n case 403:\n return {\n icon: IconBan,\n title: 'Access denied',\n message:\n 'You do not have permission to view this page. Contact your administrator if you believe this is a mistake.',\n bgClass: 'bg-warning-3',\n iconClass: 'text-warning-11',\n }\n case 500:\n return {\n icon: IconServerOff,\n title: 'Server error',\n message:\n 'Something went wrong on our end. Please try again later or contact support if the issue persists.',\n bgClass: 'bg-error-3',\n iconClass: 'text-error-11',\n }\n default:\n return {\n icon: IconAlertTriangle,\n title: 'Something went wrong',\n message:\n 'An unexpected error occurred. Please try again or go back to the home page.',\n bgClass: 'bg-accent-2',\n iconClass: 'text-accent-11',\n }\n }\n}\n\nconst ErrorDisplay = React.forwardRef<HTMLDivElement, ErrorDisplayProps>(\n function ErrorDisplay({ error, onReset, className, ...props }, ref) {\n const status = getStatusFromError(error)\n const message = getMessageFromError(error)\n const stack = getStackFromError(error)\n const isDev =\n typeof process !== 'undefined' &&\n process.env &&\n process.env.NODE_ENV === 'development'\n\n const errorConfig = getErrorConfig(status)\n const ErrorIcon = errorConfig.icon\n\n return (\n <div ref={ref} {...props} className={cn(\"flex min-h-[60vh] items-center justify-center p-ds-05\", className)}>\n <div\n className=\"flex w-full max-w-lg flex-col items-center gap-ds-06 rounded-overlay-lg bg-surface-raised p-ds-07 text-center shadow-raised\"\n >\n {/* Error Icon */}\n <div\n className={cn(\n 'flex h-ds-lg w-ds-lg items-center justify-center rounded-bubble',\n errorConfig.bgClass,\n )}\n >\n <Icon\n icon={ErrorIcon}\n size=\"2xl\"\n className={errorConfig.iconClass}\n />\n </div>\n\n {/* Error IconInfoCircle */}\n <div className=\"flex flex-col gap-ds-03\">\n {status && (\n <span className=\"text-ds-sm text-surface-fg-subtle\">\n Error {status}\n </span>\n )}\n <h2 className=\"text-ds-2xl font-semibold text-surface-fg\">\n {errorConfig.title}\n </h2>\n <p className=\"text-ds-base text-surface-fg-subtle\">\n {message || errorConfig.message}\n </p>\n </div>\n\n {/* Actions */}\n {onReset && (\n <div className=\"flex items-center gap-ds-04\">\n <Button\n variant=\"soft\"\n size=\"md\"\n onClick={onReset}\n >\n Try Again\n </Button>\n </div>\n )}\n\n {/* Dev stack trace */}\n {isDev && stack && (\n <div className=\"w-full overflow-auto rounded-surface border border-surface-border-strong bg-surface-raised p-ds-05 text-left\">\n <p className=\"text-ds-sm mb-ds-03 font-semibold text-surface-fg\">\n Stack Trace (development only)\n </p>\n <pre className=\"whitespace-pre-wrap text-ds-sm text-surface-fg-subtle\">\n {stack}\n </pre>\n </div>\n )}\n </div>\n </div>\n )\n},\n)\n\nErrorDisplay.displayName = 'ErrorDisplay'\n\ninterface ErrorBoundaryProps {\n children: React.ReactNode\n /** Optional callback when the user clicks \"Try Again\" */\n onReset?: () => void\n /** Optional custom fallback — receives the caught error. Defaults to ErrorDisplay. */\n fallback?: (props: { error: unknown; onReset?: () => void }) => React.ReactNode\n}\n\ninterface ErrorBoundaryState {\n error: unknown | null\n}\n\nclass ErrorBoundary extends React.Component<ErrorBoundaryProps, ErrorBoundaryState> {\n constructor(props: ErrorBoundaryProps) {\n super(props)\n this.state = { error: null }\n }\n\n static getDerivedStateFromError(error: unknown): ErrorBoundaryState {\n return { error }\n }\n\n private handleReset = () => {\n this.setState({ error: null })\n this.props.onReset?.()\n }\n\n render() {\n if (this.state.error !== null) {\n if (this.props.fallback) {\n return this.props.fallback({ error: this.state.error, onReset: this.handleReset })\n }\n return <ErrorDisplay error={this.state.error} onReset={this.handleReset} />\n }\n return this.props.children\n }\n}\n\nexport { ErrorBoundary,ErrorDisplay }\nexport type { ErrorBoundaryProps }\n"],"mappings":"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"}
@@ -1,12 +1,6 @@
1
1
  "use client";
2
- export declare const SPRITESHEET_URL: (set: string) => string;
3
- export declare const SHEET_COLS = 61;
4
- export declare const SHEET_ROWS = 61;
5
2
  interface EmojiSkin {
6
- unified: string;
7
3
  native: string;
8
- x?: number;
9
- y?: number;
10
4
  }
11
5
  interface EmojiEntry {
12
6
  id: string;
@@ -16,20 +10,13 @@ interface EmojiEntry {
16
10
  }
17
11
  export interface EmojiDataset {
18
12
  emojis: Record<string, EmojiEntry>;
19
- sheet?: {
20
- cols: number;
21
- rows: number;
22
- };
23
13
  }
24
14
  export interface ResolvedEmoji {
25
15
  id: string;
26
16
  name: string;
27
17
  native: string;
28
- x: number;
29
- y: number;
30
18
  }
31
- export declare function loadEmojiData(set: string): Promise<EmojiDataset>;
32
- export declare function lookupEmoji(data: EmojiDataset, id: string): ResolvedEmoji | null;
19
+ export declare function loadEmojiData(): Promise<EmojiDataset>;
33
20
  export declare function searchEmoji(data: EmojiDataset, query: string, limit?: number): ResolvedEmoji[];
34
21
  export {};
35
22
  //# sourceMappingURL=emoji-data.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"emoji-data.d.ts","sourceRoot":"","sources":["../../../src/composed/extensions/emoji-data.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,eAAe,GAAI,KAAK,MAAM,WACiD,CAAA;AAC5F,eAAO,MAAM,UAAU,KAAK,CAAA;AAC5B,eAAO,MAAM,UAAU,KAAK,CAAA;AAE5B,UAAU,SAAS;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,CAAC,CAAC,EAAE,MAAM,CAAA;IACV,CAAC,CAAC,EAAE,MAAM,CAAA;CACX;AAED,UAAU,UAAU;IAClB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,KAAK,EAAE,SAAS,EAAE,CAAA;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;IAClC,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CACvC;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;CACV;AAKD,wBAAsB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAOtE;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAYhF;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,SAAI,GAAG,aAAa,EAAE,CA8BzF"}
1
+ {"version":3,"file":"emoji-data.d.ts","sourceRoot":"","sources":["../../../src/composed/extensions/emoji-data.ts"],"names":[],"mappings":"AAMA,UAAU,SAAS;IACjB,MAAM,EAAE,MAAM,CAAA;CACf;AAED,UAAU,UAAU;IAClB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,KAAK,EAAE,SAAS,EAAE,CAAA;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;CACnC;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;CACf;AAID,wBAAsB,aAAa,IAAI,OAAO,CAAC,YAAY,CAAC,CAK3D;AAMD,wBAAgB,WAAW,CAAC,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,SAAI,GAAG,aAAa,EAAE,CAgBzF"}
@@ -3,9 +3,6 @@ import { Node } from '@tiptap/core';
3
3
  export interface EmojiNodeAttrs {
4
4
  id: string;
5
5
  native: string;
6
- set: string;
7
- x: number;
8
- y: number;
9
6
  }
10
7
  export declare const EmojiNode: Node<any, any>;
11
8
  //# sourceMappingURL=emoji-node.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"emoji-node.d.ts","sourceRoot":"","sources":["../../../src/composed/extensions/emoji-node.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAKnC,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,EAAE,MAAM,CAAA;IACX,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;CACV;AAgCD,eAAO,MAAM,SAAS,gBAmDpB,CAAA"}
1
+ {"version":3,"file":"emoji-node.d.ts","sourceRoot":"","sources":["../../../src/composed/extensions/emoji-node.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAKnC,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;CACf;AAWD,eAAO,MAAM,SAAS,gBA0CpB,CAAA"}
@@ -1,32 +1,16 @@
1
1
  "use client";
2
2
  import { _ as e, o as t, s as n } from "../../_chunks/tiptap.js";
3
- import { t as r } from "../../_chunks/emoji-data.js";
4
- import { jsx as i } from "react/jsx-runtime";
3
+ import { jsx as r } from "react/jsx-runtime";
5
4
  //#region src/composed/extensions/emoji-node.tsx
6
- function a({ node: e }) {
7
- let { native: n, set: a, x: o, y: s } = e.attrs;
8
- if (a === "native") return /* @__PURE__ */ i(t, {
5
+ function i({ node: e }) {
6
+ let { native: n } = e.attrs;
7
+ return /* @__PURE__ */ r(t, {
9
8
  as: "span",
10
9
  className: "inline",
11
- children: /* @__PURE__ */ i("span", { children: n })
12
- });
13
- let c = `${100 / 60 * o}% ${100 / 60 * s}%`;
14
- return /* @__PURE__ */ i(t, {
15
- as: "span",
16
- className: "inline",
17
- children: /* @__PURE__ */ i("span", {
18
- role: "img",
19
- "aria-label": n,
20
- className: "inline-block h-[1.2em] w-[1.2em] align-text-bottom",
21
- style: {
22
- backgroundImage: `url(${r(a)})`,
23
- backgroundSize: "6100% 6100%",
24
- backgroundPosition: c
25
- }
26
- })
10
+ children: /* @__PURE__ */ r("span", { children: n })
27
11
  });
28
12
  }
29
- var o = e.create({
13
+ var a = e.create({
30
14
  name: "emojiNode",
31
15
  group: "inline",
32
16
  inline: !0,
@@ -35,10 +19,7 @@ var o = e.create({
35
19
  addAttributes() {
36
20
  return {
37
21
  id: { default: null },
38
- native: { default: null },
39
- set: { default: "native" },
40
- x: { default: 0 },
41
- y: { default: 0 }
22
+ native: { default: null }
42
23
  };
43
24
  },
44
25
  renderText({ node: e }) {
@@ -51,9 +32,6 @@ var o = e.create({
51
32
  let t = e;
52
33
  return {
53
34
  id: t.getAttribute("data-emoji-id"),
54
- set: t.getAttribute("data-emoji-set") ?? "native",
55
- x: parseInt(t.getAttribute("data-emoji-x") ?? "0", 10),
56
- y: parseInt(t.getAttribute("data-emoji-y") ?? "0", 10),
57
35
  native: t.textContent ?? ""
58
36
  };
59
37
  }
@@ -64,9 +42,6 @@ var o = e.create({
64
42
  "span",
65
43
  {
66
44
  "data-emoji-id": e.attrs.id,
67
- "data-emoji-set": e.attrs.set,
68
- "data-emoji-x": e.attrs.x,
69
- "data-emoji-y": e.attrs.y,
70
45
  role: "img",
71
46
  "aria-label": e.attrs.native
72
47
  },
@@ -74,8 +49,8 @@ var o = e.create({
74
49
  ];
75
50
  },
76
51
  addNodeView() {
77
- return n(a);
52
+ return n(i);
78
53
  }
79
54
  });
80
55
  //#endregion
81
- export { o as EmojiNode };
56
+ export { a as EmojiNode };
@@ -1 +1 @@
1
- {"version":3,"file":"emoji-node.js","names":[],"sources":["../../../src/composed/extensions/emoji-node.tsx"],"sourcesContent":["import { Node } from '@tiptap/core'\nimport { type NodeViewProps,NodeViewWrapper, ReactNodeViewRenderer } from '@tiptap/react'\n\nimport { SHEET_COLS, SHEET_ROWS,SPRITESHEET_URL } from './emoji-data'\n\nexport interface EmojiNodeAttrs {\n id: string\n native: string\n set: string\n x: number\n y: number\n}\n\nfunction EmojiNodeView({ node }: NodeViewProps) {\n const { native, set, x, y } = node.attrs as EmojiNodeAttrs\n\n if (set === 'native') {\n return (\n <NodeViewWrapper as=\"span\" className=\"inline\">\n <span>{native}</span>\n </NodeViewWrapper>\n )\n }\n\n const bgSize = `${100 * SHEET_COLS}% ${100 * SHEET_ROWS}%`\n const bgPos = `${(100 / (SHEET_COLS - 1)) * x}% ${(100 / (SHEET_ROWS - 1)) * y}%`\n\n return (\n <NodeViewWrapper as=\"span\" className=\"inline\">\n <span\n role=\"img\"\n aria-label={native}\n className=\"inline-block h-[1.2em] w-[1.2em] align-text-bottom\"\n style={{\n backgroundImage: `url(${SPRITESHEET_URL(set)})`,\n backgroundSize: bgSize,\n backgroundPosition: bgPos,\n }}\n />\n </NodeViewWrapper>\n )\n}\n\nexport const EmojiNode = Node.create({\n name: 'emojiNode',\n group: 'inline',\n inline: true,\n atom: true,\n selectable: false,\n\n addAttributes() {\n return {\n id: { default: null },\n native: { default: null },\n set: { default: 'native' },\n x: { default: 0 },\n y: { default: 0 },\n }\n },\n\n renderText({ node }) {\n return node.attrs.native ?? ''\n },\n\n parseHTML() {\n return [{\n tag: 'span[data-emoji-id]',\n getAttrs: (el) => {\n const dom = el as HTMLElement\n return {\n id: dom.getAttribute('data-emoji-id'),\n set: dom.getAttribute('data-emoji-set') ?? 'native',\n x: parseInt(dom.getAttribute('data-emoji-x') ?? '0', 10),\n y: parseInt(dom.getAttribute('data-emoji-y') ?? '0', 10),\n native: dom.textContent ?? '',\n }\n },\n }]\n },\n\n renderHTML({ node }) {\n return ['span', {\n 'data-emoji-id': node.attrs.id,\n 'data-emoji-set': node.attrs.set,\n 'data-emoji-x': node.attrs.x,\n 'data-emoji-y': node.attrs.y,\n 'role': 'img',\n 'aria-label': node.attrs.native,\n }, node.attrs.native ?? '']\n },\n\n addNodeView() {\n return ReactNodeViewRenderer(EmojiNodeView)\n },\n})\n"],"mappings":";;;;AAaA,SAAS,EAAc,EAAE,WAAuB;CAC9C,IAAM,EAAE,WAAQ,QAAK,MAAG,SAAM,EAAK;AAEnC,KAAI,MAAQ,SACV,QACE,kBAAC,GAAD;EAAiB,IAAG;EAAO,WAAU;YACnC,kBAAC,QAAD,EAAA,UAAO,GAAc,CAAA;EACL,CAAA;CAItB,IACM,IAAQ,GAAI,MAAA,KAA0B,EAAE,IAAK,MAAA,KAA0B,EAAE;AAE/E,QACE,kBAAC,GAAD;EAAiB,IAAG;EAAO,WAAU;YACnC,kBAAC,QAAD;GACE,MAAK;GACL,cAAY;GACZ,WAAU;GACV,OAAO;IACL,iBAAiB,OAAO,EAAgB,EAAI,CAAC;IAC7C,gBAAgB;IAChB,oBAAoB;IACrB;GACD,CAAA;EACc,CAAA;;AAItB,IAAa,IAAY,EAAK,OAAO;CACnC,MAAM;CACN,OAAO;CACP,QAAQ;CACR,MAAM;CACN,YAAY;CAEZ,gBAAgB;AACd,SAAO;GACL,IAAI,EAAE,SAAS,MAAM;GACrB,QAAQ,EAAE,SAAS,MAAM;GACzB,KAAK,EAAE,SAAS,UAAU;GAC1B,GAAG,EAAE,SAAS,GAAG;GACjB,GAAG,EAAE,SAAS,GAAG;GAClB;;CAGH,WAAW,EAAE,WAAQ;AACnB,SAAO,EAAK,MAAM,UAAU;;CAG9B,YAAY;AACV,SAAO,CAAC;GACN,KAAK;GACL,WAAW,MAAO;IAChB,IAAM,IAAM;AACZ,WAAO;KACL,IAAI,EAAI,aAAa,gBAAgB;KACrC,KAAK,EAAI,aAAa,iBAAiB,IAAI;KAC3C,GAAG,SAAS,EAAI,aAAa,eAAe,IAAI,KAAK,GAAG;KACxD,GAAG,SAAS,EAAI,aAAa,eAAe,IAAI,KAAK,GAAG;KACxD,QAAQ,EAAI,eAAe;KAC5B;;GAEJ,CAAC;;CAGJ,WAAW,EAAE,WAAQ;AACnB,SAAO;GAAC;GAAQ;IACd,iBAAiB,EAAK,MAAM;IAC5B,kBAAkB,EAAK,MAAM;IAC7B,gBAAgB,EAAK,MAAM;IAC3B,gBAAgB,EAAK,MAAM;IAC3B,MAAQ;IACR,cAAc,EAAK,MAAM;IAC1B;GAAE,EAAK,MAAM,UAAU;GAAG;;CAG7B,cAAc;AACZ,SAAO,EAAsB,EAAc;;CAE9C,CAAC"}
1
+ {"version":3,"file":"emoji-node.js","names":[],"sources":["../../../src/composed/extensions/emoji-node.tsx"],"sourcesContent":["import { Node } from '@tiptap/core'\nimport { type NodeViewProps,NodeViewWrapper, ReactNodeViewRenderer } from '@tiptap/react'\n\n// Native-only since the frimousse migration — renders the native emoji\n// character. (The emoji-mart spritesheet/art-style rendering was removed.)\nexport interface EmojiNodeAttrs {\n id: string\n native: string\n}\n\nfunction EmojiNodeView({ node }: NodeViewProps) {\n const { native } = node.attrs as EmojiNodeAttrs\n return (\n <NodeViewWrapper as=\"span\" className=\"inline\">\n <span>{native}</span>\n </NodeViewWrapper>\n )\n}\n\nexport const EmojiNode = Node.create({\n name: 'emojiNode',\n group: 'inline',\n inline: true,\n atom: true,\n selectable: false,\n\n addAttributes() {\n return {\n id: { default: null },\n native: { default: null },\n }\n },\n\n renderText({ node }) {\n return node.attrs.native ?? ''\n },\n\n parseHTML() {\n return [{\n tag: 'span[data-emoji-id]',\n getAttrs: (el) => {\n const dom = el as HTMLElement\n return {\n id: dom.getAttribute('data-emoji-id'),\n native: dom.textContent ?? '',\n }\n },\n }]\n },\n\n renderHTML({ node }) {\n return ['span', {\n 'data-emoji-id': node.attrs.id,\n 'role': 'img',\n 'aria-label': node.attrs.native,\n }, node.attrs.native ?? '']\n },\n\n addNodeView() {\n return ReactNodeViewRenderer(EmojiNodeView)\n },\n})\n"],"mappings":";;;AAUA,SAAS,EAAc,EAAE,WAAuB;CAC9C,IAAM,EAAE,cAAW,EAAK;AACxB,QACE,kBAAC,GAAD;EAAiB,IAAG;EAAO,WAAU;YACnC,kBAAC,QAAD,EAAA,UAAO,GAAc,CAAA;EACL,CAAA;;AAItB,IAAa,IAAY,EAAK,OAAO;CACnC,MAAM;CACN,OAAO;CACP,QAAQ;CACR,MAAM;CACN,YAAY;CAEZ,gBAAgB;AACd,SAAO;GACL,IAAI,EAAE,SAAS,MAAM;GACrB,QAAQ,EAAE,SAAS,MAAM;GAC1B;;CAGH,WAAW,EAAE,WAAQ;AACnB,SAAO,EAAK,MAAM,UAAU;;CAG9B,YAAY;AACV,SAAO,CAAC;GACN,KAAK;GACL,WAAW,MAAO;IAChB,IAAM,IAAM;AACZ,WAAO;KACL,IAAI,EAAI,aAAa,gBAAgB;KACrC,QAAQ,EAAI,eAAe;KAC5B;;GAEJ,CAAC;;CAGJ,WAAW,EAAE,WAAQ;AACnB,SAAO;GAAC;GAAQ;IACd,iBAAiB,EAAK,MAAM;IAC5B,MAAQ;IACR,cAAc,EAAK,MAAM;IAC1B;GAAE,EAAK,MAAM,UAAU;GAAG;;CAG7B,cAAc;AACZ,SAAO,EAAsB,EAAc;;CAE9C,CAAC"}
@@ -2,6 +2,6 @@
2
2
  import { Extension } from '@tiptap/core';
3
3
  import { ResolvedEmoji } from './emoji-data';
4
4
  export type { ResolvedEmoji as EmojiSuggestionItem };
5
- /** Factory: call with the emoji set to get a configured extension. */
6
- export declare function createEmojiSuggestion(set?: string): Extension<any, any>;
5
+ /** Factory: returns the configured `:shortcode:` emoji suggestion extension. */
6
+ export declare function createEmojiSuggestion(): Extension<any, any>;
7
7
  //# sourceMappingURL=emoji-suggestion.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"emoji-suggestion.d.ts","sourceRoot":"","sources":["../../../src/composed/extensions/emoji-suggestion.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAOxC,OAAO,EAAiB,KAAK,aAAa,EAAuD,MAAM,cAAc,CAAA;AAGrH,YAAY,EAAE,aAAa,IAAI,mBAAmB,EAAE,CAAA;AAwJpD,sEAAsE;AACtE,wBAAgB,qBAAqB,CAAC,GAAG,SAAW,uBA+BnD"}
1
+ {"version":3,"file":"emoji-suggestion.d.ts","sourceRoot":"","sources":["../../../src/composed/extensions/emoji-suggestion.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAOxC,OAAO,EAAiB,KAAK,aAAa,EAAe,MAAM,cAAc,CAAA;AAG7E,YAAY,EAAE,aAAa,IAAI,mBAAmB,EAAE,CAAA;AAsIpD,gFAAgF;AAChF,wBAAgB,qBAAqB,wBA+BpC"}
@@ -1,117 +1,3 @@
1
1
  "use client";
2
- import { cn as e } from "../../ui/lib/utils.js";
3
- import { g as t, p as n, y as r } from "../../_chunks/tiptap.js";
4
- import { i, n as a, t as o } from "../../_chunks/emoji-data.js";
5
- import * as s from "react";
6
- import { jsx as c, jsxs as l } from "react/jsx-runtime";
7
- import { createRoot as u } from "react-dom/client";
8
- //#region src/composed/extensions/emoji-suggestion.tsx
9
- function d({ emoji: e, set: t, size: n = "1.2em" }) {
10
- return t === "native" ? /* @__PURE__ */ c("span", {
11
- style: { fontSize: n },
12
- children: e.native
13
- }) : /* @__PURE__ */ c("span", {
14
- role: "img",
15
- "aria-label": e.native,
16
- className: "inline-block",
17
- style: {
18
- width: n,
19
- height: n,
20
- backgroundImage: `url(${o(t)})`,
21
- backgroundSize: "6100% 6100%",
22
- backgroundPosition: `${100 / 60 * e.x}% ${100 / 60 * e.y}%`
23
- }
24
- });
25
- }
26
- var f = s.forwardRef(({ items: t, set: n, command: r }, i) => {
27
- let [a, o] = s.useState(0);
28
- return s.useEffect(() => o(0), [t]), s.useImperativeHandle(i, () => ({ onKeyDown: ({ event: e }) => e.key === "ArrowUp" ? (o((e) => (e + t.length - 1) % t.length), !0) : e.key === "ArrowDown" ? (o((e) => (e + 1) % t.length), !0) : e.key === "Enter" ? (t[a] && r(t[a]), !0) : !1 })), t.length ? /* @__PURE__ */ c("div", {
29
- role: "listbox",
30
- "aria-label": "Emoji suggestions",
31
- className: "z-popover max-h-[200px] overflow-x-hidden overflow-y-auto rounded-control bg-surface-overlay shadow-raised-hover",
32
- children: t.map((t, i) => /* @__PURE__ */ l("button", {
33
- type: "button",
34
- role: "option",
35
- "aria-selected": i === a,
36
- onClick: () => r(t),
37
- className: e("flex w-full items-center gap-ds-03 px-ds-04 py-ds-02b text-left text-ds-sm", i === a ? "bg-surface-raised text-surface-fg" : "text-surface-fg-muted hover:bg-surface-raised"),
38
- children: [/* @__PURE__ */ c(d, {
39
- emoji: t,
40
- set: n,
41
- size: "1.25em"
42
- }), /* @__PURE__ */ l("span", {
43
- className: "truncate",
44
- children: [
45
- ":",
46
- t.id,
47
- ":"
48
- ]
49
- })]
50
- }, t.id))
51
- }) : null;
52
- });
53
- f.displayName = "EmojiList";
54
- function p(e) {
55
- return () => {
56
- let t = null, n = null, r = null;
57
- return {
58
- onStart: (i) => {
59
- n = document.createElement("div"), n.style.position = "absolute", n.style.zIndex = "1400";
60
- let a = i.clientRect?.();
61
- a && (n.style.left = `${a.left}px`, n.style.top = `${a.bottom + 4}px`), document.body.appendChild(n), t = u(n), t.render(/* @__PURE__ */ c(f, {
62
- ref: (e) => {
63
- r = e;
64
- },
65
- items: i.items,
66
- set: e,
67
- command: (e) => i.command(e)
68
- }));
69
- },
70
- onUpdate: (i) => {
71
- if (!t || !n) return;
72
- let a = i.clientRect?.();
73
- a && (n.style.left = `${a.left}px`, n.style.top = `${a.bottom + 4}px`), t.render(/* @__PURE__ */ c(f, {
74
- ref: (e) => {
75
- r = e;
76
- },
77
- items: i.items,
78
- set: e,
79
- command: (e) => i.command(e)
80
- }));
81
- },
82
- onKeyDown: (e) => e.event.key === "Escape" ? (n && (t?.unmount(), n.remove(), n = null, t = null), !0) : r?.onKeyDown(e) ?? !1,
83
- onExit: () => {
84
- n && (t?.unmount(), n.remove(), n = null, t = null);
85
- }
86
- };
87
- };
88
- }
89
- function m(e = "native") {
90
- return t.create({
91
- name: "emojiSuggestion",
92
- addProseMirrorPlugins() {
93
- return [n({
94
- pluginKey: new r("emojiSuggestion"),
95
- editor: this.editor,
96
- char: ":",
97
- items: async ({ query: t }) => i(await a(e), t, 8),
98
- command: ({ editor: t, range: n, props: r }) => {
99
- let i = r;
100
- t.chain().focus().deleteRange(n).insertContent({
101
- type: "emojiNode",
102
- attrs: {
103
- id: i.id,
104
- native: i.native,
105
- set: e,
106
- x: i.x,
107
- y: i.y
108
- }
109
- }).run();
110
- },
111
- render: p(e)
112
- })];
113
- }
114
- });
115
- }
116
- //#endregion
117
- export { m as createEmojiSuggestion };
2
+ import { t as e } from "../../_chunks/emoji-suggestion.js";
3
+ export { e as createEmojiSuggestion };
@@ -54,10 +54,12 @@ export { PageHeader } from './page-header';
54
54
  export { DashboardSkeleton, ProjectListSkeleton, TaskDetailSkeleton, } from './page-skeletons';
55
55
  export type { Priority, PriorityIndicatorProps } from './priority-indicator';
56
56
  export { PriorityIndicator } from './priority-indicator';
57
+ export type { ResponsiveModalContentProps, ResponsiveModalProps, } from './responsive-modal';
58
+ export { ResponsiveModal, ResponsiveModalBackground, ResponsiveModalBody, ResponsiveModalClose, ResponsiveModalContent, ResponsiveModalDescription, ResponsiveModalFooter, ResponsiveModalHeader, ResponsiveModalOverlay, ResponsiveModalPortal, ResponsiveModalTitle, ResponsiveModalTrigger, } from './responsive-modal';
57
59
  export type { ScheduleEvent, ScheduleViewProps } from './schedule-view';
58
60
  export { ScheduleView } from './schedule-view';
59
61
  export type { SimpleTooltipProps } from './simple-tooltip';
60
62
  export { SimpleTooltip } from './simple-tooltip';
61
63
  export type { StatusBadgeProps } from './status-badge';
62
- export { StatusBadge, statusBadgeVariants } from './status-badge';
64
+ export { StatusBadge } from './status-badge';
63
65
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/composed/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/composed/index.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,7 @@ import { MemberPicker as E } from "./member-picker.js";
21
21
  import { PageHeader as D } from "./page-header.js";
22
22
  import { DashboardSkeleton as O, ProjectListSkeleton as k, TaskDetailSkeleton as A } from "./page-skeletons.js";
23
23
  import { PriorityIndicator as j } from "./priority-indicator.js";
24
- import { ScheduleView as M } from "./schedule-view.js";
25
- import { StatusBadge as N, statusBadgeVariants as P } from "./status-badge.js";
26
- export { t as ActivityFeed, r as AvatarGroup, x as BoardSkeleton, i as BulkActionBar, S as CardSkeleton, a as CommandPalette, o as ConfirmDialog, s as ContentCard, O as DashboardSkeleton, u as DeadlineIndicator, d as EmptyState, f as ErrorBoundary, p as ErrorDisplay, h as FilterBar, g as FilterMultiSelect, _ as FilterSelect, v as FormSection, y as GlobalLoading, b as InlineEdit, C as ListSkeleton, T as MasterDetail, E as MemberPicker, m as MultiSelectPopover, D as PageHeader, j as PriorityIndicator, k as ProjectListSkeleton, M as ScheduleView, l as SimpleTooltip, N as StatusBadge, w as TableSkeleton, A as TaskDetailSkeleton, c as contentCardVariants, e as getInitials, n as groupItemsByTime, P as statusBadgeVariants };
24
+ import { ResponsiveModal as M, ResponsiveModalBackground as N, ResponsiveModalBody as P, ResponsiveModalClose as F, ResponsiveModalContent as I, ResponsiveModalDescription as L, ResponsiveModalFooter as R, ResponsiveModalHeader as z, ResponsiveModalOverlay as B, ResponsiveModalPortal as V, ResponsiveModalTitle as H, ResponsiveModalTrigger as U } from "./responsive-modal.js";
25
+ import { ScheduleView as W } from "./schedule-view.js";
26
+ import { StatusBadge as G } from "./status-badge.js";
27
+ export { t as ActivityFeed, r as AvatarGroup, x as BoardSkeleton, i as BulkActionBar, S as CardSkeleton, a as CommandPalette, o as ConfirmDialog, s as ContentCard, O as DashboardSkeleton, u as DeadlineIndicator, d as EmptyState, f as ErrorBoundary, p as ErrorDisplay, h as FilterBar, g as FilterMultiSelect, _ as FilterSelect, v as FormSection, y as GlobalLoading, b as InlineEdit, C as ListSkeleton, T as MasterDetail, E as MemberPicker, m as MultiSelectPopover, D as PageHeader, j as PriorityIndicator, k as ProjectListSkeleton, M as ResponsiveModal, N as ResponsiveModalBackground, P as ResponsiveModalBody, F as ResponsiveModalClose, I as ResponsiveModalContent, L as ResponsiveModalDescription, R as ResponsiveModalFooter, z as ResponsiveModalHeader, B as ResponsiveModalOverlay, V as ResponsiveModalPortal, H as ResponsiveModalTitle, U as ResponsiveModalTrigger, W as ScheduleView, l as SimpleTooltip, G as StatusBadge, w as TableSkeleton, A as TaskDetailSkeleton, c as contentCardVariants, e as getInitials, n as groupItemsByTime };
@@ -11,19 +11,19 @@ var a = n.forwardRef(function({ className: n, ...a }, o) {
11
11
  children: [
12
12
  /* @__PURE__ */ i("div", {
13
13
  className: "flex items-center justify-between pb-ds-05",
14
- children: [/* @__PURE__ */ r(t, { className: "h-[16px] w-[128px] bg-surface-raised-hover" }), /* @__PURE__ */ r(t, { className: "h-ico-sm w-ico-sm rounded bg-surface-raised-hover" })]
14
+ children: [/* @__PURE__ */ r(t, { className: "h-ds-05 w-[128px] bg-surface-raised-hover" }), /* @__PURE__ */ r(t, { className: "h-ico-sm w-ico-sm rounded bg-surface-raised-hover" })]
15
15
  }),
16
16
  /* @__PURE__ */ i("div", {
17
17
  className: "space-y-ds-04",
18
18
  children: [
19
- /* @__PURE__ */ r(t, { className: "h-[12px] w-full bg-surface-raised-hover" }),
20
- /* @__PURE__ */ r(t, { className: "h-[12px] w-4/5 bg-surface-raised-hover" }),
21
- /* @__PURE__ */ r(t, { className: "h-[12px] w-3/5 bg-surface-raised-hover" })
19
+ /* @__PURE__ */ r(t, { className: "h-ds-04 w-full bg-surface-raised-hover" }),
20
+ /* @__PURE__ */ r(t, { className: "h-ds-04 w-4/5 bg-surface-raised-hover" }),
21
+ /* @__PURE__ */ r(t, { className: "h-ds-04 w-3/5 bg-surface-raised-hover" })
22
22
  ]
23
23
  }),
24
24
  /* @__PURE__ */ i("div", {
25
25
  className: "flex items-center gap-ds-03 pt-ds-05",
26
- children: [/* @__PURE__ */ r(t, { className: "h-ds-xs w-ds-xs rounded-pill bg-surface-raised-hover" }), /* @__PURE__ */ r(t, { className: "h-[12px] w-[80px] bg-surface-raised-hover" })]
26
+ children: [/* @__PURE__ */ r(t, { className: "h-ds-xs w-ds-xs rounded-pill bg-surface-raised-hover" }), /* @__PURE__ */ r(t, { className: "h-ds-04 w-ds-11 bg-surface-raised-hover" })]
27
27
  })
28
28
  ]
29
29
  });
@@ -36,11 +36,11 @@ var o = n.forwardRef(function({ rows: n = 5, columns: a = 4, className: o, ...s
36
36
  className: e("overflow-hidden rounded-surface border border-surface-border-strong", o),
37
37
  children: [/* @__PURE__ */ r("div", {
38
38
  className: "flex items-center gap-ds-05 border-b border-surface-border-strong bg-surface-raised px-ds-05 py-ds-04",
39
- children: Array.from({ length: a }).map((n, i) => /* @__PURE__ */ r(t, { className: e("h-[12px] bg-surface-raised-hover", i === 0 ? "w-[160px]" : "flex-1") }, `head-${i}`))
39
+ children: Array.from({ length: a }).map((n, i) => /* @__PURE__ */ r(t, { className: e("h-ds-04 bg-surface-raised-hover", i === 0 ? "w-ds-13" : "flex-1") }, `head-${i}`))
40
40
  }), Array.from({ length: n }).map((i, o) => /* @__PURE__ */ r("div", {
41
41
  className: e("flex items-center gap-ds-05 px-ds-05 py-ds-04", o < n - 1 && "border-b border-surface-border-strong"),
42
42
  style: { animationDelay: `${o * 50}ms` },
43
- children: Array.from({ length: a }).map((n, i) => /* @__PURE__ */ r(t, { className: e("h-[12px] bg-surface-raised-hover", i === 0 ? "w-[160px]" : "flex-1") }, `cell-${o}-${i}`))
43
+ children: Array.from({ length: a }).map((n, i) => /* @__PURE__ */ r(t, { className: e("h-ds-04 bg-surface-raised-hover", i === 0 ? "w-ds-13" : "flex-1") }, `cell-${o}-${i}`))
44
44
  }, `row-${o}`))]
45
45
  });
46
46
  });
@@ -57,9 +57,9 @@ var s = n.forwardRef(function({ columns: n = 4, cardsPerColumn: a = 3, className
57
57
  children: [/* @__PURE__ */ i("div", {
58
58
  className: "flex items-center gap-ds-03",
59
59
  children: [
60
- /* @__PURE__ */ r(t, { className: "h-[12px] w-[12px] rounded bg-surface-raised-hover" }),
61
- /* @__PURE__ */ r(t, { className: "h-[12px] w-[80px] bg-surface-raised-hover" }),
62
- /* @__PURE__ */ r(t, { className: "h-[16px] w-[20px] rounded-pill bg-surface-raised-hover" })
60
+ /* @__PURE__ */ r(t, { className: "h-ds-04 w-ds-04 rounded bg-surface-raised-hover" }),
61
+ /* @__PURE__ */ r(t, { className: "h-ds-04 w-ds-11 bg-surface-raised-hover" }),
62
+ /* @__PURE__ */ r(t, { className: "h-ds-05 w-ds-05b rounded-pill bg-surface-raised-hover" })
63
63
  ]
64
64
  }), /* @__PURE__ */ r(t, { className: "h-ico-sm w-ico-sm rounded bg-surface-raised-hover" })]
65
65
  }), Array.from({ length: a }).map((e, o) => /* @__PURE__ */ i("div", {
@@ -67,13 +67,13 @@ var s = n.forwardRef(function({ columns: n = 4, cardsPerColumn: a = 3, className
67
67
  style: { animationDelay: `${(n * a + o) * 50}ms` },
68
68
  children: [/* @__PURE__ */ i("div", {
69
69
  className: "space-y-ds-03",
70
- children: [/* @__PURE__ */ r(t, { className: "h-[12px] w-4/5 bg-surface-raised-hover" }), /* @__PURE__ */ r(t, { className: "h-[12px] w-3/5 bg-surface-raised-hover" })]
70
+ children: [/* @__PURE__ */ r(t, { className: "h-ds-04 w-4/5 bg-surface-raised-hover" }), /* @__PURE__ */ r(t, { className: "h-ds-04 w-3/5 bg-surface-raised-hover" })]
71
71
  }), /* @__PURE__ */ i("div", {
72
72
  className: "flex items-center justify-between pt-ds-04",
73
73
  children: [/* @__PURE__ */ i("div", {
74
74
  className: "flex items-center gap-ds-02b",
75
- children: [/* @__PURE__ */ r(t, { className: "h-ico-md w-ico-md rounded-pill bg-surface-raised-hover" }), /* @__PURE__ */ r(t, { className: "h-ds-03 w-[64px] bg-surface-raised-hover" })]
76
- }), /* @__PURE__ */ r(t, { className: "h-[16px] w-ds-lg rounded-pill bg-surface-raised-hover" })]
75
+ children: [/* @__PURE__ */ r(t, { className: "h-ico-md w-ico-md rounded-pill bg-surface-raised-hover" }), /* @__PURE__ */ r(t, { className: "h-ds-03 w-ds-10 bg-surface-raised-hover" })]
76
+ }), /* @__PURE__ */ r(t, { className: "h-ds-05 w-ds-lg rounded-pill bg-surface-raised-hover" })]
77
77
  })]
78
78
  }, `card-${n}-${o}`))]
79
79
  }, `col-${n}`))
@@ -92,9 +92,9 @@ var c = n.forwardRef(function({ rows: n = 6, showAvatar: a = !0, className: o, .
92
92
  a && /* @__PURE__ */ r(t, { className: "h-ds-sm w-ds-sm shrink-0 rounded-pill bg-surface-raised-hover" }),
93
93
  /* @__PURE__ */ i("div", {
94
94
  className: "flex flex-1 flex-col gap-ds-02b",
95
- children: [/* @__PURE__ */ r(t, { className: "h-[12px] w-2/5 bg-surface-raised-hover" }), /* @__PURE__ */ r(t, { className: "h-ds-03 w-3/5 bg-surface-raised-hover" })]
95
+ children: [/* @__PURE__ */ r(t, { className: "h-ds-04 w-2/5 bg-surface-raised-hover" }), /* @__PURE__ */ r(t, { className: "h-ds-03 w-3/5 bg-surface-raised-hover" })]
96
96
  }),
97
- /* @__PURE__ */ r(t, { className: "h-[20px] w-[56px] rounded-pill bg-surface-raised-hover" })
97
+ /* @__PURE__ */ r(t, { className: "h-ds-05b w-[56px] rounded-pill bg-surface-raised-hover" })
98
98
  ]
99
99
  }, `list-${s}`))
100
100
  });
@@ -1 +1 @@
1
- {"version":3,"file":"loading-skeleton.js","names":[],"sources":["../../src/composed/loading-skeleton.tsx"],"sourcesContent":["// @server-safe\nimport * as React from 'react'\n\nimport { cn } from '../ui/lib/utils'\nimport { Skeleton } from '../ui/skeleton'\n\nexport interface CardSkeletonProps extends React.ComponentPropsWithoutRef<'div'> {\n className?: string\n}\n\nconst CardSkeleton = React.forwardRef<HTMLDivElement, CardSkeletonProps>(\n function CardSkeleton({ className, ...props }, ref) {\n return (\n <div\n ref={ref}\n {...props}\n className={cn(\n 'rounded-surface border border-surface-border-strong bg-surface-raised p-ds-05b',\n className,\n )}\n >\n <div className=\"flex items-center justify-between pb-ds-05\">\n <Skeleton className=\"h-[16px] w-[128px] bg-surface-raised-hover\" />\n <Skeleton className=\"h-ico-sm w-ico-sm rounded bg-surface-raised-hover\" />\n </div>\n <div className=\"space-y-ds-04\">\n <Skeleton className=\"h-[12px] w-full bg-surface-raised-hover\" />\n <Skeleton className=\"h-[12px] w-4/5 bg-surface-raised-hover\" />\n <Skeleton className=\"h-[12px] w-3/5 bg-surface-raised-hover\" />\n </div>\n <div className=\"flex items-center gap-ds-03 pt-ds-05\">\n <Skeleton className=\"h-ds-xs w-ds-xs rounded-pill bg-surface-raised-hover\" />\n <Skeleton className=\"h-[12px] w-[80px] bg-surface-raised-hover\" />\n </div>\n </div>\n )\n},\n)\n\nCardSkeleton.displayName = 'CardSkeleton'\n\nexport interface TableSkeletonProps extends CardSkeletonProps {\n rows?: number\n columns?: number\n}\n\nconst TableSkeleton = React.forwardRef<HTMLDivElement, TableSkeletonProps>(\n function TableSkeleton({\n rows = 5,\n columns = 4,\n className,\n ...props\n}, ref) {\n return (\n <div\n ref={ref}\n {...props}\n className={cn(\n 'overflow-hidden rounded-surface border border-surface-border-strong',\n className,\n )}\n >\n {/* Header */}\n <div className=\"flex items-center gap-ds-05 border-b border-surface-border-strong bg-surface-raised px-ds-05 py-ds-04\">\n {Array.from({ length: columns }).map((_, i) => (\n <Skeleton\n key={`head-${i}`}\n className={cn(\n 'h-[12px] bg-surface-raised-hover',\n i === 0 ? 'w-[160px]' : 'flex-1',\n )}\n />\n ))}\n </div>\n\n {/* Rows */}\n {Array.from({ length: rows }).map((_, rowIndex) => (\n <div\n key={`row-${rowIndex}`}\n className={cn(\n 'flex items-center gap-ds-05 px-ds-05 py-ds-04',\n rowIndex < rows - 1 && 'border-b border-surface-border-strong',\n )}\n style={{ animationDelay: `${rowIndex * 50}ms` }}\n >\n {Array.from({ length: columns }).map((_, colIndex) => (\n <Skeleton\n key={`cell-${rowIndex}-${colIndex}`}\n className={cn(\n 'h-[12px] bg-surface-raised-hover',\n colIndex === 0 ? 'w-[160px]' : 'flex-1',\n )}\n />\n ))}\n </div>\n ))}\n </div>\n )\n},\n)\n\nTableSkeleton.displayName = 'TableSkeleton'\n\nexport interface BoardSkeletonProps extends CardSkeletonProps {\n columns?: number\n cardsPerColumn?: number\n}\n\nconst BoardSkeleton = React.forwardRef<HTMLDivElement, BoardSkeletonProps>(\n function BoardSkeleton({\n columns = 4,\n cardsPerColumn = 3,\n className,\n ...props\n}, ref) {\n return (\n <div ref={ref} {...props} className={cn('flex gap-ds-05 overflow-x-auto', className)}>\n {Array.from({ length: columns }).map((_, colIndex) => (\n <div\n key={`col-${colIndex}`}\n className=\"flex w-[272px] shrink-0 flex-col gap-ds-03\"\n >\n {/* Column header */}\n <div className=\"flex items-center justify-between px-ds-02 py-ds-03\">\n <div className=\"flex items-center gap-ds-03\">\n <Skeleton className=\"h-[12px] w-[12px] rounded bg-surface-raised-hover\" />\n <Skeleton className=\"h-[12px] w-[80px] bg-surface-raised-hover\" />\n <Skeleton className=\"h-[16px] w-[20px] rounded-pill bg-surface-raised-hover\" />\n </div>\n <Skeleton className=\"h-ico-sm w-ico-sm rounded bg-surface-raised-hover\" />\n </div>\n\n {/* Column cards */}\n {Array.from({ length: cardsPerColumn }).map((_, cardIndex) => (\n <div\n key={`card-${colIndex}-${cardIndex}`}\n className=\"rounded-surface border border-surface-border-strong bg-surface-raised p-ds-04\"\n style={{ animationDelay: `${(colIndex * cardsPerColumn + cardIndex) * 50}ms` }}\n >\n <div className=\"space-y-ds-03\">\n <Skeleton className=\"h-[12px] w-4/5 bg-surface-raised-hover\" />\n <Skeleton className=\"h-[12px] w-3/5 bg-surface-raised-hover\" />\n </div>\n <div className=\"flex items-center justify-between pt-ds-04\">\n <div className=\"flex items-center gap-ds-02b\">\n <Skeleton className=\"h-ico-md w-ico-md rounded-pill bg-surface-raised-hover\" />\n <Skeleton className=\"h-ds-03 w-[64px] bg-surface-raised-hover\" />\n </div>\n <Skeleton className=\"h-[16px] w-ds-lg rounded-pill bg-surface-raised-hover\" />\n </div>\n </div>\n ))}\n </div>\n ))}\n </div>\n )\n},\n)\n\nBoardSkeleton.displayName = 'BoardSkeleton'\n\nexport interface ListSkeletonProps extends CardSkeletonProps {\n rows?: number\n showAvatar?: boolean\n}\n\nconst ListSkeleton = React.forwardRef<HTMLDivElement, ListSkeletonProps>(\n function ListSkeleton({\n rows = 6,\n showAvatar = true,\n className,\n ...props\n}, ref) {\n return (\n <div ref={ref} {...props} className={cn('flex flex-col', className)}>\n {Array.from({ length: rows }).map((_, i) => (\n <div\n key={`list-${i}`}\n className={cn(\n 'flex items-center gap-ds-04 py-ds-04',\n i < rows - 1 && 'border-b border-surface-border-strong',\n )}\n style={{ animationDelay: `${i * 50}ms` }}\n >\n {showAvatar && (\n <Skeleton className=\"h-ds-sm w-ds-sm shrink-0 rounded-pill bg-surface-raised-hover\" />\n )}\n <div className=\"flex flex-1 flex-col gap-ds-02b\">\n <Skeleton className=\"h-[12px] w-2/5 bg-surface-raised-hover\" />\n <Skeleton className=\"h-ds-03 w-3/5 bg-surface-raised-hover\" />\n </div>\n <Skeleton className=\"h-[20px] w-[56px] rounded-pill bg-surface-raised-hover\" />\n </div>\n ))}\n </div>\n )\n},\n)\n\nListSkeleton.displayName = 'ListSkeleton'\n\nexport { BoardSkeleton, CardSkeleton, ListSkeleton,TableSkeleton }\n"],"mappings":"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"}
1
+ {"version":3,"file":"loading-skeleton.js","names":[],"sources":["../../src/composed/loading-skeleton.tsx"],"sourcesContent":["// @server-safe\nimport * as React from 'react'\n\nimport { cn } from '../ui/lib/utils'\nimport { Skeleton } from '../ui/skeleton'\n\nexport interface CardSkeletonProps extends React.ComponentPropsWithoutRef<'div'> {\n className?: string\n}\n\nconst CardSkeleton = React.forwardRef<HTMLDivElement, CardSkeletonProps>(\n function CardSkeleton({ className, ...props }, ref) {\n return (\n <div\n ref={ref}\n {...props}\n className={cn(\n 'rounded-surface border border-surface-border-strong bg-surface-raised p-ds-05b',\n className,\n )}\n >\n <div className=\"flex items-center justify-between pb-ds-05\">\n <Skeleton className=\"h-ds-05 w-[128px] bg-surface-raised-hover\" />\n <Skeleton className=\"h-ico-sm w-ico-sm rounded bg-surface-raised-hover\" />\n </div>\n <div className=\"space-y-ds-04\">\n <Skeleton className=\"h-ds-04 w-full bg-surface-raised-hover\" />\n <Skeleton className=\"h-ds-04 w-4/5 bg-surface-raised-hover\" />\n <Skeleton className=\"h-ds-04 w-3/5 bg-surface-raised-hover\" />\n </div>\n <div className=\"flex items-center gap-ds-03 pt-ds-05\">\n <Skeleton className=\"h-ds-xs w-ds-xs rounded-pill bg-surface-raised-hover\" />\n <Skeleton className=\"h-ds-04 w-ds-11 bg-surface-raised-hover\" />\n </div>\n </div>\n )\n},\n)\n\nCardSkeleton.displayName = 'CardSkeleton'\n\nexport interface TableSkeletonProps extends CardSkeletonProps {\n rows?: number\n columns?: number\n}\n\nconst TableSkeleton = React.forwardRef<HTMLDivElement, TableSkeletonProps>(\n function TableSkeleton({\n rows = 5,\n columns = 4,\n className,\n ...props\n}, ref) {\n return (\n <div\n ref={ref}\n {...props}\n className={cn(\n 'overflow-hidden rounded-surface border border-surface-border-strong',\n className,\n )}\n >\n {/* Header */}\n <div className=\"flex items-center gap-ds-05 border-b border-surface-border-strong bg-surface-raised px-ds-05 py-ds-04\">\n {Array.from({ length: columns }).map((_, i) => (\n <Skeleton\n key={`head-${i}`}\n className={cn(\n 'h-ds-04 bg-surface-raised-hover',\n i === 0 ? 'w-ds-13' : 'flex-1',\n )}\n />\n ))}\n </div>\n\n {/* Rows */}\n {Array.from({ length: rows }).map((_, rowIndex) => (\n <div\n key={`row-${rowIndex}`}\n className={cn(\n 'flex items-center gap-ds-05 px-ds-05 py-ds-04',\n rowIndex < rows - 1 && 'border-b border-surface-border-strong',\n )}\n style={{ animationDelay: `${rowIndex * 50}ms` }}\n >\n {Array.from({ length: columns }).map((_, colIndex) => (\n <Skeleton\n key={`cell-${rowIndex}-${colIndex}`}\n className={cn(\n 'h-ds-04 bg-surface-raised-hover',\n colIndex === 0 ? 'w-ds-13' : 'flex-1',\n )}\n />\n ))}\n </div>\n ))}\n </div>\n )\n},\n)\n\nTableSkeleton.displayName = 'TableSkeleton'\n\nexport interface BoardSkeletonProps extends CardSkeletonProps {\n columns?: number\n cardsPerColumn?: number\n}\n\nconst BoardSkeleton = React.forwardRef<HTMLDivElement, BoardSkeletonProps>(\n function BoardSkeleton({\n columns = 4,\n cardsPerColumn = 3,\n className,\n ...props\n}, ref) {\n return (\n <div ref={ref} {...props} className={cn('flex gap-ds-05 overflow-x-auto', className)}>\n {Array.from({ length: columns }).map((_, colIndex) => (\n <div\n key={`col-${colIndex}`}\n className=\"flex w-[272px] shrink-0 flex-col gap-ds-03\"\n >\n {/* Column header */}\n <div className=\"flex items-center justify-between px-ds-02 py-ds-03\">\n <div className=\"flex items-center gap-ds-03\">\n <Skeleton className=\"h-ds-04 w-ds-04 rounded bg-surface-raised-hover\" />\n <Skeleton className=\"h-ds-04 w-ds-11 bg-surface-raised-hover\" />\n <Skeleton className=\"h-ds-05 w-ds-05b rounded-pill bg-surface-raised-hover\" />\n </div>\n <Skeleton className=\"h-ico-sm w-ico-sm rounded bg-surface-raised-hover\" />\n </div>\n\n {/* Column cards */}\n {Array.from({ length: cardsPerColumn }).map((_, cardIndex) => (\n <div\n key={`card-${colIndex}-${cardIndex}`}\n className=\"rounded-surface border border-surface-border-strong bg-surface-raised p-ds-04\"\n style={{ animationDelay: `${(colIndex * cardsPerColumn + cardIndex) * 50}ms` }}\n >\n <div className=\"space-y-ds-03\">\n <Skeleton className=\"h-ds-04 w-4/5 bg-surface-raised-hover\" />\n <Skeleton className=\"h-ds-04 w-3/5 bg-surface-raised-hover\" />\n </div>\n <div className=\"flex items-center justify-between pt-ds-04\">\n <div className=\"flex items-center gap-ds-02b\">\n <Skeleton className=\"h-ico-md w-ico-md rounded-pill bg-surface-raised-hover\" />\n <Skeleton className=\"h-ds-03 w-ds-10 bg-surface-raised-hover\" />\n </div>\n <Skeleton className=\"h-ds-05 w-ds-lg rounded-pill bg-surface-raised-hover\" />\n </div>\n </div>\n ))}\n </div>\n ))}\n </div>\n )\n},\n)\n\nBoardSkeleton.displayName = 'BoardSkeleton'\n\nexport interface ListSkeletonProps extends CardSkeletonProps {\n rows?: number\n showAvatar?: boolean\n}\n\nconst ListSkeleton = React.forwardRef<HTMLDivElement, ListSkeletonProps>(\n function ListSkeleton({\n rows = 6,\n showAvatar = true,\n className,\n ...props\n}, ref) {\n return (\n <div ref={ref} {...props} className={cn('flex flex-col', className)}>\n {Array.from({ length: rows }).map((_, i) => (\n <div\n key={`list-${i}`}\n className={cn(\n 'flex items-center gap-ds-04 py-ds-04',\n i < rows - 1 && 'border-b border-surface-border-strong',\n )}\n style={{ animationDelay: `${i * 50}ms` }}\n >\n {showAvatar && (\n <Skeleton className=\"h-ds-sm w-ds-sm shrink-0 rounded-pill bg-surface-raised-hover\" />\n )}\n <div className=\"flex flex-1 flex-col gap-ds-02b\">\n <Skeleton className=\"h-ds-04 w-2/5 bg-surface-raised-hover\" />\n <Skeleton className=\"h-ds-03 w-3/5 bg-surface-raised-hover\" />\n </div>\n <Skeleton className=\"h-ds-05b w-[56px] rounded-pill bg-surface-raised-hover\" />\n </div>\n ))}\n </div>\n )\n},\n)\n\nListSkeleton.displayName = 'ListSkeleton'\n\nexport { BoardSkeleton, CardSkeleton, ListSkeleton,TableSkeleton }\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"page-header.d.ts","sourceRoot":"","sources":["../../src/composed/page-header.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,eAAgB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IAC3E,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,WAAW,CAAC,EAAE,UAAU,EAAE,CAAA;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,QAAA,MAAM,UAAU,wFAyFf,CAAA;AAGD,OAAO,EAAE,UAAU,EAAE,CAAA"}
1
+ {"version":3,"file":"page-header.d.ts","sourceRoot":"","sources":["../../src/composed/page-header.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAY9B,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,eAAgB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IAC3E,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,WAAW,CAAC,EAAE,UAAU,EAAE,CAAA;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,QAAA,MAAM,UAAU,wFAmEf,CAAA;AAGD,OAAO,EAAE,UAAU,EAAE,CAAA"}