@pathscale/ui 1.2.10 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. package/LICENSE +22 -22
  2. package/README.md +132 -59
  3. package/dist/components/accordion/Accordion.css +158 -158
  4. package/dist/components/alert/Alert.css +116 -116
  5. package/dist/components/avatar/Avatar.css +124 -124
  6. package/dist/components/badge/Badge.css +164 -164
  7. package/dist/components/breadcrumbs/Breadcrumbs.css +63 -63
  8. package/dist/components/button/Button.css +194 -194
  9. package/dist/components/button-group/ButtonGroup.css +117 -117
  10. package/dist/components/calendar/Calendar.css +258 -258
  11. package/dist/components/card/Card.css +110 -110
  12. package/dist/components/chatbubble/ChatBubble.css +164 -164
  13. package/dist/components/checkbox/Checkbox.css +183 -183
  14. package/dist/components/checkbox-group/CheckboxGroup.css +10 -10
  15. package/dist/components/chip/Chip.css +197 -197
  16. package/dist/components/close-button/CloseButton.css +81 -81
  17. package/dist/components/color-area/ColorArea.css +54 -54
  18. package/dist/components/color-field/ColorField.css +88 -88
  19. package/dist/components/color-picker/ColorPicker.css +28 -28
  20. package/dist/components/color-slider/ColorSlider.css +57 -57
  21. package/dist/components/color-swatch/ColorSwatch.css +84 -84
  22. package/dist/components/color-swatch-picker/ColorSwatchPicker.css +12 -12
  23. package/dist/components/color-wheel-flower/ColorWheelFlower.css +147 -147
  24. package/dist/components/combo-box/ComboBox.css +344 -344
  25. package/dist/components/date-field/DateField.css +215 -215
  26. package/dist/components/date-picker/DatePicker.css +143 -143
  27. package/dist/components/date-range-picker/DateRangePicker.css +149 -149
  28. package/dist/components/description/Description.css +10 -10
  29. package/dist/components/disclosure/Disclosure.css +84 -84
  30. package/dist/components/disclosure-group/DisclosureGroup.css +9 -9
  31. package/dist/components/drawer/Drawer.css +463 -463
  32. package/dist/components/dropdown/Dropdown.css +211 -211
  33. package/dist/components/empty-state/EmptyState.css +39 -39
  34. package/dist/components/error-message/ErrorMessage.css +20 -20
  35. package/dist/components/field-error/FieldError.css +27 -27
  36. package/dist/components/fieldset/Fieldset.css +30 -30
  37. package/dist/components/flex/Flex.css +5 -5
  38. package/dist/components/floating-dock/FloatingDock.css +208 -208
  39. package/dist/components/footer/footer.css +51 -51
  40. package/dist/components/form/Form.css +5 -5
  41. package/dist/components/glass-panel/GlassPanel.css +359 -359
  42. package/dist/components/glow-card/GlowCard.css +100 -100
  43. package/dist/components/grid/Grid.css +5 -5
  44. package/dist/components/header/Header.css +13 -13
  45. package/dist/components/icon/Icon.css +10 -10
  46. package/dist/components/immersive-landing/ImmersiveLanding.css +565 -565
  47. package/dist/components/input/Input.css +155 -155
  48. package/dist/components/input-group/InputGroup.css +172 -172
  49. package/dist/components/input-otp/InputOTP.css +170 -170
  50. package/dist/components/kbd/Kbd.css +60 -60
  51. package/dist/components/label/Label.css +30 -30
  52. package/dist/components/language-switcher/LanguageSwitcher.css +56 -56
  53. package/dist/components/language-switcher/createI18n.d.ts +2 -1
  54. package/dist/components/link/Link.css +131 -131
  55. package/dist/components/list-box/ListBox.css +148 -148
  56. package/dist/components/live-chat/LiveChat.css +324 -324
  57. package/dist/components/menu/Menu.css +199 -199
  58. package/dist/components/metal-border/MetalBorder.classes.d.ts +26 -0
  59. package/dist/components/metal-border/MetalBorder.classes.js +27 -0
  60. package/dist/components/metal-border/MetalBorder.css +40 -0
  61. package/dist/components/metal-border/MetalBorder.d.ts +20 -0
  62. package/dist/components/metal-border/MetalBorder.js +322 -0
  63. package/dist/components/metal-border/engine/color.d.ts +4 -0
  64. package/dist/components/metal-border/engine/color.js +69 -0
  65. package/dist/components/metal-border/engine/glow/geometry.d.ts +35 -0
  66. package/dist/components/metal-border/engine/glow/geometry.js +176 -0
  67. package/dist/components/metal-border/engine/glow/glow.d.ts +38 -0
  68. package/dist/components/metal-border/engine/glow/glow.js +246 -0
  69. package/dist/components/metal-border/engine/index.d.ts +4 -0
  70. package/dist/components/metal-border/engine/index.js +2 -0
  71. package/dist/components/metal-border/engine/perfConfig.d.ts +9 -0
  72. package/dist/components/metal-border/engine/perfConfig.js +10 -0
  73. package/dist/components/metal-border/engine/presets.d.ts +57 -0
  74. package/dist/components/metal-border/engine/presets.js +214 -0
  75. package/dist/components/metal-border/engine/renderer/core.d.ts +69 -0
  76. package/dist/components/metal-border/engine/renderer/core.js +156 -0
  77. package/dist/components/metal-border/engine/renderer/loop.d.ts +30 -0
  78. package/dist/components/metal-border/engine/renderer/loop.js +248 -0
  79. package/dist/components/metal-border/engine/renderer/sampling.d.ts +14 -0
  80. package/dist/components/metal-border/engine/renderer/sampling.js +145 -0
  81. package/dist/components/metal-border/engine/shaders.d.ts +36 -0
  82. package/dist/components/metal-border/engine/shaders.js +215 -0
  83. package/dist/components/metal-border/engine/tween.d.ts +17 -0
  84. package/dist/components/metal-border/engine/tween.js +28 -0
  85. package/dist/components/metal-border/index.d.ts +2 -0
  86. package/dist/components/metal-border/index.js +1 -0
  87. package/dist/components/meter/Meter.css +89 -89
  88. package/dist/components/modal/Modal.css +320 -320
  89. package/dist/components/navbar/Navbar.css +110 -110
  90. package/dist/components/noise-background/NoiseBackground.css +66 -66
  91. package/dist/components/number-field/NumberField.css +198 -198
  92. package/dist/components/pagination/Pagination.css +121 -121
  93. package/dist/components/popover/Popover.css +117 -117
  94. package/dist/components/progress-bar/ProgressBar.css +104 -104
  95. package/dist/components/progress-circle/ProgressCircle.css +82 -82
  96. package/dist/components/radio/Radio.css +129 -129
  97. package/dist/components/radio-group/RadioGroup.css +58 -58
  98. package/dist/components/range-calendar/RangeCalendar.css +51 -51
  99. package/dist/components/scroll-shadow/ScrollShadow.css +93 -93
  100. package/dist/components/search-field/SearchField.css +183 -183
  101. package/dist/components/select/Select.css +284 -284
  102. package/dist/components/separator/Separator.css +35 -35
  103. package/dist/components/skeleton/Skeleton.css +95 -95
  104. package/dist/components/slider/Slider.css +122 -122
  105. package/dist/components/spinner/Spinner.css +131 -131
  106. package/dist/components/surface/Surface.css +37 -37
  107. package/dist/components/table/Table.css +426 -426
  108. package/dist/components/tabs/Tabs.css +203 -203
  109. package/dist/components/tag/Tag.css +121 -121
  110. package/dist/components/tag-group/TagGroup.css +22 -22
  111. package/dist/components/text/Text.css +66 -66
  112. package/dist/components/text-area/TextArea.css +95 -95
  113. package/dist/components/text-field/TextField.css +33 -33
  114. package/dist/components/time-field/TimeField.css +215 -215
  115. package/dist/components/toast/Toast.css +344 -344
  116. package/dist/components/toggle/Toggle.css +237 -237
  117. package/dist/components/toolbar/Toolbar.css +55 -55
  118. package/dist/components/tooltip/Tooltip.css +153 -153
  119. package/dist/index.css +74 -74
  120. package/dist/index.d.ts +2 -0
  121. package/dist/index.js +1 -0
  122. package/dist/purge-manifest.json +15836 -15583
  123. package/dist/styles/base/index.css +43 -43
  124. package/dist/styles/themes/dark.css +141 -141
  125. package/dist/styles/themes/light.css +143 -143
  126. package/package.json +17 -8
