@pathscale/ui 2.7.2 → 2.7.3

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 (194) hide show
  1. package/dist/components/_shared/index.d.ts +1 -1
  2. package/dist/components/_shared/material.css +23 -6
  3. package/dist/components/_shared/overlayPosition.d.ts +2 -2
  4. package/dist/components/accordion/Accordion.css +3 -3
  5. package/dist/components/accordion/index.d.ts +1 -1
  6. package/dist/components/address/Address.css +24 -8
  7. package/dist/components/address/index.d.ts +3 -3
  8. package/dist/components/address/index.js +1 -1
  9. package/dist/components/alert/Alert.css +8 -2
  10. package/dist/components/alert/index.d.ts +2 -2
  11. package/dist/components/auth-card/index.d.ts +1 -1
  12. package/dist/components/auth-field-group/index.d.ts +1 -1
  13. package/dist/components/auth-footer-links/index.d.ts +1 -1
  14. package/dist/components/auth-message/index.d.ts +1 -1
  15. package/dist/components/auth-powered-by/index.d.ts +1 -1
  16. package/dist/components/auth-submit-button/index.d.ts +1 -1
  17. package/dist/components/avatar/Avatar.css +10 -6
  18. package/dist/components/avatar/index.d.ts +1 -1
  19. package/dist/components/badge/Badge.css +0 -1
  20. package/dist/components/badge/index.d.ts +2 -2
  21. package/dist/components/breadcrumb/index.d.ts +1 -1
  22. package/dist/components/button/Button.css +35 -7
  23. package/dist/components/button/index.d.ts +1 -1
  24. package/dist/components/button-group/ButtonGroup.css +2 -1
  25. package/dist/components/button-group/index.d.ts +1 -1
  26. package/dist/components/calendar/Calendar.css +18 -5
  27. package/dist/components/calendar/index.d.ts +1 -1
  28. package/dist/components/card/index.d.ts +4 -4
  29. package/dist/components/chatbubble/index.d.ts +1 -1
  30. package/dist/components/checkbox/Checkbox.css +26 -9
  31. package/dist/components/checkbox/index.d.ts +1 -1
  32. package/dist/components/checkbox-group/index.d.ts +1 -1
  33. package/dist/components/chip/Chip.css +61 -19
  34. package/dist/components/chip/index.d.ts +2 -2
  35. package/dist/components/close-button/CloseButton.css +5 -1
  36. package/dist/components/close-button/index.d.ts +1 -1
  37. package/dist/components/collapsible/index.d.ts +2 -2
  38. package/dist/components/color-field/ColorField.css +12 -4
  39. package/dist/components/color-field/index.d.ts +1 -1
  40. package/dist/components/color-picker/index.d.ts +2 -2
  41. package/dist/components/color-slider/ColorSlider.css +2 -1
  42. package/dist/components/color-slider/index.d.ts +1 -1
  43. package/dist/components/color-swatch/index.d.ts +1 -1
  44. package/dist/components/color-swatch-picker/index.d.ts +2 -3
  45. package/dist/components/color-wheel-flower/ColorWheelFlower.css +6 -2
  46. package/dist/components/color-wheel-flower/colorWheelFlowerContext.d.ts +1 -1
  47. package/dist/components/color-wheel-flower/index.d.ts +4 -4
  48. package/dist/components/combo-box/ComboBox.css +29 -10
  49. package/dist/components/combo-box/index.d.ts +1 -1
  50. package/dist/components/composer/Composer.css +65 -21
  51. package/dist/components/composer/index.d.ts +3 -3
  52. package/dist/components/composer/index.js +1 -1
  53. package/dist/components/data-grid/createDataGrid.d.ts +1 -1
  54. package/dist/components/data-grid/index.d.ts +1 -1
  55. package/dist/components/date-field/DateField.css +47 -13
  56. package/dist/components/date-field/index.d.ts +1 -1
  57. package/dist/components/date-picker/DatePicker.css +24 -6
  58. package/dist/components/date-picker/index.d.ts +1 -1
  59. package/dist/components/date-range-picker/DateRangePicker.css +28 -7
  60. package/dist/components/date-range-picker/index.d.ts +1 -1
  61. package/dist/components/dialog/Dialog.css +17 -4
  62. package/dist/components/dialog/index.d.ts +1 -1
  63. package/dist/components/dock/Dock.css +10 -2
  64. package/dist/components/dock/index.d.ts +1 -1
  65. package/dist/components/drawer/Drawer.a11y.d.ts +1 -1
  66. package/dist/components/drawer/Drawer.css +31 -7
  67. package/dist/components/drawer/index.d.ts +1 -1
  68. package/dist/components/dropdown/Dropdown.css +2 -1
  69. package/dist/components/dropdown/index.d.ts +2 -2
  70. package/dist/components/empty/index.d.ts +1 -1
  71. package/dist/components/fieldset/index.d.ts +1 -1
  72. package/dist/components/footer/index.d.ts +1 -1
  73. package/dist/components/form/index.d.ts +3 -3
  74. package/dist/components/form/index.js +1 -1
  75. package/dist/components/glow-card/GlowCard.css +5 -2
  76. package/dist/components/glow-card/index.d.ts +1 -1
  77. package/dist/components/header/Header.css +4 -1
  78. package/dist/components/header/index.d.ts +1 -1
  79. package/dist/components/icon/Icon.css +24 -8
  80. package/dist/components/icon/index.d.ts +1 -1
  81. package/dist/components/immersive-landing/ImmersiveLanding.css +27 -12
  82. package/dist/components/immersive-landing/components/CookieConsent.d.ts +1 -1
  83. package/dist/components/immersive-landing/components/FirefoxPWABanner.d.ts +1 -1
  84. package/dist/components/immersive-landing/components/PWAInstallPrompt.d.ts +1 -1
  85. package/dist/components/immersive-landing/index.d.ts +5 -5
  86. package/dist/components/immersive-landing/index.js +4 -4
  87. package/dist/components/immersive-landing/types.d.ts +1 -1
  88. package/dist/components/input/Input.css +14 -5
  89. package/dist/components/input/index.d.ts +1 -1
  90. package/dist/components/input-otp/InputOTP.css +10 -3
  91. package/dist/components/input-otp/index.d.ts +1 -1
  92. package/dist/components/kbd/index.d.ts +1 -1
  93. package/dist/components/label/Label.css +5 -2
  94. package/dist/components/label/index.d.ts +1 -1
  95. package/dist/components/language-switcher/LanguageSwitcher.css +4 -2
  96. package/dist/components/language-switcher/createI18n.d.ts +1 -1
  97. package/dist/components/language-switcher/index.d.ts +2 -2
  98. package/dist/components/language-switcher/index.js +1 -1
  99. package/dist/components/link/index.d.ts +1 -1
  100. package/dist/components/list-box/ListBox.css +8 -4
  101. package/dist/components/list-box/index.d.ts +5 -5
  102. package/dist/components/live-chat/LiveChat.css +15 -6
  103. package/dist/components/live-chat/index.d.ts +3 -3
  104. package/dist/components/menu/Menu.css +28 -10
  105. package/dist/components/menu/index.d.ts +2 -2
  106. package/dist/components/metal-border/engine/color.js +1 -1
  107. package/dist/components/metal-border/engine/glow/geometry.d.ts +5 -5
  108. package/dist/components/metal-border/engine/glow/geometry.js +10 -10
  109. package/dist/components/metal-border/engine/glow/glow.d.ts +18 -6
  110. package/dist/components/metal-border/engine/glow/glow.js +37 -37
  111. package/dist/components/metal-border/engine/index.d.ts +3 -3
  112. package/dist/components/metal-border/engine/index.js +1 -1
  113. package/dist/components/metal-border/engine/presets.d.ts +3 -3
  114. package/dist/components/metal-border/engine/presets.js +45 -45
  115. package/dist/components/metal-border/engine/renderer/core.d.ts +1 -1
  116. package/dist/components/metal-border/engine/shaders.js +4 -4
  117. package/dist/components/metal-border/index.d.ts +1 -1
  118. package/dist/components/meter/Meter.css +0 -5
  119. package/dist/components/meter/index.d.ts +1 -1
  120. package/dist/components/navbar/Navbar.css +2 -1
  121. package/dist/components/navbar/index.d.ts +2 -2
  122. package/dist/components/noise-background/index.d.ts +1 -1
  123. package/dist/components/pagination/Pagination.css +0 -1
  124. package/dist/components/password-field/index.d.ts +2 -2
  125. package/dist/components/password-requirements/index.d.ts +1 -1
  126. package/dist/components/popover/Popover.css +5 -1
  127. package/dist/components/popover/index.d.ts +2 -2
  128. package/dist/components/progress/Progress.css +2 -6
  129. package/dist/components/progress/index.d.ts +1 -1
  130. package/dist/components/radial-progress/RadialProgress.css +0 -5
  131. package/dist/components/radial-progress/index.d.ts +1 -1
  132. package/dist/components/radio/Radio.css +23 -8
  133. package/dist/components/radio-group/RadioGroup.css +11 -3
  134. package/dist/components/radio-group/index.d.ts +1 -1
  135. package/dist/components/range-calendar/RangeCalendar.css +8 -5
  136. package/dist/components/scroll-area/ScrollArea.css +8 -26
  137. package/dist/components/scroll-area/index.d.ts +1 -1
  138. package/dist/components/select/Select.css +14 -4
  139. package/dist/components/select/index.d.ts +1 -1
  140. package/dist/components/separator/index.d.ts +1 -1
  141. package/dist/components/size-picker/index.d.ts +2 -2
  142. package/dist/components/skeleton/Skeleton.css +86 -26
  143. package/dist/components/skeleton/index.d.ts +2 -2
  144. package/dist/components/slider/index.d.ts +1 -1
  145. package/dist/components/spinner/index.d.ts +1 -1
  146. package/dist/components/status/index.d.ts +2 -3
  147. package/dist/components/switch/Switch.css +62 -18
  148. package/dist/components/switch/index.d.ts +1 -1
  149. package/dist/components/table/Table.context.d.ts +1 -1
  150. package/dist/components/table/Table.css +27 -9
  151. package/dist/components/tabs/Tabs.css +7 -2
  152. package/dist/components/tabs/index.d.ts +1 -1
  153. package/dist/components/text/index.d.ts +1 -1
  154. package/dist/components/textarea/Textarea.css +39 -10
  155. package/dist/components/textarea/index.d.ts +1 -1
  156. package/dist/components/theme-color-picker/index.d.ts +2 -2
  157. package/dist/components/theme-color-picker/index.js +1 -1
  158. package/dist/components/time-field/TimeField.css +47 -13
  159. package/dist/components/time-field/index.d.ts +1 -1
  160. package/dist/components/toast/Toast.css +2 -1
  161. package/dist/components/toast/index.d.ts +1 -1
  162. package/dist/components/toolbar/Toolbar.css +5 -2
  163. package/dist/components/toolbar/index.d.ts +1 -1
  164. package/dist/components/tooltip/Tooltip.css +6 -3
  165. package/dist/components/tooltip/index.d.ts +1 -1
  166. package/dist/components/video-preview/index.d.ts +1 -1
  167. package/dist/hooks/date/index.d.ts +2 -2
  168. package/dist/hooks/date/index.js +2 -2
  169. package/dist/hooks/form/getFirstFieldError.js +0 -1
  170. package/dist/hooks/form/index.d.ts +3 -3
  171. package/dist/hooks/form/index.js +1 -1
  172. package/dist/hooks/table/index.d.ts +1 -1
  173. package/dist/hooks/table/useAnchoredOverlayPosition.d.ts +1 -1
  174. package/dist/index.d.ts +94 -100
  175. package/dist/index.js +32 -32
  176. package/dist/lab.d.ts +34 -35
  177. package/dist/lab.js +10 -10
  178. package/dist/layouts.manifest.json +1 -1
  179. package/dist/lib/layouts/index.d.ts +1 -1
  180. package/dist/lib/style/index.d.ts +1 -1
  181. package/dist/motion/easing.js +2 -2
  182. package/dist/motion/index.d.ts +7 -9
  183. package/dist/motion/index.js +5 -5
  184. package/dist/motion/route.js +1 -1
  185. package/dist/motion/solid/AnimatedCollapse.d.ts +2 -2
  186. package/dist/motion/solid/MotionDiv.d.ts +1 -1
  187. package/dist/motion/solid/index.d.ts +4 -4
  188. package/dist/motion/solid/index.js +1 -1
  189. package/dist/motion/system.js +1 -1
  190. package/dist/motion/tokens.d.ts +1 -1
  191. package/dist/primitives/streaming/index.d.ts +2 -2
  192. package/dist/styles/themes/dark.css +12 -4
  193. package/dist/styles/themes/light.css +12 -4
  194. package/package.json +1 -1
