@xenide-io/the-old-ui-theme 0.9.17 → 0.10.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/dist/{Chip-BzuNgJIa.d.mts → Chip-DKT-82Lf.d.mts} +5 -3
- package/dist/{Chip-BzuNgJIa.d.ts → Chip-DKT-82Lf.d.ts} +5 -3
- package/dist/{chunk-6SVJAU5K.mjs → chunk-LHE4ROON.mjs} +977 -521
- package/dist/index.d.mts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +138 -99
- package/dist/index.mjs +1 -1
- package/dist/suite.d.mts +23 -1
- package/dist/suite.d.ts +23 -1
- package/dist/suite.js +4250 -4041
- package/dist/suite.mjs +1008 -795
- package/dist/tailwind-preset.js +10 -1
- package/dist/tailwind-preset.mjs +10 -1
- package/dist/ui.d.mts +33 -4
- package/dist/ui.d.ts +33 -4
- package/dist/ui.js +1024 -566
- package/dist/ui.mjs +13 -1
- package/docs/macos-identity-audit.md +279 -0
- package/package.json +1 -1
- package/src/app/globals.css +334 -44
- package/src/components/ui/Accordion.tsx +4 -7
- package/src/components/ui/Avatar.tsx +5 -5
- package/src/components/ui/Calendar.tsx +7 -7
- package/src/components/ui/CodeBlock.tsx +3 -10
- package/src/components/ui/CollapsibleSection.tsx +4 -4
- package/src/components/ui/CommandPalette.tsx +7 -10
- package/src/components/ui/EmptyState.tsx +2 -2
- package/src/components/ui/Input.tsx +1 -1
- package/src/components/ui/Marketing.tsx +128 -0
- package/src/components/ui/MarketingIllustrations.tsx +287 -0
- package/src/components/ui/Panel.tsx +1 -1
- package/src/components/ui/SegmentedControl.tsx +59 -13
- package/src/components/ui/ShowcaseWrapper.tsx +3 -3
- package/src/components/ui/Table.tsx +18 -6
- package/src/components/ui/Typography.tsx +4 -4
- package/src/components/ui/avatar-stat.test.tsx +14 -1
- package/src/components/ui/index.ts +13 -12
- package/src/components/ui/interaction-primitives.test.tsx +12 -6
- package/src/components/ui/marketing.test.tsx +39 -0
- package/src/components/ui/table.test.tsx +20 -0
- package/src/styles/suite-skin.css +405 -40
- package/src/styles/themes.css +45 -45
- package/src/styles/typography.css +25 -1
- package/src/suite/components/ai-panel.tsx +17 -17
- package/src/suite/components/app-switcher.tsx +9 -9
- package/src/suite/components/suite-app-layout.tsx +7 -4
- package/src/suite/components/suite-bottom-nav.tsx +1 -1
- package/src/suite/components/suite-clients-projects-directory.tsx +6 -6
- package/src/suite/components/suite-entity-icon.tsx +3 -3
- package/src/suite/components/suite-integration-picker.tsx +7 -7
- package/src/suite/components/suite-integration-rules.tsx +5 -5
- package/src/suite/components/suite-layout.test.tsx +32 -3
- package/src/suite/components/suite-layout.tsx +4 -4
- package/src/suite/components/suite-mobile-drawer.tsx +2 -2
- package/src/suite/components/suite-mobile-header.tsx +1 -1
- package/src/suite/components/suite-notification-bell.tsx +4 -4
- package/src/suite/components/suite-notification-settings.tsx +171 -0
- package/src/suite/components/suite-palette-library.test.tsx +46 -0
- package/src/suite/components/suite-palette-library.tsx +82 -15
- package/src/suite/components/suite-settings-layout.tsx +2 -2
- package/src/suite/components/suite-settings-mobile-nav.tsx +5 -9
- package/src/suite/components/suite-sidebar.test.tsx +39 -0
- package/src/suite/components/suite-sidebar.tsx +41 -19
- package/src/suite/components/suite-skeleton.tsx +6 -6
- package/src/suite/components/suite-user-menu.tsx +2 -2
- package/src/suite/components/today-calibrating.tsx +3 -3
- package/src/suite/components/today-ui.tsx +12 -12
- package/src/suite/components/workspace-switcher.tsx +3 -3
- package/src/suite/index.ts +6 -0
- package/tailwind-preset.ts +9 -0
package/dist/index.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { bm as IconProps } from './Chip-
|
|
2
|
-
export { A as Accordion, a as AccordionItem, b as AccordionProps, c as Alert, d as AlertProps, e as AlertStatus, f as AuthCard, g as AuthCardProps, h as AuthDivider, i as AuthDividerProps, j as AuthLayout, k as AuthLayoutProps, l as Avatar, m as AvatarGroup, n as AvatarGroupProps, o as AvatarProps, p as AvatarSize, q as AvatarStatus, B as Badge, r as BadgeProps, s as BadgeSize, t as BadgeVariant, u as Button, v as ButtonChrome, w as ButtonChromeProps, x as ButtonProps, y as ButtonShape, z as ButtonSize, C as ButtonVariant, D as CANONICAL_ICONS, E as Calendar, F as CalendarProps, G as CanonicalIconName, H as Caption, I as CaptionProps, J as Card, K as CardProps, L as CardVariant, M as Checkbox, N as CheckboxProps, O as Chip, P as ChipProps, Q as CommandItem, R as CommandPalette, S as CommandPaletteProps, T as Display, U as DisplayProps, V as Dot, W as DotProps, X as DropdownAlign, Y as DropdownButton, Z as DropdownButtonProps, _ as DropdownItem, $ as DropdownItemProps, a0 as DropdownMenu, a1 as DropdownMenuProps, a2 as DropdownRadioGroup, a3 as DropdownRadioGroupProps, a4 as DropdownRadioItem, a5 as DropdownRadioItemProps, a6 as DropdownSide, a7 as EmptyState, a8 as EmptyStateProps, a9 as FileUpload, aa as FileUploadProps, ab as FilterBar, ac as FilterBarProps, ad as FilterChip, ae as FilterChips, af as FilterChipsProps, ag as FilterMenu, ah as FilterMenuOption, ai as FilterMenuProps, aj as FormField, ak as FormFieldControlProps, al as FormFieldProps, am as H1, an as H1Props, ao as H2, ap as H2Props, aq as H3, ar as H3Props, as as H4, at as H4Props, au as H5, av as H5Props, aB as Icon, aw as IconActivity, ax as IconAliasName, ay as IconAreaChart, az as IconArrowDown, aA as IconArrowUp, aB as IconBase, aC as IconBell, aD as IconBellOff, aE as IconBolt, aF as IconBox, aG as IconByName, aH as IconCancel, aI as IconCheck, aJ as IconCheckCircle, aK as IconChevronDown, aL as IconChevronLeft, aM as IconChevronRight, aN as IconClipboardEdit, aO as IconClose, aP as IconCodePreview, aQ as IconCohort, aR as IconCommandCursor, aS as IconCopy, aT as IconCumulativeChart, aU as IconDataReel, aV as IconDatabase, aW as IconDownload, aX as IconEdit, aY as IconErrorOutline, aZ as IconEventStream, a_ as IconExclamation, a$ as IconExperimentSplit, b0 as IconFeatureGate, b1 as IconFlag, b2 as IconFlare, b3 as IconFlask, b4 as IconGift, b5 as IconGridView, b6 as IconHandClick, b7 as IconHome, b8 as IconInfo, b9 as IconInsightBoard, ba as IconLayers, bb as IconListView, bc as IconLogout, bd as IconMail, be as IconMoon, bf as IconName, bg as IconOldWindow, bh as IconPanelRight, bi as IconPerson, bj as IconPlayCircle, bk as IconPlus, bl as IconPremium, bn as IconQueryEditor, bo as IconQueryStack, bp as IconRadar, bq as IconRecording, br as IconReplayFrame, bs as IconRobot, bt as IconRocket, bu as IconSave, bv as IconSearch, bw as IconSelectEvents, bx as IconShoppingCart, by as IconSpinner, bz as IconStar, bA as IconSubArrowRight, bB as IconSun, bC as IconSurveyCard, bD as IconSurveys, bE as IconSync, bF as IconTableChart, bG as IconTerminal, bH as IconToggle, bI as IconTrash, bJ as IconTuning, bK as IconUpload, bL as IconVolume, bM as IconVolumeOff, bN as Input, bO as InputProps, bP as InputSize, bQ as InputVariant, bR as Kbd, bS as KbdPlatform, bT as KbdProps, bU as KbdVariant, bV as Label, bW as LabelProps, bX as Lead, bY as LeadProps, bZ as Link, b_ as LinkProps, b$ as Loader, c0 as LoaderProps, c1 as LoaderSize, c2 as LoaderVariant, c3 as LoadingState, c4 as LoadingStateProps, c5 as Modal, c6 as ModalProps, c7 as ModalSize, c8 as Mono, c9 as MonoProps, ca as OLD_UI_ICONS, cb as Overline, cc as OverlineProps, cd as P, ce as PH_ICONS, cf as PH_ICON_ALIASES, cg as PProps, ch as Panel, ci as PanelProps, cj as Progress, ck as ProgressProps, cl as Radio, cm as RadioProps, cr as SearchInput, cs as SearchInputProps, ct as SectionTitle, cu as SectionTitleProps, cv as SegmentedControl, cw as SegmentedControlOption, cx as SegmentedControlProps, cy as Select, cz as SelectProps, cA as SettingsLayout, cB as SettingsLayoutProps, cC as SettingsNav, cD as SettingsNavGroup, cE as SettingsNavItem, cF as SettingsNavProps, cG as Skeleton, cH as SkeletonProps, cI as SkeletonShape, cJ as Small, cK as SmallProps, cL as SortMenu, cM as SortMenuProps, cN as Spinner, cO as SpinnerProps, cP as Stat, cQ as StatProps, cR as StatTone, cS as Table, cT as TableColumn, cU as TableProps, cV as TextBaseProps, cW as TextTone, cX as TextWeight, cY as Textarea, cZ as TextareaProps, c_ as ThemeDomSync, c$ as ThemeSwitcher, d0 as ThemeSwitcherProps, d1 as Toggle, d2 as ToggleProps, d3 as Tooltip, d4 as TooltipAlign, d5 as TooltipProps, d6 as TooltipProvider, d7 as TooltipProviderProps, d8 as TooltipSide } from './Chip-
|
|
1
|
+
import { bm as IconProps } from './Chip-DKT-82Lf.mjs';
|
|
2
|
+
export { A as Accordion, a as AccordionItem, b as AccordionProps, c as Alert, d as AlertProps, e as AlertStatus, f as AuthCard, g as AuthCardProps, h as AuthDivider, i as AuthDividerProps, j as AuthLayout, k as AuthLayoutProps, l as Avatar, m as AvatarGroup, n as AvatarGroupProps, o as AvatarProps, p as AvatarSize, q as AvatarStatus, B as Badge, r as BadgeProps, s as BadgeSize, t as BadgeVariant, u as Button, v as ButtonChrome, w as ButtonChromeProps, x as ButtonProps, y as ButtonShape, z as ButtonSize, C as ButtonVariant, D as CANONICAL_ICONS, E as Calendar, F as CalendarProps, G as CanonicalIconName, H as Caption, I as CaptionProps, J as Card, K as CardProps, L as CardVariant, M as Checkbox, N as CheckboxProps, O as Chip, P as ChipProps, Q as CommandItem, R as CommandPalette, S as CommandPaletteProps, T as Display, U as DisplayProps, V as Dot, W as DotProps, X as DropdownAlign, Y as DropdownButton, Z as DropdownButtonProps, _ as DropdownItem, $ as DropdownItemProps, a0 as DropdownMenu, a1 as DropdownMenuProps, a2 as DropdownRadioGroup, a3 as DropdownRadioGroupProps, a4 as DropdownRadioItem, a5 as DropdownRadioItemProps, a6 as DropdownSide, a7 as EmptyState, a8 as EmptyStateProps, a9 as FileUpload, aa as FileUploadProps, ab as FilterBar, ac as FilterBarProps, ad as FilterChip, ae as FilterChips, af as FilterChipsProps, ag as FilterMenu, ah as FilterMenuOption, ai as FilterMenuProps, aj as FormField, ak as FormFieldControlProps, al as FormFieldProps, am as H1, an as H1Props, ao as H2, ap as H2Props, aq as H3, ar as H3Props, as as H4, at as H4Props, au as H5, av as H5Props, aB as Icon, aw as IconActivity, ax as IconAliasName, ay as IconAreaChart, az as IconArrowDown, aA as IconArrowUp, aB as IconBase, aC as IconBell, aD as IconBellOff, aE as IconBolt, aF as IconBox, aG as IconByName, aH as IconCancel, aI as IconCheck, aJ as IconCheckCircle, aK as IconChevronDown, aL as IconChevronLeft, aM as IconChevronRight, aN as IconClipboardEdit, aO as IconClose, aP as IconCodePreview, aQ as IconCohort, aR as IconCommandCursor, aS as IconCopy, aT as IconCumulativeChart, aU as IconDataReel, aV as IconDatabase, aW as IconDownload, aX as IconEdit, aY as IconErrorOutline, aZ as IconEventStream, a_ as IconExclamation, a$ as IconExperimentSplit, b0 as IconFeatureGate, b1 as IconFlag, b2 as IconFlare, b3 as IconFlask, b4 as IconGift, b5 as IconGridView, b6 as IconHandClick, b7 as IconHome, b8 as IconInfo, b9 as IconInsightBoard, ba as IconLayers, bb as IconListView, bc as IconLogout, bd as IconMail, be as IconMoon, bf as IconName, bg as IconOldWindow, bh as IconPanelRight, bi as IconPerson, bj as IconPlayCircle, bk as IconPlus, bl as IconPremium, bn as IconQueryEditor, bo as IconQueryStack, bp as IconRadar, bq as IconRecording, br as IconReplayFrame, bs as IconRobot, bt as IconRocket, bu as IconSave, bv as IconSearch, bw as IconSelectEvents, bx as IconShoppingCart, by as IconSpinner, bz as IconStar, bA as IconSubArrowRight, bB as IconSun, bC as IconSurveyCard, bD as IconSurveys, bE as IconSync, bF as IconTableChart, bG as IconTerminal, bH as IconToggle, bI as IconTrash, bJ as IconTuning, bK as IconUpload, bL as IconVolume, bM as IconVolumeOff, bN as Input, bO as InputProps, bP as InputSize, bQ as InputVariant, bR as Kbd, bS as KbdPlatform, bT as KbdProps, bU as KbdVariant, bV as Label, bW as LabelProps, bX as Lead, bY as LeadProps, bZ as Link, b_ as LinkProps, b$ as Loader, c0 as LoaderProps, c1 as LoaderSize, c2 as LoaderVariant, c3 as LoadingState, c4 as LoadingStateProps, c5 as Modal, c6 as ModalProps, c7 as ModalSize, c8 as Mono, c9 as MonoProps, ca as OLD_UI_ICONS, cb as Overline, cc as OverlineProps, cd as P, ce as PH_ICONS, cf as PH_ICON_ALIASES, cg as PProps, ch as Panel, ci as PanelProps, cj as Progress, ck as ProgressProps, cl as Radio, cm as RadioProps, cr as SearchInput, cs as SearchInputProps, ct as SectionTitle, cu as SectionTitleProps, cv as SegmentedControl, cw as SegmentedControlOption, cx as SegmentedControlProps, cy as Select, cz as SelectProps, cA as SettingsLayout, cB as SettingsLayoutProps, cC as SettingsNav, cD as SettingsNavGroup, cE as SettingsNavItem, cF as SettingsNavProps, cG as Skeleton, cH as SkeletonProps, cI as SkeletonShape, cJ as Small, cK as SmallProps, cL as SortMenu, cM as SortMenuProps, cN as Spinner, cO as SpinnerProps, cP as Stat, cQ as StatProps, cR as StatTone, cS as Table, cT as TableColumn, cU as TableProps, cV as TextBaseProps, cW as TextTone, cX as TextWeight, cY as Textarea, cZ as TextareaProps, c_ as ThemeDomSync, c$ as ThemeSwitcher, d0 as ThemeSwitcherProps, d1 as Toggle, d2 as ToggleProps, d3 as Tooltip, d4 as TooltipAlign, d5 as TooltipProps, d6 as TooltipProvider, d7 as TooltipProviderProps, d8 as TooltipSide } from './Chip-DKT-82Lf.mjs';
|
|
3
3
|
import * as react from 'react';
|
|
4
4
|
import { ReactNode } from 'react';
|
|
5
5
|
import '@radix-ui/react-dropdown-menu';
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { bm as IconProps } from './Chip-
|
|
2
|
-
export { A as Accordion, a as AccordionItem, b as AccordionProps, c as Alert, d as AlertProps, e as AlertStatus, f as AuthCard, g as AuthCardProps, h as AuthDivider, i as AuthDividerProps, j as AuthLayout, k as AuthLayoutProps, l as Avatar, m as AvatarGroup, n as AvatarGroupProps, o as AvatarProps, p as AvatarSize, q as AvatarStatus, B as Badge, r as BadgeProps, s as BadgeSize, t as BadgeVariant, u as Button, v as ButtonChrome, w as ButtonChromeProps, x as ButtonProps, y as ButtonShape, z as ButtonSize, C as ButtonVariant, D as CANONICAL_ICONS, E as Calendar, F as CalendarProps, G as CanonicalIconName, H as Caption, I as CaptionProps, J as Card, K as CardProps, L as CardVariant, M as Checkbox, N as CheckboxProps, O as Chip, P as ChipProps, Q as CommandItem, R as CommandPalette, S as CommandPaletteProps, T as Display, U as DisplayProps, V as Dot, W as DotProps, X as DropdownAlign, Y as DropdownButton, Z as DropdownButtonProps, _ as DropdownItem, $ as DropdownItemProps, a0 as DropdownMenu, a1 as DropdownMenuProps, a2 as DropdownRadioGroup, a3 as DropdownRadioGroupProps, a4 as DropdownRadioItem, a5 as DropdownRadioItemProps, a6 as DropdownSide, a7 as EmptyState, a8 as EmptyStateProps, a9 as FileUpload, aa as FileUploadProps, ab as FilterBar, ac as FilterBarProps, ad as FilterChip, ae as FilterChips, af as FilterChipsProps, ag as FilterMenu, ah as FilterMenuOption, ai as FilterMenuProps, aj as FormField, ak as FormFieldControlProps, al as FormFieldProps, am as H1, an as H1Props, ao as H2, ap as H2Props, aq as H3, ar as H3Props, as as H4, at as H4Props, au as H5, av as H5Props, aB as Icon, aw as IconActivity, ax as IconAliasName, ay as IconAreaChart, az as IconArrowDown, aA as IconArrowUp, aB as IconBase, aC as IconBell, aD as IconBellOff, aE as IconBolt, aF as IconBox, aG as IconByName, aH as IconCancel, aI as IconCheck, aJ as IconCheckCircle, aK as IconChevronDown, aL as IconChevronLeft, aM as IconChevronRight, aN as IconClipboardEdit, aO as IconClose, aP as IconCodePreview, aQ as IconCohort, aR as IconCommandCursor, aS as IconCopy, aT as IconCumulativeChart, aU as IconDataReel, aV as IconDatabase, aW as IconDownload, aX as IconEdit, aY as IconErrorOutline, aZ as IconEventStream, a_ as IconExclamation, a$ as IconExperimentSplit, b0 as IconFeatureGate, b1 as IconFlag, b2 as IconFlare, b3 as IconFlask, b4 as IconGift, b5 as IconGridView, b6 as IconHandClick, b7 as IconHome, b8 as IconInfo, b9 as IconInsightBoard, ba as IconLayers, bb as IconListView, bc as IconLogout, bd as IconMail, be as IconMoon, bf as IconName, bg as IconOldWindow, bh as IconPanelRight, bi as IconPerson, bj as IconPlayCircle, bk as IconPlus, bl as IconPremium, bn as IconQueryEditor, bo as IconQueryStack, bp as IconRadar, bq as IconRecording, br as IconReplayFrame, bs as IconRobot, bt as IconRocket, bu as IconSave, bv as IconSearch, bw as IconSelectEvents, bx as IconShoppingCart, by as IconSpinner, bz as IconStar, bA as IconSubArrowRight, bB as IconSun, bC as IconSurveyCard, bD as IconSurveys, bE as IconSync, bF as IconTableChart, bG as IconTerminal, bH as IconToggle, bI as IconTrash, bJ as IconTuning, bK as IconUpload, bL as IconVolume, bM as IconVolumeOff, bN as Input, bO as InputProps, bP as InputSize, bQ as InputVariant, bR as Kbd, bS as KbdPlatform, bT as KbdProps, bU as KbdVariant, bV as Label, bW as LabelProps, bX as Lead, bY as LeadProps, bZ as Link, b_ as LinkProps, b$ as Loader, c0 as LoaderProps, c1 as LoaderSize, c2 as LoaderVariant, c3 as LoadingState, c4 as LoadingStateProps, c5 as Modal, c6 as ModalProps, c7 as ModalSize, c8 as Mono, c9 as MonoProps, ca as OLD_UI_ICONS, cb as Overline, cc as OverlineProps, cd as P, ce as PH_ICONS, cf as PH_ICON_ALIASES, cg as PProps, ch as Panel, ci as PanelProps, cj as Progress, ck as ProgressProps, cl as Radio, cm as RadioProps, cr as SearchInput, cs as SearchInputProps, ct as SectionTitle, cu as SectionTitleProps, cv as SegmentedControl, cw as SegmentedControlOption, cx as SegmentedControlProps, cy as Select, cz as SelectProps, cA as SettingsLayout, cB as SettingsLayoutProps, cC as SettingsNav, cD as SettingsNavGroup, cE as SettingsNavItem, cF as SettingsNavProps, cG as Skeleton, cH as SkeletonProps, cI as SkeletonShape, cJ as Small, cK as SmallProps, cL as SortMenu, cM as SortMenuProps, cN as Spinner, cO as SpinnerProps, cP as Stat, cQ as StatProps, cR as StatTone, cS as Table, cT as TableColumn, cU as TableProps, cV as TextBaseProps, cW as TextTone, cX as TextWeight, cY as Textarea, cZ as TextareaProps, c_ as ThemeDomSync, c$ as ThemeSwitcher, d0 as ThemeSwitcherProps, d1 as Toggle, d2 as ToggleProps, d3 as Tooltip, d4 as TooltipAlign, d5 as TooltipProps, d6 as TooltipProvider, d7 as TooltipProviderProps, d8 as TooltipSide } from './Chip-
|
|
1
|
+
import { bm as IconProps } from './Chip-DKT-82Lf.js';
|
|
2
|
+
export { A as Accordion, a as AccordionItem, b as AccordionProps, c as Alert, d as AlertProps, e as AlertStatus, f as AuthCard, g as AuthCardProps, h as AuthDivider, i as AuthDividerProps, j as AuthLayout, k as AuthLayoutProps, l as Avatar, m as AvatarGroup, n as AvatarGroupProps, o as AvatarProps, p as AvatarSize, q as AvatarStatus, B as Badge, r as BadgeProps, s as BadgeSize, t as BadgeVariant, u as Button, v as ButtonChrome, w as ButtonChromeProps, x as ButtonProps, y as ButtonShape, z as ButtonSize, C as ButtonVariant, D as CANONICAL_ICONS, E as Calendar, F as CalendarProps, G as CanonicalIconName, H as Caption, I as CaptionProps, J as Card, K as CardProps, L as CardVariant, M as Checkbox, N as CheckboxProps, O as Chip, P as ChipProps, Q as CommandItem, R as CommandPalette, S as CommandPaletteProps, T as Display, U as DisplayProps, V as Dot, W as DotProps, X as DropdownAlign, Y as DropdownButton, Z as DropdownButtonProps, _ as DropdownItem, $ as DropdownItemProps, a0 as DropdownMenu, a1 as DropdownMenuProps, a2 as DropdownRadioGroup, a3 as DropdownRadioGroupProps, a4 as DropdownRadioItem, a5 as DropdownRadioItemProps, a6 as DropdownSide, a7 as EmptyState, a8 as EmptyStateProps, a9 as FileUpload, aa as FileUploadProps, ab as FilterBar, ac as FilterBarProps, ad as FilterChip, ae as FilterChips, af as FilterChipsProps, ag as FilterMenu, ah as FilterMenuOption, ai as FilterMenuProps, aj as FormField, ak as FormFieldControlProps, al as FormFieldProps, am as H1, an as H1Props, ao as H2, ap as H2Props, aq as H3, ar as H3Props, as as H4, at as H4Props, au as H5, av as H5Props, aB as Icon, aw as IconActivity, ax as IconAliasName, ay as IconAreaChart, az as IconArrowDown, aA as IconArrowUp, aB as IconBase, aC as IconBell, aD as IconBellOff, aE as IconBolt, aF as IconBox, aG as IconByName, aH as IconCancel, aI as IconCheck, aJ as IconCheckCircle, aK as IconChevronDown, aL as IconChevronLeft, aM as IconChevronRight, aN as IconClipboardEdit, aO as IconClose, aP as IconCodePreview, aQ as IconCohort, aR as IconCommandCursor, aS as IconCopy, aT as IconCumulativeChart, aU as IconDataReel, aV as IconDatabase, aW as IconDownload, aX as IconEdit, aY as IconErrorOutline, aZ as IconEventStream, a_ as IconExclamation, a$ as IconExperimentSplit, b0 as IconFeatureGate, b1 as IconFlag, b2 as IconFlare, b3 as IconFlask, b4 as IconGift, b5 as IconGridView, b6 as IconHandClick, b7 as IconHome, b8 as IconInfo, b9 as IconInsightBoard, ba as IconLayers, bb as IconListView, bc as IconLogout, bd as IconMail, be as IconMoon, bf as IconName, bg as IconOldWindow, bh as IconPanelRight, bi as IconPerson, bj as IconPlayCircle, bk as IconPlus, bl as IconPremium, bn as IconQueryEditor, bo as IconQueryStack, bp as IconRadar, bq as IconRecording, br as IconReplayFrame, bs as IconRobot, bt as IconRocket, bu as IconSave, bv as IconSearch, bw as IconSelectEvents, bx as IconShoppingCart, by as IconSpinner, bz as IconStar, bA as IconSubArrowRight, bB as IconSun, bC as IconSurveyCard, bD as IconSurveys, bE as IconSync, bF as IconTableChart, bG as IconTerminal, bH as IconToggle, bI as IconTrash, bJ as IconTuning, bK as IconUpload, bL as IconVolume, bM as IconVolumeOff, bN as Input, bO as InputProps, bP as InputSize, bQ as InputVariant, bR as Kbd, bS as KbdPlatform, bT as KbdProps, bU as KbdVariant, bV as Label, bW as LabelProps, bX as Lead, bY as LeadProps, bZ as Link, b_ as LinkProps, b$ as Loader, c0 as LoaderProps, c1 as LoaderSize, c2 as LoaderVariant, c3 as LoadingState, c4 as LoadingStateProps, c5 as Modal, c6 as ModalProps, c7 as ModalSize, c8 as Mono, c9 as MonoProps, ca as OLD_UI_ICONS, cb as Overline, cc as OverlineProps, cd as P, ce as PH_ICONS, cf as PH_ICON_ALIASES, cg as PProps, ch as Panel, ci as PanelProps, cj as Progress, ck as ProgressProps, cl as Radio, cm as RadioProps, cr as SearchInput, cs as SearchInputProps, ct as SectionTitle, cu as SectionTitleProps, cv as SegmentedControl, cw as SegmentedControlOption, cx as SegmentedControlProps, cy as Select, cz as SelectProps, cA as SettingsLayout, cB as SettingsLayoutProps, cC as SettingsNav, cD as SettingsNavGroup, cE as SettingsNavItem, cF as SettingsNavProps, cG as Skeleton, cH as SkeletonProps, cI as SkeletonShape, cJ as Small, cK as SmallProps, cL as SortMenu, cM as SortMenuProps, cN as Spinner, cO as SpinnerProps, cP as Stat, cQ as StatProps, cR as StatTone, cS as Table, cT as TableColumn, cU as TableProps, cV as TextBaseProps, cW as TextTone, cX as TextWeight, cY as Textarea, cZ as TextareaProps, c_ as ThemeDomSync, c$ as ThemeSwitcher, d0 as ThemeSwitcherProps, d1 as Toggle, d2 as ToggleProps, d3 as Tooltip, d4 as TooltipAlign, d5 as TooltipProps, d6 as TooltipProvider, d7 as TooltipProviderProps, d8 as TooltipSide } from './Chip-DKT-82Lf.js';
|
|
3
3
|
import * as react from 'react';
|
|
4
4
|
import { ReactNode } from 'react';
|
|
5
5
|
import '@radix-ui/react-dropdown-menu';
|
package/dist/index.js
CHANGED
|
@@ -1789,7 +1789,7 @@ var Input = (0, import_react10.forwardRef)(function Input2(_a, ref) {
|
|
|
1789
1789
|
"aria-label": revealed ? "Hide password" : "Show password",
|
|
1790
1790
|
"aria-pressed": revealed,
|
|
1791
1791
|
disabled,
|
|
1792
|
-
className: "
|
|
1792
|
+
className: "ph-field-icon-button",
|
|
1793
1793
|
children: revealed ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_iconoir_react.EyeClosed, { className: "h-4 w-4", "aria-hidden": true }) : /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_iconoir_react.Eye, { className: "h-4 w-4", "aria-hidden": true })
|
|
1794
1794
|
}
|
|
1795
1795
|
) : null
|
|
@@ -2179,7 +2179,7 @@ var import_jsx_runtime17 = require("react/jsx-runtime");
|
|
|
2179
2179
|
function Panel(_a) {
|
|
2180
2180
|
var _b = _a, { title, description, children, className } = _b, props = __objRest(_b, ["title", "description", "children", "className"]);
|
|
2181
2181
|
return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", __spreadProps(__spreadValues({ className: cn("ph-panel", className) }, props), { children: [
|
|
2182
|
-
title && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("h3", { className: "text-
|
|
2182
|
+
title && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("h3", { className: "text-lg font-semibold tracking-tight text-ph-ink", children: title }),
|
|
2183
2183
|
description && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("p", { className: "text-sm text-ph-subtle", children: description }),
|
|
2184
2184
|
children
|
|
2185
2185
|
] }));
|
|
@@ -2251,17 +2251,20 @@ function Table({
|
|
|
2251
2251
|
getRowStyle,
|
|
2252
2252
|
getRowKey,
|
|
2253
2253
|
className,
|
|
2254
|
-
caption
|
|
2254
|
+
caption,
|
|
2255
|
+
emptyState = "No data available."
|
|
2255
2256
|
}) {
|
|
2256
2257
|
return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
2257
2258
|
"div",
|
|
2258
2259
|
{
|
|
2259
2260
|
className: cn("ph-table-wrap", compact && "ph-table-compact", className),
|
|
2261
|
+
role: "region",
|
|
2262
|
+
"aria-label": caption != null ? caption : "Data table",
|
|
2260
2263
|
tabIndex: 0,
|
|
2261
2264
|
children: /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("table", { className: cn("ph-table", zebra && "ph-table-zebra", ribbon && "ph-table--ribbon"), children: [
|
|
2262
2265
|
caption && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("caption", { className: "sr-only", children: caption }),
|
|
2263
2266
|
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("thead", { children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("tr", { children: columns.map((col) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("th", { className: col.className, children: col.header }, col.key)) }) }),
|
|
2264
|
-
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("tbody", { children: data.map((row, i) => {
|
|
2267
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("tbody", { children: data.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("tr", { children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("td", { colSpan: columns.length, className: "ph-table-empty", children: emptyState }) }) : data.map((row, i) => {
|
|
2265
2268
|
var _a;
|
|
2266
2269
|
return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("tr", { style: getRowStyle == null ? void 0 : getRowStyle(row), children: columns.map((col) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("td", { className: col.className, children: col.cell(row) }, col.key)) }, (_a = getRowKey == null ? void 0 : getRowKey(row, i)) != null ? _a : i);
|
|
2267
2270
|
}) })
|
|
@@ -2512,14 +2515,11 @@ function Accordion({
|
|
|
2512
2515
|
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
2513
2516
|
"div",
|
|
2514
2517
|
{
|
|
2515
|
-
className: cn(
|
|
2516
|
-
"divide-y divide-ph-border rounded-xl border border-ph-border bg-ph-surface",
|
|
2517
|
-
className
|
|
2518
|
-
),
|
|
2518
|
+
className: cn("ph-accordion", className),
|
|
2519
2519
|
children: items.map((item) => {
|
|
2520
2520
|
const isOpen = openItems.has(item.id);
|
|
2521
2521
|
const contentId = `accordion-${idPrefix}-${item.id}-content`;
|
|
2522
|
-
return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { className: "
|
|
2522
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { className: "ph-accordion__item", children: [
|
|
2523
2523
|
/* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
|
|
2524
2524
|
"button",
|
|
2525
2525
|
{
|
|
@@ -2527,7 +2527,7 @@ function Accordion({
|
|
|
2527
2527
|
onClick: () => toggleItem(item.id),
|
|
2528
2528
|
"aria-expanded": isOpen,
|
|
2529
2529
|
"aria-controls": contentId,
|
|
2530
|
-
className: "
|
|
2530
|
+
className: "ph-accordion__trigger",
|
|
2531
2531
|
children: [
|
|
2532
2532
|
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { className: "font-semibold text-ph-ink", children: item.title }),
|
|
2533
2533
|
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
|
|
@@ -2551,7 +2551,7 @@ function Accordion({
|
|
|
2551
2551
|
if (node) node.toggleAttribute("inert", !isOpen);
|
|
2552
2552
|
},
|
|
2553
2553
|
className: cn(
|
|
2554
|
-
"grid transition-
|
|
2554
|
+
"grid transition-[grid-template-rows] duration-200",
|
|
2555
2555
|
isOpen ? "grid-rows-[1fr]" : "grid-rows-[0fr]"
|
|
2556
2556
|
),
|
|
2557
2557
|
children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "overflow-hidden", children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "px-5 pb-4 text-ph-subtle", children: item.content }) })
|
|
@@ -2564,27 +2564,68 @@ function Accordion({
|
|
|
2564
2564
|
}
|
|
2565
2565
|
|
|
2566
2566
|
// src/components/ui/SegmentedControl.tsx
|
|
2567
|
+
var import_react16 = require("react");
|
|
2567
2568
|
var import_jsx_runtime23 = require("react/jsx-runtime");
|
|
2568
|
-
function SegmentedControl({
|
|
2569
|
+
function SegmentedControl({
|
|
2570
|
+
options,
|
|
2571
|
+
value,
|
|
2572
|
+
onChange,
|
|
2573
|
+
className,
|
|
2574
|
+
"aria-label": ariaLabel
|
|
2575
|
+
}) {
|
|
2576
|
+
const itemRefs = (0, import_react16.useRef)([]);
|
|
2577
|
+
const selectedIndex = options.findIndex((option) => option.value === value);
|
|
2578
|
+
const handleKeyDown = (event, index) => {
|
|
2579
|
+
var _a;
|
|
2580
|
+
let nextIndex;
|
|
2581
|
+
switch (event.key) {
|
|
2582
|
+
case "ArrowLeft":
|
|
2583
|
+
case "ArrowUp":
|
|
2584
|
+
nextIndex = (index - 1 + options.length) % options.length;
|
|
2585
|
+
break;
|
|
2586
|
+
case "ArrowRight":
|
|
2587
|
+
case "ArrowDown":
|
|
2588
|
+
nextIndex = (index + 1) % options.length;
|
|
2589
|
+
break;
|
|
2590
|
+
case "Home":
|
|
2591
|
+
nextIndex = 0;
|
|
2592
|
+
break;
|
|
2593
|
+
case "End":
|
|
2594
|
+
nextIndex = options.length - 1;
|
|
2595
|
+
break;
|
|
2596
|
+
default:
|
|
2597
|
+
return;
|
|
2598
|
+
}
|
|
2599
|
+
event.preventDefault();
|
|
2600
|
+
const nextOption = options[nextIndex];
|
|
2601
|
+
if (!nextOption) return;
|
|
2602
|
+
onChange(nextOption.value);
|
|
2603
|
+
(_a = itemRefs.current[nextIndex]) == null ? void 0 : _a.focus();
|
|
2604
|
+
};
|
|
2569
2605
|
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
2570
2606
|
"div",
|
|
2571
2607
|
{
|
|
2572
|
-
|
|
2573
|
-
|
|
2574
|
-
|
|
2575
|
-
),
|
|
2576
|
-
children: options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
|
|
2608
|
+
role: "radiogroup",
|
|
2609
|
+
"aria-label": ariaLabel,
|
|
2610
|
+
className: cn("ph-segmented-control", className),
|
|
2611
|
+
children: options.map((option, index) => /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
|
|
2577
2612
|
"button",
|
|
2578
2613
|
{
|
|
2614
|
+
ref: (node) => {
|
|
2615
|
+
itemRefs.current[index] = node;
|
|
2616
|
+
},
|
|
2579
2617
|
type: "button",
|
|
2580
|
-
"
|
|
2618
|
+
role: "radio",
|
|
2619
|
+
"aria-checked": value === option.value,
|
|
2620
|
+
tabIndex: selectedIndex === index || selectedIndex < 0 && index === 0 ? 0 : -1,
|
|
2581
2621
|
onClick: () => onChange(option.value),
|
|
2622
|
+
onKeyDown: (event) => handleKeyDown(event, index),
|
|
2582
2623
|
className: cn(
|
|
2583
|
-
"
|
|
2584
|
-
value === option.value
|
|
2624
|
+
"ph-segmented-control__item",
|
|
2625
|
+
value === option.value && "ph-segmented-control__item--selected"
|
|
2585
2626
|
),
|
|
2586
2627
|
children: [
|
|
2587
|
-
option.icon && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("span", { className: "h-4 w-4", children: option.icon }),
|
|
2628
|
+
option.icon && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("span", { className: "h-4 w-4", "aria-hidden": true, children: option.icon }),
|
|
2588
2629
|
option.label
|
|
2589
2630
|
]
|
|
2590
2631
|
},
|
|
@@ -2595,7 +2636,7 @@ function SegmentedControl({ options, value, onChange, className }) {
|
|
|
2595
2636
|
}
|
|
2596
2637
|
|
|
2597
2638
|
// src/components/ui/CommandPalette.tsx
|
|
2598
|
-
var
|
|
2639
|
+
var import_react17 = require("react");
|
|
2599
2640
|
var Dialog2 = __toESM(require("@radix-ui/react-dialog"));
|
|
2600
2641
|
var import_jsx_runtime24 = require("react/jsx-runtime");
|
|
2601
2642
|
function CommandPalette({
|
|
@@ -2609,27 +2650,27 @@ function CommandPalette({
|
|
|
2609
2650
|
inputId,
|
|
2610
2651
|
inputDataTest
|
|
2611
2652
|
}) {
|
|
2612
|
-
const [query, setQuery] = (0,
|
|
2613
|
-
const [selectedIndex, setSelectedIndex] = (0,
|
|
2614
|
-
const inputRef = (0,
|
|
2615
|
-
const listboxRef = (0,
|
|
2616
|
-
const restoreFocusRef = (0,
|
|
2617
|
-
const generatedId = (0,
|
|
2653
|
+
const [query, setQuery] = (0, import_react17.useState)("");
|
|
2654
|
+
const [selectedIndex, setSelectedIndex] = (0, import_react17.useState)(0);
|
|
2655
|
+
const inputRef = (0, import_react17.useRef)(null);
|
|
2656
|
+
const listboxRef = (0, import_react17.useRef)(null);
|
|
2657
|
+
const restoreFocusRef = (0, import_react17.useRef)(null);
|
|
2658
|
+
const generatedId = (0, import_react17.useId)();
|
|
2618
2659
|
const listboxId = `${id != null ? id : `command-palette-${generatedId}`}-listbox`;
|
|
2619
2660
|
const filtered = items.filter(
|
|
2620
2661
|
(item) => item.label.toLowerCase().includes(query.toLowerCase())
|
|
2621
2662
|
);
|
|
2622
2663
|
const activeIndex = filtered.length ? Math.min(selectedIndex, filtered.length - 1) : 0;
|
|
2623
2664
|
const activeItem = filtered[activeIndex];
|
|
2624
|
-
(0,
|
|
2665
|
+
(0, import_react17.useEffect)(() => {
|
|
2625
2666
|
if (!isOpen) return;
|
|
2626
2667
|
setQuery("");
|
|
2627
2668
|
setSelectedIndex(0);
|
|
2628
2669
|
}, [isOpen]);
|
|
2629
|
-
(0,
|
|
2670
|
+
(0, import_react17.useEffect)(() => {
|
|
2630
2671
|
setSelectedIndex((current) => Math.min(current, Math.max(filtered.length - 1, 0)));
|
|
2631
2672
|
}, [filtered.length]);
|
|
2632
|
-
(0,
|
|
2673
|
+
(0, import_react17.useEffect)(() => {
|
|
2633
2674
|
var _a, _b;
|
|
2634
2675
|
if (!isOpen || !activeItem) return;
|
|
2635
2676
|
(_b = (_a = listboxRef.current) == null ? void 0 : _a.querySelectorAll('[role="option"]')[activeIndex]) == null ? void 0 : _b.scrollIntoView({ block: "nearest" });
|
|
@@ -2671,16 +2712,13 @@ function CommandPalette({
|
|
|
2671
2712
|
{
|
|
2672
2713
|
id,
|
|
2673
2714
|
"data-test": dataTest,
|
|
2674
|
-
className: "
|
|
2715
|
+
className: "ph-command-palette__overlay"
|
|
2675
2716
|
}
|
|
2676
2717
|
),
|
|
2677
2718
|
/* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
|
|
2678
2719
|
Dialog2.Content,
|
|
2679
2720
|
{
|
|
2680
|
-
className: cn(
|
|
2681
|
-
"fixed left-1/2 top-[20vh] z-50 w-full max-w-xl -translate-x-1/2 overflow-hidden rounded-xl border border-ph-border bg-ph-surface shadow-ph-md",
|
|
2682
|
-
className
|
|
2683
|
-
),
|
|
2721
|
+
className: cn("ph-command-palette", className),
|
|
2684
2722
|
onOpenAutoFocus: (event) => {
|
|
2685
2723
|
var _a;
|
|
2686
2724
|
restoreFocusRef.current = document.activeElement instanceof HTMLElement ? document.activeElement : null;
|
|
@@ -2694,7 +2732,7 @@ function CommandPalette({
|
|
|
2694
2732
|
},
|
|
2695
2733
|
children: [
|
|
2696
2734
|
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(Dialog2.Title, { className: "sr-only", children: "Command palette" }),
|
|
2697
|
-
/* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: "
|
|
2735
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { className: "ph-command-palette__search", children: [
|
|
2698
2736
|
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(IconSearch, { className: "h-5 w-5 text-ph-mutedtext" }),
|
|
2699
2737
|
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
2700
2738
|
"input",
|
|
@@ -2719,7 +2757,7 @@ function CommandPalette({
|
|
|
2719
2757
|
className: "flex-1 bg-transparent text-ph-ink outline-none placeholder:text-ph-mutedtext"
|
|
2720
2758
|
}
|
|
2721
2759
|
),
|
|
2722
|
-
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("kbd", { "aria-hidden": "true", className: "
|
|
2760
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("kbd", { "aria-hidden": "true", className: "ph-keycap", children: "ESC" })
|
|
2723
2761
|
] }),
|
|
2724
2762
|
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { ref: listboxRef, id: listboxId, role: "listbox", "aria-label": "Commands", className: "max-h-[50vh] overflow-y-auto py-2", children: filtered.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { role: "status", className: "px-4 py-8 text-center text-sm text-ph-mutedtext", children: "No results found." }) : filtered.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
|
|
2725
2763
|
"div",
|
|
@@ -2734,13 +2772,13 @@ function CommandPalette({
|
|
|
2734
2772
|
},
|
|
2735
2773
|
onMouseEnter: () => setSelectedIndex(index),
|
|
2736
2774
|
className: cn(
|
|
2737
|
-
"
|
|
2738
|
-
index === activeIndex ? "
|
|
2775
|
+
"ph-command-palette__option",
|
|
2776
|
+
index === activeIndex ? "ph-command-palette__option--selected" : "text-ph-subtle"
|
|
2739
2777
|
),
|
|
2740
2778
|
children: [
|
|
2741
2779
|
item.icon && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { "aria-hidden": "true", className: "h-5 w-5", children: item.icon }),
|
|
2742
2780
|
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { className: "flex-1", children: item.label }),
|
|
2743
|
-
item.shortcut && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("kbd", { "aria-hidden": "true", className: "
|
|
2781
|
+
item.shortcut && /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("kbd", { "aria-hidden": "true", className: "ph-keycap text-ph-mutedtext", children: item.shortcut })
|
|
2744
2782
|
]
|
|
2745
2783
|
},
|
|
2746
2784
|
item.id
|
|
@@ -2754,7 +2792,7 @@ function CommandPalette({
|
|
|
2754
2792
|
}
|
|
2755
2793
|
|
|
2756
2794
|
// src/components/ui/Calendar.tsx
|
|
2757
|
-
var
|
|
2795
|
+
var import_react18 = require("react");
|
|
2758
2796
|
var import_jsx_runtime25 = require("react/jsx-runtime");
|
|
2759
2797
|
var monthNames = [
|
|
2760
2798
|
"January",
|
|
@@ -2812,19 +2850,19 @@ function dateLabel(date) {
|
|
|
2812
2850
|
return `${fullWeekDays[date.getDay()]}, ${date.getDate()} ${monthNames[date.getMonth()]} ${date.getFullYear()}`;
|
|
2813
2851
|
}
|
|
2814
2852
|
function Calendar({ value, onChange, className }) {
|
|
2815
|
-
const [currentMonth, setCurrentMonth] = (0,
|
|
2816
|
-
const [focusedDate, setFocusedDate] = (0,
|
|
2817
|
-
const gridRef = (0,
|
|
2818
|
-
const shouldFocusDateRef = (0,
|
|
2819
|
-
const monthLabelId = (0,
|
|
2853
|
+
const [currentMonth, setCurrentMonth] = (0, import_react18.useState)(() => startOfMonth(value != null ? value : /* @__PURE__ */ new Date()));
|
|
2854
|
+
const [focusedDate, setFocusedDate] = (0, import_react18.useState)(() => startOfDay(value != null ? value : /* @__PURE__ */ new Date()));
|
|
2855
|
+
const gridRef = (0, import_react18.useRef)(null);
|
|
2856
|
+
const shouldFocusDateRef = (0, import_react18.useRef)(false);
|
|
2857
|
+
const monthLabelId = (0, import_react18.useId)();
|
|
2820
2858
|
const today = startOfDay(/* @__PURE__ */ new Date());
|
|
2821
|
-
(0,
|
|
2859
|
+
(0, import_react18.useEffect)(() => {
|
|
2822
2860
|
if (!value) return;
|
|
2823
2861
|
const nextDate = startOfDay(value);
|
|
2824
2862
|
setCurrentMonth(startOfMonth(nextDate));
|
|
2825
2863
|
setFocusedDate(nextDate);
|
|
2826
2864
|
}, [value]);
|
|
2827
|
-
(0,
|
|
2865
|
+
(0, import_react18.useEffect)(() => {
|
|
2828
2866
|
var _a, _b;
|
|
2829
2867
|
if (!shouldFocusDateRef.current) return;
|
|
2830
2868
|
(_b = (_a = gridRef.current) == null ? void 0 : _a.querySelector(`[data-date="${dateKey(focusedDate)}"]`)) == null ? void 0 : _b.focus();
|
|
@@ -2893,7 +2931,7 @@ function Calendar({ value, onChange, className }) {
|
|
|
2893
2931
|
while (days.length < 42) {
|
|
2894
2932
|
days.push(null);
|
|
2895
2933
|
}
|
|
2896
|
-
return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: cn("w-[280px]
|
|
2934
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: cn("ph-calendar w-[280px] p-4", className), children: [
|
|
2897
2935
|
/* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { className: "mb-4 flex items-center justify-between", children: [
|
|
2898
2936
|
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
2899
2937
|
"button",
|
|
@@ -2901,7 +2939,7 @@ function Calendar({ value, onChange, className }) {
|
|
|
2901
2939
|
type: "button",
|
|
2902
2940
|
onClick: () => changeMonth(-1),
|
|
2903
2941
|
"aria-label": "Previous month",
|
|
2904
|
-
className: "
|
|
2942
|
+
className: "ph-calendar__nav",
|
|
2905
2943
|
children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(IconChevronLeft, { className: "h-5 w-5", "aria-hidden": true })
|
|
2906
2944
|
}
|
|
2907
2945
|
),
|
|
@@ -2916,7 +2954,7 @@ function Calendar({ value, onChange, className }) {
|
|
|
2916
2954
|
type: "button",
|
|
2917
2955
|
onClick: () => changeMonth(1),
|
|
2918
2956
|
"aria-label": "Next month",
|
|
2919
|
-
className: "
|
|
2957
|
+
className: "ph-calendar__nav",
|
|
2920
2958
|
children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(IconChevronRight, { className: "h-5 w-5", "aria-hidden": true })
|
|
2921
2959
|
}
|
|
2922
2960
|
)
|
|
@@ -2953,8 +2991,8 @@ function Calendar({ value, onChange, className }) {
|
|
|
2953
2991
|
onClick: () => handleSelect(date),
|
|
2954
2992
|
onKeyDown: (event) => handleDayKeyDown(event, date),
|
|
2955
2993
|
className: cn(
|
|
2956
|
-
"
|
|
2957
|
-
value && isSameDay(value, date) ? "
|
|
2994
|
+
"ph-calendar__day",
|
|
2995
|
+
value && isSameDay(value, date) ? "ph-calendar__day--selected" : isSameDay(today, date) ? "ph-calendar__day--today" : void 0
|
|
2958
2996
|
),
|
|
2959
2997
|
children: date.getDate()
|
|
2960
2998
|
}
|
|
@@ -2969,10 +3007,10 @@ function Calendar({ value, onChange, className }) {
|
|
|
2969
3007
|
}
|
|
2970
3008
|
|
|
2971
3009
|
// src/components/ui/Tooltip.tsx
|
|
2972
|
-
var
|
|
3010
|
+
var import_react19 = require("react");
|
|
2973
3011
|
var import_react_dom = require("react-dom");
|
|
2974
3012
|
var import_jsx_runtime26 = require("react/jsx-runtime");
|
|
2975
|
-
var TooltipDelayContext = (0,
|
|
3013
|
+
var TooltipDelayContext = (0, import_react19.createContext)(0);
|
|
2976
3014
|
function TooltipProvider({
|
|
2977
3015
|
children,
|
|
2978
3016
|
delayDuration = 0
|
|
@@ -3004,13 +3042,13 @@ function Tooltip({
|
|
|
3004
3042
|
delayDuration,
|
|
3005
3043
|
disableHoverableContent = false
|
|
3006
3044
|
}) {
|
|
3007
|
-
const providerDelay = (0,
|
|
3008
|
-
const generatedId = (0,
|
|
3009
|
-
const triggerRef = (0,
|
|
3010
|
-
const contentRef = (0,
|
|
3011
|
-
const timerRef = (0,
|
|
3012
|
-
const [internalOpen, setInternalOpen] = (0,
|
|
3013
|
-
const [position, setPosition] = (0,
|
|
3045
|
+
const providerDelay = (0, import_react19.useContext)(TooltipDelayContext);
|
|
3046
|
+
const generatedId = (0, import_react19.useId)().replace(/:/g, "");
|
|
3047
|
+
const triggerRef = (0, import_react19.useRef)(null);
|
|
3048
|
+
const contentRef = (0, import_react19.useRef)(null);
|
|
3049
|
+
const timerRef = (0, import_react19.useRef)(null);
|
|
3050
|
+
const [internalOpen, setInternalOpen] = (0, import_react19.useState)(defaultOpen);
|
|
3051
|
+
const [position, setPosition] = (0, import_react19.useState)(null);
|
|
3014
3052
|
const isOpen = open != null ? open : internalOpen;
|
|
3015
3053
|
const triggerId = children.props.id;
|
|
3016
3054
|
const tooltipId = triggerId ? `${triggerId}-tooltip` : `ph-tooltip-${generatedId}`;
|
|
@@ -3022,7 +3060,7 @@ function Tooltip({
|
|
|
3022
3060
|
if (timerRef.current) clearTimeout(timerRef.current);
|
|
3023
3061
|
timerRef.current = null;
|
|
3024
3062
|
}
|
|
3025
|
-
const updatePosition = (0,
|
|
3063
|
+
const updatePosition = (0, import_react19.useCallback)(() => {
|
|
3026
3064
|
if (!triggerRef.current || !contentRef.current) return;
|
|
3027
3065
|
setPosition(
|
|
3028
3066
|
tooltipPosition(
|
|
@@ -3054,10 +3092,10 @@ function Tooltip({
|
|
|
3054
3092
|
clearTimer();
|
|
3055
3093
|
timerRef.current = setTimeout(() => setOpen(false), 100);
|
|
3056
3094
|
}
|
|
3057
|
-
(0,
|
|
3095
|
+
(0, import_react19.useLayoutEffect)(() => {
|
|
3058
3096
|
if (isOpen) updatePosition();
|
|
3059
3097
|
}, [isOpen, updatePosition]);
|
|
3060
|
-
(0,
|
|
3098
|
+
(0, import_react19.useEffect)(() => {
|
|
3061
3099
|
if (!isOpen) return;
|
|
3062
3100
|
const reposition = () => updatePosition();
|
|
3063
3101
|
window.addEventListener("resize", reposition);
|
|
@@ -3067,9 +3105,9 @@ function Tooltip({
|
|
|
3067
3105
|
window.removeEventListener("scroll", reposition, true);
|
|
3068
3106
|
};
|
|
3069
3107
|
}, [isOpen, updatePosition]);
|
|
3070
|
-
(0,
|
|
3108
|
+
(0, import_react19.useEffect)(() => () => clearTimer(), []);
|
|
3071
3109
|
const describedBy = [children.props["aria-describedby"], tooltipId].filter(Boolean).join(" ");
|
|
3072
|
-
const trigger = (0,
|
|
3110
|
+
const trigger = (0, import_react19.cloneElement)(children, { "aria-describedby": describedBy });
|
|
3073
3111
|
return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_jsx_runtime26.Fragment, { children: [
|
|
3074
3112
|
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
3075
3113
|
"span",
|
|
@@ -3123,11 +3161,11 @@ function EmptyState({ icon, title, description, action, className }) {
|
|
|
3123
3161
|
"div",
|
|
3124
3162
|
{
|
|
3125
3163
|
className: cn(
|
|
3126
|
-
"
|
|
3164
|
+
"ph-empty-state",
|
|
3127
3165
|
className
|
|
3128
3166
|
),
|
|
3129
3167
|
children: [
|
|
3130
|
-
icon && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: "
|
|
3168
|
+
icon && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: "ph-empty-state__icon", children: icon }),
|
|
3131
3169
|
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)("h2", { className: "text-base font-semibold text-ph-ink", children: title }),
|
|
3132
3170
|
description && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("p", { className: "mt-1 max-w-sm text-sm text-ph-subtle", children: description }),
|
|
3133
3171
|
action && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: "mt-4", children: action })
|
|
@@ -3304,7 +3342,7 @@ function getOptionText(option) {
|
|
|
3304
3342
|
}
|
|
3305
3343
|
|
|
3306
3344
|
// src/components/ui/Typography.tsx
|
|
3307
|
-
var
|
|
3345
|
+
var import_react20 = require("react");
|
|
3308
3346
|
var import_jsx_runtime30 = require("react/jsx-runtime");
|
|
3309
3347
|
var toneMap2 = {
|
|
3310
3348
|
default: "text-ph-ink",
|
|
@@ -3327,64 +3365,65 @@ var weightMap = {
|
|
|
3327
3365
|
function textClass(base, tone, weight, truncate, className) {
|
|
3328
3366
|
return cn(base, toneMap2[tone], weight && weightMap[weight], truncate && "truncate", className);
|
|
3329
3367
|
}
|
|
3330
|
-
var Display = (0,
|
|
3368
|
+
var Display = (0, import_react20.forwardRef)(function Display2(_a, ref) {
|
|
3331
3369
|
var _b = _a, { children, tone = "default", weight, truncate, className } = _b, props = __objRest(_b, ["children", "tone", "weight", "truncate", "className"]);
|
|
3332
3370
|
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("h1", __spreadProps(__spreadValues({ ref }, props), { className: textClass("ph-hero-title", tone, weight, truncate, className), children }));
|
|
3333
3371
|
});
|
|
3334
|
-
var SectionTitle = (0,
|
|
3372
|
+
var SectionTitle = (0, import_react20.forwardRef)(function SectionTitle2(_a, ref) {
|
|
3335
3373
|
var _b = _a, { children, tone = "default", weight, truncate, className } = _b, props = __objRest(_b, ["children", "tone", "weight", "truncate", "className"]);
|
|
3336
3374
|
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("h2", __spreadProps(__spreadValues({ ref }, props), { className: textClass("ph-section-title", tone, weight, truncate, className), children }));
|
|
3337
3375
|
});
|
|
3338
|
-
var H1 = (0,
|
|
3376
|
+
var H1 = (0, import_react20.forwardRef)(function H12(_a, ref) {
|
|
3339
3377
|
var _b = _a, { children, tone = "default", weight, truncate, className } = _b, props = __objRest(_b, ["children", "tone", "weight", "truncate", "className"]);
|
|
3340
|
-
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("h1", __spreadProps(__spreadValues({ ref }, props), { className: textClass("
|
|
3378
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("h1", __spreadProps(__spreadValues({ ref }, props), { className: textClass("ph-page-title font-bold", tone, weight, truncate, className), children }));
|
|
3341
3379
|
});
|
|
3342
|
-
var H2 = (0,
|
|
3380
|
+
var H2 = (0, import_react20.forwardRef)(function H22(_a, ref) {
|
|
3343
3381
|
var _b = _a, { children, tone = "default", weight, truncate, className } = _b, props = __objRest(_b, ["children", "tone", "weight", "truncate", "className"]);
|
|
3344
|
-
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("h2", __spreadProps(__spreadValues({ ref }, props), { className: textClass("text-2xl font-
|
|
3382
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("h2", __spreadProps(__spreadValues({ ref }, props), { className: textClass("text-2xl font-semibold tracking-tight", tone, weight, truncate, className), children }));
|
|
3345
3383
|
});
|
|
3346
|
-
var H3 = (0,
|
|
3384
|
+
var H3 = (0, import_react20.forwardRef)(function H32(_a, ref) {
|
|
3347
3385
|
var _b = _a, { children, tone = "default", weight, truncate, className } = _b, props = __objRest(_b, ["children", "tone", "weight", "truncate", "className"]);
|
|
3348
3386
|
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("h3", __spreadProps(__spreadValues({ ref }, props), { className: textClass("text-xl font-semibold", tone, weight, truncate, className), children }));
|
|
3349
3387
|
});
|
|
3350
|
-
var H4 = (0,
|
|
3388
|
+
var H4 = (0, import_react20.forwardRef)(function H42(_a, ref) {
|
|
3351
3389
|
var _b = _a, { children, tone = "default", weight, truncate, className } = _b, props = __objRest(_b, ["children", "tone", "weight", "truncate", "className"]);
|
|
3352
3390
|
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("h4", __spreadProps(__spreadValues({ ref }, props), { className: textClass("text-lg font-semibold", tone, weight, truncate, className), children }));
|
|
3353
3391
|
});
|
|
3354
|
-
var H5 = (0,
|
|
3392
|
+
var H5 = (0, import_react20.forwardRef)(function H52(_a, ref) {
|
|
3355
3393
|
var _b = _a, { children, tone = "default", weight, truncate, className } = _b, props = __objRest(_b, ["children", "tone", "weight", "truncate", "className"]);
|
|
3356
3394
|
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("h5", __spreadProps(__spreadValues({ ref }, props), { className: textClass("text-base font-semibold", tone, weight, truncate, className), children }));
|
|
3357
3395
|
});
|
|
3358
|
-
var P = (0,
|
|
3396
|
+
var P = (0, import_react20.forwardRef)(function P2(_a, ref) {
|
|
3359
3397
|
var _b = _a, { children, tone = "default", weight, truncate, className } = _b, props = __objRest(_b, ["children", "tone", "weight", "truncate", "className"]);
|
|
3360
3398
|
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("p", __spreadProps(__spreadValues({ ref }, props), { className: textClass("text-base leading-relaxed", tone, weight, truncate, className), children }));
|
|
3361
3399
|
});
|
|
3362
|
-
var Small = (0,
|
|
3400
|
+
var Small = (0, import_react20.forwardRef)(function Small2(_a, ref) {
|
|
3363
3401
|
var _b = _a, { children, tone = "default", weight, truncate, className } = _b, props = __objRest(_b, ["children", "tone", "weight", "truncate", "className"]);
|
|
3364
3402
|
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("span", __spreadProps(__spreadValues({ ref }, props), { className: textClass("text-sm leading-relaxed", tone, weight, truncate, className), children }));
|
|
3365
3403
|
});
|
|
3366
|
-
var Caption = (0,
|
|
3404
|
+
var Caption = (0, import_react20.forwardRef)(function Caption2(_a, ref) {
|
|
3367
3405
|
var _b = _a, { children, tone = "muted", weight, truncate, className } = _b, props = __objRest(_b, ["children", "tone", "weight", "truncate", "className"]);
|
|
3368
|
-
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("span", __spreadProps(__spreadValues({ ref }, props), { className: textClass("text-
|
|
3406
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("span", __spreadProps(__spreadValues({ ref }, props), { className: textClass("text-xs font-medium", tone, weight, truncate, className), children }));
|
|
3369
3407
|
});
|
|
3370
|
-
var Overline = (0,
|
|
3408
|
+
var Overline = (0, import_react20.forwardRef)(function Overline2(_a, ref) {
|
|
3371
3409
|
var _b = _a, { children, tone = "muted", weight, truncate, className } = _b, props = __objRest(_b, ["children", "tone", "weight", "truncate", "className"]);
|
|
3372
|
-
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("span", __spreadProps(__spreadValues({ ref }, props), { className: textClass("text-[
|
|
3410
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("span", __spreadProps(__spreadValues({ ref }, props), { className: textClass("text-[length:var(--ph-type-overline)] font-semibold uppercase tracking-[0.08em]", tone, weight, truncate, className), children }));
|
|
3373
3411
|
});
|
|
3374
|
-
var Lead = (0,
|
|
3412
|
+
var Lead = (0, import_react20.forwardRef)(function Lead2(_a, ref) {
|
|
3375
3413
|
var _b = _a, { children, tone = "subtle", weight, truncate, className } = _b, props = __objRest(_b, ["children", "tone", "weight", "truncate", "className"]);
|
|
3376
3414
|
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("p", __spreadProps(__spreadValues({ ref }, props), { className: textClass("ph-lead", tone, weight, truncate, className), children }));
|
|
3377
3415
|
});
|
|
3378
|
-
var Mono = (0,
|
|
3416
|
+
var Mono = (0, import_react20.forwardRef)(function Mono2(_a, ref) {
|
|
3379
3417
|
var _b = _a, { children, tone = "default", weight, truncate, className } = _b, props = __objRest(_b, ["children", "tone", "weight", "truncate", "className"]);
|
|
3380
3418
|
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("code", __spreadProps(__spreadValues({ ref }, props), { className: textClass("text-sm font-mono leading-relaxed", tone, weight, truncate, className), children }));
|
|
3381
3419
|
});
|
|
3382
|
-
var Label = (0,
|
|
3420
|
+
var Label = (0, import_react20.forwardRef)(function Label2(_a, ref) {
|
|
3383
3421
|
var _b = _a, { children, tone = "default", weight, truncate, className } = _b, props = __objRest(_b, ["children", "tone", "weight", "truncate", "className"]);
|
|
3384
3422
|
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("label", __spreadProps(__spreadValues({ ref }, props), { className: textClass("text-sm font-medium", tone, weight, truncate, className), children }));
|
|
3385
3423
|
});
|
|
3386
3424
|
|
|
3387
3425
|
// src/components/ui/Avatar.tsx
|
|
3426
|
+
var import_react21 = require("react");
|
|
3388
3427
|
var import_jsx_runtime31 = require("react/jsx-runtime");
|
|
3389
3428
|
var sizeMap4 = {
|
|
3390
3429
|
xs: "h-8 w-8 text-[10px]",
|
|
@@ -3404,7 +3443,7 @@ function Avatar(_a) {
|
|
|
3404
3443
|
label,
|
|
3405
3444
|
icon,
|
|
3406
3445
|
size = "md",
|
|
3407
|
-
color = "bg-ph-brand text-
|
|
3446
|
+
color = "bg-ph-brand text-[var(--ph-on-accent)]",
|
|
3408
3447
|
status,
|
|
3409
3448
|
badge,
|
|
3410
3449
|
className
|
|
@@ -3422,7 +3461,7 @@ function Avatar(_a) {
|
|
|
3422
3461
|
"div",
|
|
3423
3462
|
{
|
|
3424
3463
|
className: cn(
|
|
3425
|
-
"flex items-center justify-center rounded-full border border-ph-border font-bold
|
|
3464
|
+
"ph-avatar flex items-center justify-center rounded-full border border-ph-border font-bold",
|
|
3426
3465
|
sizeMap4[size],
|
|
3427
3466
|
color
|
|
3428
3467
|
),
|
|
@@ -3440,12 +3479,12 @@ function Avatar(_a) {
|
|
|
3440
3479
|
)
|
|
3441
3480
|
}
|
|
3442
3481
|
),
|
|
3443
|
-
badge && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("span", { className: "absolute -bottom-1 -right-1 flex min-w-[22px] items-center justify-center rounded-full bg-ph-brand px-1.5 py-px text-[10px] font-bold text-
|
|
3482
|
+
badge && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("span", { className: "absolute -bottom-1 -right-1 flex min-w-[22px] items-center justify-center rounded-full bg-ph-brand px-1.5 py-px text-[10px] font-bold text-[var(--ph-on-accent)]", children: badge })
|
|
3444
3483
|
] }));
|
|
3445
3484
|
}
|
|
3446
3485
|
function AvatarGroup(_a) {
|
|
3447
3486
|
var _b = _a, { children, max, className } = _b, props = __objRest(_b, ["children", "max", "className"]);
|
|
3448
|
-
const items =
|
|
3487
|
+
const items = import_react21.Children.toArray(children);
|
|
3449
3488
|
const visible = max ? items.slice(0, max) : items;
|
|
3450
3489
|
const remaining = max ? items.length - max : 0;
|
|
3451
3490
|
return /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("div", __spreadProps(__spreadValues({ className: cn("-space-x-3 flex rtl:space-x-reverse", className) }, props), { children: [
|
|
@@ -3462,7 +3501,7 @@ function AvatarGroup(_a) {
|
|
|
3462
3501
|
}
|
|
3463
3502
|
|
|
3464
3503
|
// src/components/ui/Progress.tsx
|
|
3465
|
-
var
|
|
3504
|
+
var import_react22 = require("react");
|
|
3466
3505
|
var import_jsx_runtime32 = require("react/jsx-runtime");
|
|
3467
3506
|
var sizeMap5 = {
|
|
3468
3507
|
sm: "h-1",
|
|
@@ -3491,7 +3530,7 @@ function Progress(_a) {
|
|
|
3491
3530
|
"aria-label",
|
|
3492
3531
|
"aria-labelledby"
|
|
3493
3532
|
]);
|
|
3494
|
-
const labelId = (0,
|
|
3533
|
+
const labelId = (0, import_react22.useId)();
|
|
3495
3534
|
const safeMax = Number.isFinite(max) && max > 0 ? max : 100;
|
|
3496
3535
|
const safeValue = Number.isFinite(value) ? Math.min(safeMax, Math.max(0, value)) : 0;
|
|
3497
3536
|
const percentage = safeValue / safeMax * 100;
|
|
@@ -3520,9 +3559,9 @@ function Progress(_a) {
|
|
|
3520
3559
|
}
|
|
3521
3560
|
|
|
3522
3561
|
// src/components/ui/Link.tsx
|
|
3523
|
-
var
|
|
3562
|
+
var import_react23 = require("react");
|
|
3524
3563
|
var import_jsx_runtime33 = require("react/jsx-runtime");
|
|
3525
|
-
var Link = (0,
|
|
3564
|
+
var Link = (0, import_react23.forwardRef)(function Link2(_a, ref) {
|
|
3526
3565
|
var _b = _a, {
|
|
3527
3566
|
className,
|
|
3528
3567
|
disabled = false,
|
|
@@ -3602,9 +3641,9 @@ function Dot(_a) {
|
|
|
3602
3641
|
Dot.displayName = "Dot";
|
|
3603
3642
|
|
|
3604
3643
|
// src/components/ui/Chip.tsx
|
|
3605
|
-
var
|
|
3644
|
+
var import_react24 = require("react");
|
|
3606
3645
|
var import_jsx_runtime36 = require("react/jsx-runtime");
|
|
3607
|
-
var Chip = (0,
|
|
3646
|
+
var Chip = (0, import_react24.forwardRef)(function Chip2(_a, ref) {
|
|
3608
3647
|
var _b = _a, {
|
|
3609
3648
|
selected = false,
|
|
3610
3649
|
onRemove,
|