@@ -1,95 +1,95 @@
1
- @layer components {
2
- /* -------------------------------------------------------------------------------------------------
3
- * Base
4
- * -----------------------------------------------------------------------------------------------*/
5
- .skeleton {
6
- pointer-events: none;
7
- position: relative;
8
- overflow: hidden;
9
- border-radius: var(--radius-field, 0.25rem);
10
- background-color: color-mix(in oklab, var(--color-base-300) 70%, transparent);
11
- }
12
-
13
- /* -------------------------------------------------------------------------------------------------
14
- * Shimmer animation
15
- * -----------------------------------------------------------------------------------------------*/
16
- .skeleton--shimmer::after {
17
- content: "";
18
- position: absolute;
19
- inset: 0;
20
- transform: translateX(-100%);
21
- background: linear-gradient(
22
- 90deg,
23
- transparent 0%,
24
- color-mix(in oklab, var(--color-base-300) 50%, transparent) 50%,
25
- transparent 100%
26
- );
27
- animation: skeleton-shimmer 1.5s ease-in-out infinite;
28
- }
29
-
30
- @keyframes skeleton-shimmer {
31
- 100% {
32
- transform: translateX(100%);
33
- }
34
- }
35
-
36
- /* Parent with nested skeletons: single synchronized shimmer */
37
- .skeleton--shimmer:has(.skeleton)::after {
38
- content: none;
39
- }
40
-
41
- .skeleton--shimmer:has(.skeleton)::before {
42
- content: "";
43
- position: absolute;
44
- inset: 0;
45
- z-index: 10;
46
- pointer-events: none;
47
- transform: translateX(-100%);
48
- background: linear-gradient(
49
- 90deg,
50
- transparent 0%,
51
- oklch(100% 0 0 / 0.5) 50%,
52
- transparent 100%
53
- );
54
- mix-blend-mode: overlay;
55
- animation: skeleton-shimmer 1.5s ease-in-out infinite;
56
- }
57
-
58
- .skeleton--shimmer:has(.skeleton) .skeleton::after {
59
- content: none;
60
- }
61
-
62
- /* -------------------------------------------------------------------------------------------------
63
- * Pulse animation
64
- * -----------------------------------------------------------------------------------------------*/
65
- .skeleton--pulse {
66
- animation: skeleton-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
67
- }
68
-
69
- @keyframes skeleton-pulse {
70
- 0%, 100% {
71
- opacity: 1;
72
- }
73
- 50% {
74
- opacity: 0.5;
75
- }
76
- }
77
-
78
- /* -------------------------------------------------------------------------------------------------
79
- * No animation
80
- * -----------------------------------------------------------------------------------------------*/
81
- .skeleton--none {
82
- /* Static placeholder, no animation */
83
- }
84
-
85
- /* -------------------------------------------------------------------------------------------------
86
- * Reduced motion
87
- * -----------------------------------------------------------------------------------------------*/
88
- @media (prefers-reduced-motion: reduce) {
89
- .skeleton--shimmer::after,
90
- .skeleton--shimmer::before,
91
- .skeleton--pulse {
92
- animation: none;
93
- }
94
- }
95
- }
1
+ @layer components {
2
+ /* -------------------------------------------------------------------------------------------------
3
+ * Base
4
+ * -----------------------------------------------------------------------------------------------*/
5
+ .skeleton {
6
+ pointer-events: none;
7
+ position: relative;
8
+ overflow: hidden;
9
+ border-radius: var(--radius-field, 0.25rem);
10
+ background-color: color-mix(in oklab, var(--color-base-300) 70%, transparent);
11
+ }
12
+
13
+ /* -------------------------------------------------------------------------------------------------
14
+ * Shimmer animation
15
+ * -----------------------------------------------------------------------------------------------*/
16
+ .skeleton--shimmer::after {
17
+ content: "";
18
+ position: absolute;
19
+ inset: 0;
20
+ transform: translateX(-100%);
21
+ background: linear-gradient(
22
+ 90deg,
23
+ transparent 0%,
24
+ color-mix(in oklab, var(--color-base-300) 50%, transparent) 50%,
25
+ transparent 100%
26
+ );
27
+ animation: skeleton-shimmer 1.5s ease-in-out infinite;
28
+ }
29
+
30
+ @keyframes skeleton-shimmer {
31
+ 100% {
32
+ transform: translateX(100%);
33
+ }
34
+ }
35
+
36
+ /* Parent with nested skeletons: single synchronized shimmer */
37
+ .skeleton--shimmer:has(.skeleton)::after {
38
+ content: none;
39
+ }
40
+
41
+ .skeleton--shimmer:has(.skeleton)::before {
42
+ content: "";
43
+ position: absolute;
44
+ inset: 0;
45
+ z-index: 10;
46
+ pointer-events: none;
47
+ transform: translateX(-100%);
48
+ background: linear-gradient(
49
+ 90deg,
50
+ transparent 0%,
51
+ oklch(100% 0 0 / 0.5) 50%,
52
+ transparent 100%
53
+ );
54
+ mix-blend-mode: overlay;
55
+ animation: skeleton-shimmer 1.5s ease-in-out infinite;
56
+ }
57
+
58
+ .skeleton--shimmer:has(.skeleton) .skeleton::after {
59
+ content: none;
60
+ }
61
+
62
+ /* -------------------------------------------------------------------------------------------------
63
+ * Pulse animation
64
+ * -----------------------------------------------------------------------------------------------*/
65
+ .skeleton--pulse {
66
+ animation: skeleton-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
67
+ }
68
+
69
+ @keyframes skeleton-pulse {
70
+ 0%, 100% {
71
+ opacity: 1;
72
+ }
73
+ 50% {
74
+ opacity: 0.5;
75
+ }
76
+ }
77
+
78
+ /* -------------------------------------------------------------------------------------------------
79
+ * No animation
80
+ * -----------------------------------------------------------------------------------------------*/
81
+ .skeleton--none {
82
+ /* Static placeholder, no animation */
83
+ }
84
+
85
+ /* -------------------------------------------------------------------------------------------------
86
+ * Reduced motion
87
+ * -----------------------------------------------------------------------------------------------*/
88
+ @media (prefers-reduced-motion: reduce) {
89
+ .skeleton--shimmer::after,
90
+ .skeleton--shimmer::before,
91
+ .skeleton--pulse {
92
+ animation: none;
93
+ }
94
+ }
95
+ }
@@ -1,122 +1,122 @@
1
- @layer components {
2
- .slider {
3
- display: grid;
4
- width: 100%;
5
- gap: 0.25rem;
6
- grid-template-areas:
7
- "label output"
8
- "track track";
9
- grid-template-columns: 1fr auto;
10
-
11
- --slider-thumb-w: 1.5rem;
12
- --slider-thumb-h: 1rem;
13
- --slider-h: 1.25rem;
14
- /* Inset padding = (track height - thumb height) / 2 */
15
- --slider-pad: calc((var(--slider-h) - var(--slider-thumb-h)) / 2);
16
- --slider-track-bg: var(--color-default);
17
- --slider-fill-bg: var(--color-accent);
18
- --slider-thumb-bg: var(--color-accent-foreground, white);
19
- }
20
-
21
- .slider__label {
22
- grid-area: label;
23
- width: fit-content;
24
- font-size: 0.875rem;
25
- font-weight: 500;
26
- }
27
-
28
- .slider__output {
29
- grid-area: output;
30
- font-size: 0.875rem;
31
- font-weight: 500;
32
- font-variant-numeric: tabular-nums;
33
- }
34
-
35
- .slider__track {
36
- grid-area: track;
37
- position: relative;
38
- height: var(--slider-h);
39
- border-radius: 9999px;
40
- background-color: var(--slider-track-bg);
41
- cursor: pointer;
42
- }
43
-
44
- .slider__fill {
45
- position: absolute;
46
- left: 0;
47
- top: 0;
48
- height: 100%;
49
- border-radius: 9999px;
50
- pointer-events: none;
51
- background-color: var(--slider-fill-bg);
52
- }
53
-
54
- .slider__thumb {
55
- position: absolute;
56
- top: 50%;
57
- z-index: 1;
58
- border-radius: 9999px;
59
- background-color: var(--slider-thumb-bg);
60
- cursor: grab;
61
- width: var(--slider-thumb-w);
62
- height: var(--slider-thumb-h);
63
- transform: translate(-50%, -50%);
64
- box-shadow:
65
- 0 0 5px 0 oklch(0% 0 0 / 0.02),
66
- 0 2px 10px 0 oklch(0% 0 0 / 0.06),
67
- 0 0 1px 0 oklch(0% 0 0 / 0.3);
68
- transition:
69
- transform 250ms ease,
70
- box-shadow 150ms ease;
71
- }
72
-
73
- .slider__thumb[data-dragging="true"] {
74
- cursor: grabbing;
75
- transform: translate(-50%, -50%) scale(0.9);
76
- }
77
-
78
- .slider__thumb[data-focus-visible="true"] {
79
- box-shadow:
80
- 0 0 0 3px color-mix(in oklab, var(--color-accent) 22%, transparent),
81
- 0 0 5px 0 oklch(0% 0 0 / 0.02),
82
- 0 2px 10px 0 oklch(0% 0 0 / 0.06);
83
- }
84
-
85
- .slider__thumb[data-disabled="true"] {
86
- cursor: default;
87
- }
88
-
89
- .slider[data-disabled="true"] {
90
- cursor: not-allowed;
91
- opacity: 0.55;
92
- }
93
-
94
- .slider[data-disabled="true"] .slider__label {
95
- opacity: 1;
96
- }
97
-
98
- .slider[data-disabled="true"] .slider__track {
99
- cursor: not-allowed;
100
- }
101
-
102
- .slider--sm {
103
- --slider-thumb-w: 1.125rem;
104
- --slider-thumb-h: 0.625rem;
105
- --slider-h: 1rem;
106
- }
107
-
108
- .slider--sm .slider__label,
109
- .slider--sm .slider__output {
110
- font-size: 0.75rem;
111
- }
112
-
113
- .slider--md {
114
- /* Default size */
115
- }
116
-
117
- .slider--lg {
118
- --slider-thumb-w: 1.75rem;
119
- --slider-thumb-h: 1.25rem;
120
- --slider-h: 1.5rem;
121
- }
122
- }
1
+ @layer components {
2
+ .slider {
3
+ display: grid;
4
+ width: 100%;
5
+ gap: 0.25rem;
6
+ grid-template-areas:
7
+ "label output"
8
+ "track track";
9
+ grid-template-columns: 1fr auto;
10
+
11
+ --slider-thumb-w: 1.5rem;
12
+ --slider-thumb-h: 1rem;
13
+ --slider-h: 1.25rem;
14
+ /* Inset padding = (track height - thumb height) / 2 */
15
+ --slider-pad: calc((var(--slider-h) - var(--slider-thumb-h)) / 2);
16
+ --slider-track-bg: var(--color-default);
17
+ --slider-fill-bg: var(--color-accent);
18
+ --slider-thumb-bg: var(--color-accent-foreground, white);
19
+ }
20
+
21
+ .slider__label {
22
+ grid-area: label;
23
+ width: fit-content;
24
+ font-size: 0.875rem;
25
+ font-weight: 500;
26
+ }
27
+
28
+ .slider__output {
29
+ grid-area: output;
30
+ font-size: 0.875rem;
31
+ font-weight: 500;
32
+ font-variant-numeric: tabular-nums;
33
+ }
34
+
35
+ .slider__track {
36
+ grid-area: track;
37
+ position: relative;
38
+ height: var(--slider-h);
39
+ border-radius: 9999px;
40
+ background-color: var(--slider-track-bg);
41
+ cursor: pointer;
42
+ }
43
+
44
+ .slider__fill {
45
+ position: absolute;
46
+ left: 0;
47
+ top: 0;
48
+ height: 100%;
49
+ border-radius: 9999px;
50
+ pointer-events: none;
51
+ background-color: var(--slider-fill-bg);
52
+ }
53
+
54
+ .slider__thumb {
55
+ position: absolute;
56
+ top: 50%;
57
+ z-index: 1;
58
+ border-radius: 9999px;
59
+ background-color: var(--slider-thumb-bg);
60
+ cursor: grab;
61
+ width: var(--slider-thumb-w);
62
+ height: var(--slider-thumb-h);
63
+ transform: translate(-50%, -50%);
64
+ box-shadow:
65
+ 0 0 5px 0 oklch(0% 0 0 / 0.02),
66
+ 0 2px 10px 0 oklch(0% 0 0 / 0.06),
67
+ 0 0 1px 0 oklch(0% 0 0 / 0.3);
68
+ transition:
69
+ transform 250ms ease,
70
+ box-shadow 150ms ease;
71
+ }
72
+
73
+ .slider__thumb[data-dragging="true"] {
74
+ cursor: grabbing;
75
+ transform: translate(-50%, -50%) scale(0.9);
76
+ }
77
+
78
+ .slider__thumb[data-focus-visible="true"] {
79
+ box-shadow:
80
+ 0 0 0 3px color-mix(in oklab, var(--color-accent) 22%, transparent),
81
+ 0 0 5px 0 oklch(0% 0 0 / 0.02),
82
+ 0 2px 10px 0 oklch(0% 0 0 / 0.06);
83
+ }
84
+
85
+ .slider__thumb[data-disabled="true"] {
86
+ cursor: default;
87
+ }
88
+
89
+ .slider[data-disabled="true"] {
90
+ cursor: not-allowed;
91
+ opacity: 0.55;
92
+ }
93
+
94
+ .slider[data-disabled="true"] .slider__label {
95
+ opacity: 1;
96
+ }
97
+
98
+ .slider[data-disabled="true"] .slider__track {
99
+ cursor: not-allowed;
100
+ }
101
+
102
+ .slider--sm {
103
+ --slider-thumb-w: 1.125rem;
104
+ --slider-thumb-h: 0.625rem;
105
+ --slider-h: 1rem;
106
+ }
107
+
108
+ .slider--sm .slider__label,
109
+ .slider--sm .slider__output {
110
+ font-size: 0.75rem;
111
+ }
112
+
113
+ .slider--md {
114
+ /* Default size */
115
+ }
116
+
117
+ .slider--lg {
118
+ --slider-thumb-w: 1.75rem;
119
+ --slider-thumb-h: 1.25rem;
120
+ --slider-h: 1.5rem;
121
+ }
122
+ }