@@ -46,16 +46,23 @@
46
46
  }
47
47
 
48
48
  @media (hover: hover) {
49
- .input-control:hover:not(.input-control--disabled):not(.input-control--invalid):not(:focus-within) {
49
+ .input-control:hover:not(.input-control--disabled):not(
50
+ .input-control--invalid
51
+ ):not(:focus-within) {
50
52
  background-color: var(--color-base-200);
51
- border-color: color-mix(in oklab, var(--color-base-content) 22%, transparent);
53
+ border-color: color-mix(
54
+ in oklab,
55
+ var(--color-base-content) 22%,
56
+ transparent
57
+ );
52
58
  }
53
59
  }
54
60
 
55
61
  .input-control:focus-within {
56
62
  border-color: var(--color-accent);
57
63
  background-color: var(--color-base-100);
58
- box-shadow: 0 0 0 3px color-mix(in oklab, var(--color-accent) 24%, transparent);
64
+ box-shadow: 0 0 0 3px
65
+ color-mix(in oklab, var(--color-accent) 24%, transparent);
59
66
  }
60
67
 
61
68
  .input-control--invalid,
@@ -66,7 +73,8 @@
66
73
 
67
74
  .input-control--invalid:focus-within,
68
75
  .input-control[data-invalid="true"]:focus-within {
69
- box-shadow: 0 0 0 3px color-mix(in oklab, var(--color-error) 24%, transparent);
76
+ box-shadow: 0 0 0 3px
77
+ color-mix(in oklab, var(--color-error) 24%, transparent);
70
78
  }
71
79
 
72
80
  .input-control--disabled,
@@ -132,7 +140,8 @@
132
140
  pointer-events: none;
133
141
  }
134
142
 
135
- .input__icon > :is(button, [role="button"], a, [tabindex]):not([tabindex="-1"]) {
143
+ .input__icon
144
+ > :is(button, [role="button"], a, [tabindex]):not([tabindex="-1"]) {
136
145
  pointer-events: auto;
137
146
  }
138
147
 
@@ -1,3 +1,3 @@
1
1
  import Input from "./Input.generated";
2
- export type { InputProps, InputSize, InputRootProps, InputFieldProps, InputLabelProps, InputHelperProps, } from "./Input.generated";
2
+ export type { InputFieldProps, InputHelperProps, InputLabelProps, InputProps, InputRootProps, InputSize, } from "./Input.generated";
3
3
  export default Input;
@@ -40,7 +40,8 @@
40
40
  align-items: center;
41
41
  justify-content: center;
42
42
  border-radius: var(--radius-field, 0.75rem);
43
- border: var(--border-width-field, 1px) solid var(--color-field-border, var(--color-base-300));
43
+ border: var(--border-width-field, 1px) solid
44
+ var(--color-field-border, var(--color-base-300));
44
45
  background-color: var(--color-field, var(--color-base-100));
45
46
  color: var(--color-field-foreground, var(--color-base-content));
46
47
  font-size: 0.875rem;
@@ -65,7 +66,10 @@
65
66
  @media (hover: hover) {
66
67
  .input-otp__slot:hover:not([data-disabled="true"]) {
67
68
  background-color: var(--color-field-hover, var(--color-base-200));
68
- border-color: var(--color-field-border-hover, color-mix(in oklab, var(--color-base-content) 22%, transparent));
69
+ border-color: var(
70
+ --color-field-border-hover,
71
+ color-mix(in oklab, var(--color-base-content) 22%, transparent)
72
+ );
69
73
  }
70
74
  }
71
75
 
@@ -111,7 +115,10 @@
111
115
  width: 2px;
112
116
  height: 1rem;
113
117
  border-radius: 4px;
114
- background-color: var(--color-field-placeholder, color-mix(in oklab, var(--color-base-content) 45%, transparent));
118
+ background-color: var(
119
+ --color-field-placeholder,
120
+ color-mix(in oklab, var(--color-base-content) 45%, transparent)
121
+ );
115
122
  animation: input-otp-caret-blink 1.1s step-end infinite;
116
123
  }
117
124
 
@@ -1 +1 @@
1
- export { default, InputOTP, InputOTPRoot, InputOTPGroup, InputOTPSlot, InputOTPSeparator, REGEXP_ONLY_DIGITS, REGEXP_ONLY_CHARS, REGEXP_ONLY_DIGITS_AND_CHARS, type InputOTPProps, type InputOTPRootProps, type InputOTPGroupProps, type InputOTPSlotProps, type InputOTPSeparatorProps, type InputOTPVariant, } from "./InputOTP.generated";
1
+ export { default, InputOTP, InputOTPGroup, type InputOTPGroupProps, type InputOTPProps, InputOTPRoot, type InputOTPRootProps, InputOTPSeparator, type InputOTPSeparatorProps, InputOTPSlot, type InputOTPSlotProps, type InputOTPVariant, REGEXP_ONLY_CHARS, REGEXP_ONLY_DIGITS, REGEXP_ONLY_DIGITS_AND_CHARS, } from "./InputOTP.generated";
@@ -1 +1 @@
1
- export { default, KbdRoot, KbdAbbr, KbdContent, kbdKeysMap, kbdKeysLabelMap, type KbdProps, type KbdRootProps, type KbdAbbrProps, type KbdContentProps, type KbdVariant, type KbdKey, } from "./Kbd.generated";
1
+ export { default, KbdAbbr, type KbdAbbrProps, KbdContent, type KbdContentProps, type KbdKey, type KbdProps, KbdRoot, type KbdRootProps, type KbdVariant, kbdKeysLabelMap, kbdKeysMap, } from "./Kbd.generated";
@@ -7,9 +7,12 @@
7
7
  }
8
8
 
9
9
  .label--required::after,
10
- [data-required="true"]:not([role="group"]):not([role="radiogroup"]):not([role="checkboxgroup"])
10
+ [data-required="true"]:not([role="group"]):not([role="radiogroup"]):not(
11
+ [role="checkboxgroup"]
12
+ )
11
13
  > .label::after,
12
- [data-required="true"]:not([data-slot="radio"]):not([data-slot="checkbox"]) > .label::after {
14
+ [data-required="true"]:not([data-slot="radio"]):not([data-slot="checkbox"])
15
+ > .label::after {
13
16
  margin-inline-start: 0.125rem;
14
17
  color: var(--color-danger);
15
18
  content: "*";
@@ -1 +1 @@
1
- export { default, Label, LabelRoot, type LabelProps, type LabelRootProps, } from "./Label.generated";
1
+ export { default, Label, type LabelProps, LabelRoot, type LabelRootProps, } from "./Label.generated";
@@ -10,7 +10,8 @@
10
10
  align-items: center;
11
11
  justify-content: center;
12
12
  border-radius: var(--radius-field);
13
- border: var(--border, 1px) solid color-mix(in oklab, var(--color-base-content) 18%, transparent);
13
+ border: var(--border, 1px) solid
14
+ color-mix(in oklab, var(--color-base-content) 18%, transparent);
14
15
  background: var(--color-base-100);
15
16
  color: var(--color-base-content);
16
17
  padding: 0.25rem 0.5rem;
@@ -28,7 +29,8 @@
28
29
  }
29
30
 
30
31
  .language-switcher__trigger:focus-visible {
31
- outline: var(--focus-ring-width, 2px) solid color-mix(in oklab, var(--color-primary) 70%, transparent);
32
+ outline: var(--focus-ring-width, 2px) solid
33
+ color-mix(in oklab, var(--color-primary) 70%, transparent);
32
34
  outline-offset: var(--focus-ring-offset, 2px);
33
35
  }
34
36
 
@@ -1,5 +1,5 @@
1
- import { type FlowComponent } from "solid-js";
2
1
  import type { JSX } from "@solidjs/web";
2
+ import { type FlowComponent } from "solid-js";
3
3
  export interface Language {
4
4
  code: string;
5
5
  name: string;
@@ -1,3 +1,3 @@
1
- export { default as LanguageSwitcher } from "./LanguageSwitcher.generated";
1
+ export { createI18n, I18nContext, type I18nContextValue, type I18nOptions, I18nProvider, type I18nProviderProps, type I18nStore, type Language, useI18n, } from "./createI18n";
2
2
  export type { LanguageSwitcherProps } from "./LanguageSwitcher.generated";
3
- export { createI18n, I18nProvider, I18nContext, useI18n, type I18nStore, type I18nOptions, type I18nContextValue, type I18nProviderProps, type Language, } from "./createI18n";
3
+ export { default as LanguageSwitcher } from "./LanguageSwitcher.generated";
@@ -1,2 +1,2 @@
1
- export { default as LanguageSwitcher } from "./LanguageSwitcher.generated.js";
2
1
  export { I18nContext, I18nProvider, createI18n, useI18n } from "./createI18n.js";
2
+ export { default as LanguageSwitcher } from "./LanguageSwitcher.generated.js";
@@ -1 +1 @@
1
- export { default, LinkRoot, LinkIcon, type LinkProps, type LinkRootProps, type LinkIconProps, type LinkVariant, type LinkUnderline, } from "./Link.generated";
1
+ export { default, LinkIcon, type LinkIconProps, type LinkProps, LinkRoot, type LinkRootProps, type LinkUnderline, type LinkVariant, } from "./Link.generated";
@@ -118,14 +118,18 @@
118
118
  }
119
119
  }
120
120
 
121
- .list-box-item[aria-selected="true"] [data-slot="listbox-item-indicator--checkmark"],
122
- .list-box-item[data-selected="true"] [data-slot="listbox-item-indicator--checkmark"] {
121
+ .list-box-item[aria-selected="true"]
122
+ [data-slot="listbox-item-indicator--checkmark"],
123
+ .list-box-item[data-selected="true"]
124
+ [data-slot="listbox-item-indicator--checkmark"] {
123
125
  transition: stroke-dashoffset 250ms linear;
124
126
  }
125
127
 
126
128
  @media (prefers-reduced-motion: reduce) {
127
- .list-box-item[aria-selected="true"] [data-slot="listbox-item-indicator--checkmark"],
128
- .list-box-item[data-selected="true"] [data-slot="listbox-item-indicator--checkmark"] {
129
+ .list-box-item[aria-selected="true"]
130
+ [data-slot="listbox-item-indicator--checkmark"],
131
+ .list-box-item[data-selected="true"]
132
+ [data-slot="listbox-item-indicator--checkmark"] {
129
133
  transition: none;
130
134
  }
131
135
  }
@@ -1,6 +1,6 @@
1
1
  import ListBoxRoot from "./ListBox.generated";
2
- import ListBoxItem, { ListBoxItemIndicator, ListBoxItemRoot, type ListBoxItemIndicatorProps, type ListBoxItemProps, type ListBoxItemRenderProps, type ListBoxItemRootProps } from "./ListBoxItem.generated";
3
- import ListBoxSection, { ListBoxSectionRoot, type ListBoxSectionProps, type ListBoxSectionRootProps } from "./ListBoxSection.generated";
2
+ import ListBoxItem, { ListBoxItemIndicator, type ListBoxItemIndicatorProps, type ListBoxItemProps, type ListBoxItemRenderProps, ListBoxItemRoot, type ListBoxItemRootProps } from "./ListBoxItem.generated";
3
+ import ListBoxSection, { type ListBoxSectionProps, ListBoxSectionRoot, type ListBoxSectionRootProps } from "./ListBoxSection.generated";
4
4
  declare const ListBox: import("solid-js").Component<import("./ListBox.generated").ListBoxRootProps<unknown>> & {
5
5
  Root: import("solid-js").Component<import("./ListBox.generated").ListBoxRootProps<unknown>>;
6
6
  Item: import("solid-js").Component<ListBoxItemProps> & {
@@ -11,7 +11,7 @@ declare const ListBox: import("solid-js").Component<import("./ListBox.generated"
11
11
  Section: import("solid-js").Component<ListBoxSectionProps>;
12
12
  };
13
13
  export default ListBox;
14
- export { ListBox, ListBoxRoot, ListBoxItem, ListBoxItemRoot, ListBoxItemIndicator, ListBoxSection, ListBoxSectionRoot, };
15
- export type { ListBoxProps, ListBoxRootProps } from "./ListBox.generated";
16
14
  export type { ListBoxSelectionMode, ListBoxVariant } from "./context";
17
- export type { ListBoxItemProps, ListBoxItemRootProps, ListBoxItemIndicatorProps, ListBoxItemRenderProps, ListBoxSectionProps, ListBoxSectionRootProps, };
15
+ export type { ListBoxProps, ListBoxRootProps } from "./ListBox.generated";
16
+ export type { ListBoxItemIndicatorProps, ListBoxItemProps, ListBoxItemRenderProps, ListBoxItemRootProps, ListBoxSectionProps, ListBoxSectionRootProps, };
17
+ export { ListBox, ListBoxItem, ListBoxItemIndicator, ListBoxItemRoot, ListBoxRoot, ListBoxSection, ListBoxSectionRoot, };
@@ -12,7 +12,8 @@
12
12
  border: 0;
13
13
  background: var(--color-primary);
14
14
  color: var(--color-primary-content);
15
- box-shadow: 0 10px 20px color-mix(in oklab, var(--color-base-content) 16%, transparent);
15
+ box-shadow: 0 10px 20px
16
+ color-mix(in oklab, var(--color-base-content) 16%, transparent);
16
17
  transition:
17
18
  transform 200ms ease,
18
19
  box-shadow 200ms ease,
@@ -20,7 +21,8 @@
20
21
  }
21
22
 
22
23
  .live-chat-bubble:hover {
23
- box-shadow: 0 14px 28px color-mix(in oklab, var(--color-base-content) 22%, transparent);
24
+ box-shadow: 0 14px 28px
25
+ color-mix(in oklab, var(--color-base-content) 22%, transparent);
24
26
  }
25
27
 
26
28
  .live-chat-bubble:active {
@@ -28,7 +30,8 @@
28
30
  }
29
31
 
30
32
  .live-chat-bubble:focus-visible {
31
- outline: var(--focus-ring-width, 2px) solid color-mix(in oklab, var(--color-primary) 72%, transparent);
33
+ outline: var(--focus-ring-width, 2px) solid
34
+ color-mix(in oklab, var(--color-primary) 72%, transparent);
32
35
  outline-offset: var(--focus-ring-offset, 2px);
33
36
  }
34
37
 
@@ -87,7 +90,8 @@
87
90
  flex-direction: column;
88
91
  overflow: hidden;
89
92
  background: var(--color-base-100);
90
- box-shadow: 0 30px 70px color-mix(in oklab, var(--color-base-content) 18%, transparent);
93
+ box-shadow: 0 30px 70px
94
+ color-mix(in oklab, var(--color-base-content) 18%, transparent);
91
95
  }
92
96
 
93
97
  .live-chat-panel__header {
@@ -127,7 +131,11 @@
127
131
  }
128
132
 
129
133
  .live-chat-panel__close-button:hover {
130
- background: color-mix(in oklab, var(--color-primary-content) 10%, transparent);
134
+ background: color-mix(
135
+ in oklab,
136
+ var(--color-primary-content) 10%,
137
+ transparent
138
+ );
131
139
  }
132
140
 
133
141
  .live-chat-panel__messages {
@@ -251,7 +259,8 @@
251
259
  height: 1rem;
252
260
  border-radius: var(--radius-pill, 9999px);
253
261
  display: inline-block;
254
- border: 2px solid color-mix(in oklab, var(--color-primary-content) 30%, transparent);
262
+ border: 2px solid
263
+ color-mix(in oklab, var(--color-primary-content) 30%, transparent);
255
264
  border-top-color: var(--color-primary-content);
256
265
  animation: live-chat-spin 0.7s linear infinite;
257
266
  }
@@ -1,5 +1,5 @@
1
- export { default as LiveChatBubble } from "./LiveChatBubble.generated";
2
1
  export type { LiveChatBubbleProps } from "./LiveChatBubble.generated";
3
- export { default as LiveChatPanel } from "./LiveChatPanel.generated";
2
+ export { default as LiveChatBubble } from "./LiveChatBubble.generated";
4
3
  export type { LiveChatPanelProps } from "./LiveChatPanel.generated";
5
- export type { ChatMessage, SendMessagePayload, SendMessageResponse } from "./types";
4
+ export { default as LiveChatPanel } from "./LiveChatPanel.generated";
5
+ export type { ChatMessage, SendMessagePayload, SendMessageResponse, } from "./types";
@@ -86,14 +86,18 @@
86
86
 
87
87
  .menu-item[aria-checked="true"] [data-slot="menu-item-indicator--checkmark"],
88
88
  .menu-item[aria-selected="true"] [data-slot="menu-item-indicator--checkmark"],
89
- .menu-item[data-selected="true"] [data-slot="menu-item-indicator--checkmark"] {
89
+ .menu-item[data-selected="true"]
90
+ [data-slot="menu-item-indicator--checkmark"] {
90
91
  transition: stroke-dashoffset 100ms linear;
91
92
  }
92
93
 
93
94
  @media (prefers-reduced-motion: reduce) {
94
- .menu-item[aria-checked="true"] [data-slot="menu-item-indicator--checkmark"],
95
- .menu-item[aria-selected="true"] [data-slot="menu-item-indicator--checkmark"],
96
- .menu-item[data-selected="true"] [data-slot="menu-item-indicator--checkmark"] {
95
+ .menu-item[aria-checked="true"]
96
+ [data-slot="menu-item-indicator--checkmark"],
97
+ .menu-item[aria-selected="true"]
98
+ [data-slot="menu-item-indicator--checkmark"],
99
+ .menu-item[data-selected="true"]
100
+ [data-slot="menu-item-indicator--checkmark"] {
97
101
  transition: none;
98
102
  }
99
103
  }
@@ -122,7 +126,10 @@
122
126
  transform: translateY(-50%);
123
127
  align-items: center;
124
128
  justify-content: center;
125
- color: var(--color-muted, color-mix(in oklab, var(--color-base-content) 55%, transparent));
129
+ color: var(
130
+ --color-muted,
131
+ color-mix(in oklab, var(--color-base-content) 55%, transparent)
132
+ );
126
133
  transition: all 250ms ease;
127
134
  }
128
135
 
@@ -142,12 +149,16 @@
142
149
  height: 0.625rem;
143
150
  }
144
151
 
145
- .menu-item[data-selection-mode="multiple"] .menu-item__indicator [data-slot="menu-item-indicator--checkmark"] {
152
+ .menu-item[data-selection-mode="multiple"]
153
+ .menu-item__indicator
154
+ [data-slot="menu-item-indicator--checkmark"] {
146
155
  transition: all 300ms ease;
147
156
  }
148
157
 
149
158
  @media (prefers-reduced-motion: reduce) {
150
- .menu-item[data-selection-mode="multiple"] .menu-item__indicator [data-slot="menu-item-indicator--checkmark"] {
159
+ .menu-item[data-selection-mode="multiple"]
160
+ .menu-item__indicator
161
+ [data-slot="menu-item-indicator--checkmark"] {
151
162
  transition: none;
152
163
  }
153
164
  }
@@ -159,18 +170,25 @@
159
170
  opacity: 0;
160
171
  }
161
172
 
162
- .menu-item[data-selection-mode="multiple"] .menu-item__indicator [data-slot="menu-item-indicator--dot"] {
173
+ .menu-item[data-selection-mode="multiple"]
174
+ .menu-item__indicator
175
+ [data-slot="menu-item-indicator--dot"] {
163
176
  transition: all 250ms ease;
164
177
  }
165
178
 
166
179
  @media (prefers-reduced-motion: reduce) {
167
- .menu-item[data-selection-mode="multiple"] .menu-item__indicator [data-slot="menu-item-indicator--dot"] {
180
+ .menu-item[data-selection-mode="multiple"]
181
+ .menu-item__indicator
182
+ [data-slot="menu-item-indicator--dot"] {
168
183
  transition: none;
169
184
  }
170
185
  }
171
186
 
172
187
  .menu-item__indicator--submenu {
173
- color: var(--color-muted, color-mix(in oklab, var(--color-base-content) 55%, transparent));
188
+ color: var(
189
+ --color-muted,
190
+ color-mix(in oklab, var(--color-base-content) 55%, transparent)
191
+ );
174
192
  }
175
193
 
176
194
  .menu-item__indicator--submenu svg {
@@ -1,4 +1,4 @@
1
- export { default, Menu, MenuRoot, MenuItem, MenuItemRoot, MenuItemIndicator, MenuSection, MenuSectionRoot, type MenuProps, type MenuRootProps, type MenuSelectionMode, } from "./Menu.generated";
1
+ export { default, Menu, MenuItem, MenuItemIndicator, MenuItemRoot, type MenuProps, MenuRoot, type MenuRootProps, MenuSection, MenuSectionRoot, type MenuSelectionMode, } from "./Menu.generated";
2
+ export type { MenuItemIndicatorProps, MenuItemProps, MenuItemRenderProps, MenuItemRootProps, MenuItemSubmenuIndicatorProps, MenuItemVariant, } from "./MenuItem.generated";
2
3
  export { MenuItemSubmenuIndicator } from "./MenuItem.generated";
3
- export type { MenuItemProps, MenuItemRootProps, MenuItemIndicatorProps, MenuItemSubmenuIndicatorProps, MenuItemRenderProps, MenuItemVariant, } from "./MenuItem.generated";
4
4
  export type { MenuSectionProps, MenuSectionRootProps, } from "./MenuSection.generated";
@@ -1,5 +1,5 @@
1
1
  function hexToRgb(hex) {
2
- let h = hex.replace('#', '');
2
+ let h = hex.replace("#", "");
3
3
  if (3 === h.length) h = h[0] + h[0] + h[1] + h[1] + h[2] + h[2];
4
4
  return [
5
5
  parseInt(h.slice(0, 2), 16) / 255,
@@ -5,13 +5,13 @@
5
5
  * generation, SVG filter/mask construction, and HSV colour helpers.
6
6
  * No state — every function is a pure transform.
7
7
  */
8
- import { PERIM_SAMPLES } from '../perfConfig';
8
+ import { PERIM_SAMPLES } from "../perfConfig";
9
9
  export { PERIM_SAMPLES };
10
10
  export interface GlowOptions {
11
11
  width: number;
12
12
  height: number;
13
13
  cornerRadius: number;
14
- kind: 'pill' | 'circle';
14
+ kind: "pill" | "circle";
15
15
  /** Master multiplier for absolute SVG units (stroke widths, blur,
16
16
  * fade-circle radius). 1 is the canonical 1× rendering. Set to 2 when
17
17
  * the host element is rendered at a 2× layout (e.g. CSS zoom: 2) so
@@ -26,10 +26,10 @@ export interface PerimSample extends Pt {
26
26
  arc: number;
27
27
  }
28
28
  export declare function rrPerim(w: number, h: number, r: number): number;
29
- export declare function shapePerim(w: number, h: number, r: number, kind: 'pill' | 'circle'): number;
30
- export declare function sampleAtArc(s: number, w: number, h: number, r: number, inset: number, outward: number, kind: 'pill' | 'circle', out?: Pt): Pt;
29
+ export declare function shapePerim(w: number, h: number, r: number, kind: "pill" | "circle"): number;
30
+ export declare function sampleAtArc(s: number, w: number, h: number, r: number, inset: number, outward: number, kind: "pill" | "circle", out?: Pt): Pt;
31
31
  export declare function buildStaticBlobPath(halfLen: number, segments: number): string;
32
- export declare function tangentAngleAtArc(s: number, w: number, h: number, r: number, inset: number, kind: 'pill' | 'circle'): number;
32
+ export declare function tangentAngleAtArc(s: number, w: number, h: number, r: number, inset: number, kind: "pill" | "circle"): number;
33
33
  export declare function smoothstep(a: number, b: number, x: number): number;
34
34
  export declare function buildPerimTable(opts: GlowOptions): PerimSample[];
35
35
  export declare function buildSvgMarkup(opts: GlowOptions, p: string): string;
@@ -11,7 +11,7 @@ function rrPerim(w, h, r) {
11
11
  return 2 * Math.max(0, w - 2 * rr) + 2 * Math.max(0, h - 2 * rr) + 2 * Math.PI * rr;
12
12
  }
13
13
  function shapePerim(w, h, r, kind) {
14
- if ('circle' === kind) return 2 * Math.PI * Math.max(0, Math.min(r, Math.min(w, h) / 2));
14
+ if ("circle" === kind) return 2 * Math.PI * Math.max(0, Math.min(r, Math.min(w, h) / 2));
15
15
  return rrPerim(w, h, r);
16
16
  }
17
17
  function sampleAtArc(s, w, h, r, inset, outward, kind, out) {
@@ -20,7 +20,7 @@ function sampleAtArc(s, w, h, r, inset, outward, kind, out) {
20
20
  y: 0
21
21
  };
22
22
  const rr = Math.max(0, Math.min(r, Math.min(w, h) / 2));
23
- if ('circle' === kind) {
23
+ if ("circle" === kind) {
24
24
  const perim = 2 * Math.PI * rr;
25
25
  if (perim <= 0.0001) {
26
26
  o.x = 0.5 * w;
@@ -92,10 +92,10 @@ function sampleAtArc(s, w, h, r, inset, outward, kind, out) {
92
92
  }
93
93
  function buildStaticBlobPath(halfLen, segments) {
94
94
  const step = 2 * halfLen / segments;
95
- let d = '';
95
+ let d = "";
96
96
  for(let i = 0; i <= segments; i++){
97
97
  const x = -halfLen + i * step;
98
- d += (0 === i ? 'M ' : 'L ') + x.toFixed(3) + ' 0 ';
98
+ d += (0 === i ? "M " : "L ") + x.toFixed(3) + " 0 ";
99
99
  }
100
100
  return d;
101
101
  }
@@ -136,7 +136,7 @@ function buildPerimTable(opts) {
136
136
  function buildSvgMarkup(opts, p) {
137
137
  const { width: W, height: H, cornerRadius: R } = opts;
138
138
  const s = opts.scale ?? 1;
139
- const ringInset = 'circle' === opts.kind ? 2 : 1;
139
+ const ringInset = "circle" === opts.kind ? 2 : 1;
140
140
  const innerR = Math.max(0, R - ringInset);
141
141
  const fX = (-200 * s).toFixed(0), fY = fX;
142
142
  const fW = (540 * s).toFixed(0), fH = (440 * s).toFixed(0);
@@ -145,7 +145,7 @@ function buildSvgMarkup(opts, p) {
145
145
  const sw = (n)=>(n * s).toFixed(3);
146
146
  const sd = (n)=>(n * s).toFixed(3);
147
147
  return [
148
- '<defs>',
148
+ "<defs>",
149
149
  `<filter id="${p}_bXl" ${fr}><feGaussianBlur stdDeviation="${sd(8.4)}"/></filter>`,
150
150
  `<filter id="${p}_bLg" ${fr}><feGaussianBlur stdDeviation="${sd(4.8)}"/></filter>`,
151
151
  `<filter id="${p}_bMd" ${fr}><feGaussianBlur stdDeviation="${sd(2.1)}"/></filter>`,
@@ -155,7 +155,7 @@ function buildSvgMarkup(opts, p) {
155
155
  `<radialGradient id="${p}_fg" cx="0.5" cy="0.5" r="0.5"><stop offset="0" stop-color="white"/><stop offset="0.30" stop-color="white"/><stop offset="0.65" stop-color="#404040"/><stop offset="1" stop-color="black"/></radialGradient>`,
156
156
  `<mask id="${p}_fm" maskUnits="userSpaceOnUse" ${fRect}><rect ${fRect} fill="black"/><circle id="${p}_fc" cx="0" cy="0" r="${(EXTRA_FADE_R * s).toFixed(3)}" fill="url(#${p}_fg)"/></mask>`,
157
157
  `<mask id="${p}_rm" maskUnits="userSpaceOnUse" ${fRect}><rect ${fRect} fill="#808080"/><rect x="0" y="0" width="${W}" height="${H}" rx="${R}" ry="${R}" fill="white"/><rect x="${ringInset}" y="${ringInset}" width="${W - 2 * ringInset}" height="${H - 2 * ringInset}" rx="${innerR}" ry="${innerR}" fill="black"/></mask>`,
158
- '</defs>',
158
+ "</defs>",
159
159
  `<g id="${p}_h" mask="url(#${p}_rm)" opacity="0">`,
160
160
  `<rect ${fRect} fill="none" pointer-events="none"/>`,
161
161
  `<g id="${p}_hI" stroke="white">`,
@@ -163,14 +163,14 @@ function buildSvgMarkup(opts, p) {
163
163
  `<path id="${p}_pLg" stroke-width="${sw(15.6)}" stroke-linecap="round" stroke-linejoin="round" fill="none" opacity="0.595" filter="url(#${p}_bLg)"/>`,
164
164
  `<path id="${p}_pMd" stroke-width="${sw(7.2)}" stroke-linecap="round" stroke-linejoin="round" fill="none" opacity="0.70" filter="url(#${p}_bMd)"/>`,
165
165
  `<path id="${p}_pSm" stroke-width="${sw(3.0)}" stroke-linecap="round" stroke-linejoin="round" fill="none" opacity="0.70" filter="url(#${p}_bSm)"/>`,
166
- '</g></g>',
166
+ "</g></g>",
167
167
  `<g id="${p}_e" mask="url(#${p}_rm)" opacity="0">`,
168
168
  `<rect ${fRect} fill="none" pointer-events="none"/>`,
169
169
  `<g mask="url(#${p}_fm)">`,
170
170
  `<g id="${p}_eI" stroke="white">`,
171
171
  `<path id="${p}_eO" stroke-width="${sw(EXTRA_STROKE_OUTER)}" stroke-linecap="round" stroke-linejoin="round" fill="none" opacity="0.85" filter="url(#${p}_ebO)"/>`,
172
172
  `<path id="${p}_eC" stroke-width="${sw(EXTRA_STROKE_CORE)}" stroke-linecap="round" stroke-linejoin="round" fill="none" opacity="1.0" filter="url(#${p}_ebC)"/>`,
173
- '</g></g></g>'
174
- ].join('');
173
+ "</g></g></g>"
174
+ ].join("");
175
175
  }
176
176
  export { PERIM_SAMPLES, buildPerimTable, buildStaticBlobPath, buildSvgMarkup, rrPerim, sampleAtArc, shapePerim, smoothstep, tangentAngleAtArc };
@@ -1,7 +1,19 @@
1
- import type { MetalFxInstance, ShaderRGB } from '../renderer/core';
2
- import { type Tween } from '../tween';
3
- import { type GlowOptions, type PerimSample } from './geometry';
4
- export type { GlowOptions } from './geometry';
1
+ /**
2
+ * SVG glow overlay a luminance-driven halo that tracks the brightest point
3
+ * on the shader's perimeter.
4
+ *
5
+ * How it works:
6
+ * 1. Samples luminance at N points around the component's perimeter.
7
+ * 2. A state machine tracks which perimeter point is brightest, with dwell
8
+ * timers and fade-in/out transitions when relocating to a new hotspot.
9
+ * 3. Static SVG path elements (blurred strokes at multiple radii) are
10
+ * positioned at the current hotspot via CSS transform.
11
+ * 4. The stroke color is tinted to match the shader's color at that point.
12
+ */
13
+ import type { MetalFxInstance, ShaderRGB } from "../renderer/core";
14
+ import { type Tween } from "../tween";
15
+ import { type GlowOptions, type PerimSample } from "./geometry";
16
+ export type { GlowOptions } from "./geometry";
5
17
  export interface GlowHandles {
6
18
  svg: SVGSVGElement;
7
19
  haloGroup: SVGGElement;
@@ -12,7 +24,7 @@ export interface GlowHandles {
12
24
  width: number;
13
25
  height: number;
14
26
  cornerRadius: number;
15
- kind: 'pill' | 'circle';
27
+ kind: "pill" | "circle";
16
28
  /** Master scale used at injection time so per-frame position math
17
29
  * (INSET / EXTRA_OUTWARD) stays consistent with the strokes already
18
30
  * baked into the SVG markup. */
@@ -34,5 +46,5 @@ export interface GlowHandles {
34
46
  lastExtraStroke: string;
35
47
  }
36
48
  export declare function injectGlow(container: HTMLElement, opts: GlowOptions): GlowHandles;
37
- export declare function updateGlow(h: GlowHandles, inst: MetalFxInstance, nowMs: number, strengthMul: number, theme?: 'dark' | 'light'): void;
49
+ export declare function updateGlow(h: GlowHandles, inst: MetalFxInstance, nowMs: number, strengthMul: number, theme?: "dark" | "light"): void;
38
50
  export declare function resizeGlow(handles: GlowHandles, container: HTMLElement, opts: GlowOptions): GlowHandles;