@placeholderco/placeholder-ui 1.0.3 → 1.0.6

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 (136) hide show
  1. package/LICENSE +26 -26
  2. package/README.md +179 -179
  3. package/dist/display/Alert.svelte +179 -179
  4. package/dist/display/Avatar.svelte +166 -166
  5. package/dist/display/LinkCollection.svelte +161 -161
  6. package/dist/display/Paper.svelte +118 -118
  7. package/dist/form/Autocomplete.svelte +223 -191
  8. package/dist/form/Autocomplete.svelte.d.ts +3 -1
  9. package/dist/form/AutocompleteMulti.svelte +356 -0
  10. package/dist/form/AutocompleteMulti.svelte.d.ts +28 -0
  11. package/dist/form/Checkbox.svelte +201 -201
  12. package/dist/form/Chips.svelte +128 -128
  13. package/dist/form/ComboBox.svelte +158 -158
  14. package/dist/form/ComboBox.svelte.d.ts +1 -1
  15. package/dist/form/ComboBoxItemBuilder.svelte +460 -460
  16. package/dist/form/ComboBoxMulti.svelte +197 -197
  17. package/dist/form/ComboBoxMulti.svelte.d.ts +1 -1
  18. package/dist/form/CronBuilder.svelte +693 -693
  19. package/dist/form/DatePicker.svelte +672 -672
  20. package/dist/form/DateTimePicker.svelte +712 -712
  21. package/dist/form/FileInput.svelte +235 -235
  22. package/dist/form/FormGroup.svelte +68 -68
  23. package/dist/form/Number.svelte +238 -238
  24. package/dist/form/PasswordInput.svelte +252 -252
  25. package/dist/form/RadioGroup.svelte +210 -210
  26. package/dist/form/Rating.svelte +235 -235
  27. package/dist/form/SegmentedControl.svelte +149 -149
  28. package/dist/form/Select.svelte +590 -590
  29. package/dist/form/Select.svelte.d.ts +1 -1
  30. package/dist/form/SelectMulti.svelte +613 -613
  31. package/dist/form/SelectMulti.svelte.d.ts +1 -1
  32. package/dist/form/Slider.svelte +358 -358
  33. package/dist/form/Switch.svelte +147 -147
  34. package/dist/form/TextArea.svelte +148 -148
  35. package/dist/form/Textbox.svelte +228 -228
  36. package/dist/form/TimePicker.svelte +267 -267
  37. package/dist/icon/Icon.svelte +52 -52
  38. package/dist/icon/alert-octagon.svg +5 -5
  39. package/dist/icon/alert-triangle.svg +5 -5
  40. package/dist/icon/archive.svg +1 -1
  41. package/dist/icon/arrow-down.svg +1 -1
  42. package/dist/icon/arrow-left.svg +1 -1
  43. package/dist/icon/arrow-right.svg +1 -1
  44. package/dist/icon/arrow-up.svg +1 -1
  45. package/dist/icon/at.svg +1 -1
  46. package/dist/icon/bell.svg +1 -1
  47. package/dist/icon/bookmark.svg +1 -1
  48. package/dist/icon/calendar.svg +1 -1
  49. package/dist/icon/camera.svg +1 -1
  50. package/dist/icon/chart-bar.svg +1 -1
  51. package/dist/icon/chart-line.svg +1 -1
  52. package/dist/icon/chart-pie.svg +1 -1
  53. package/dist/icon/checkbox.svg +1 -1
  54. package/dist/icon/checklist.svg +1 -1
  55. package/dist/icon/circle-check.svg +1 -1
  56. package/dist/icon/circle-x.svg +1 -1
  57. package/dist/icon/clock.svg +1 -1
  58. package/dist/icon/credit-card.svg +1 -1
  59. package/dist/icon/dots-vertical.svg +1 -1
  60. package/dist/icon/dots.svg +1 -1
  61. package/dist/icon/external-link.svg +1 -1
  62. package/dist/icon/eye-off.svg +1 -1
  63. package/dist/icon/eye.svg +1 -1
  64. package/dist/icon/filter.svg +1 -1
  65. package/dist/icon/fingerprint.svg +1 -1
  66. package/dist/icon/flag.svg +1 -1
  67. package/dist/icon/heart.svg +1 -1
  68. package/dist/icon/home.svg +1 -1
  69. package/dist/icon/key.svg +1 -1
  70. package/dist/icon/list-check.svg +1 -1
  71. package/dist/icon/login.svg +1 -1
  72. package/dist/icon/logout.svg +1 -1
  73. package/dist/icon/map-pin.svg +1 -1
  74. package/dist/icon/maximize.svg +1 -1
  75. package/dist/icon/microphone.svg +1 -1
  76. package/dist/icon/minimize.svg +1 -1
  77. package/dist/icon/note.svg +1 -1
  78. package/dist/icon/player-pause.svg +1 -1
  79. package/dist/icon/printer.svg +1 -1
  80. package/dist/icon/qrcode.svg +1 -1
  81. package/dist/icon/send.svg +1 -1
  82. package/dist/icon/settings.svg +1 -1
  83. package/dist/icon/share.svg +1 -1
  84. package/dist/icon/shopping-cart.svg +1 -1
  85. package/dist/icon/sort-ascending.svg +1 -1
  86. package/dist/icon/sort-descending.svg +1 -1
  87. package/dist/icon/star.svg +1 -1
  88. package/dist/icon/tag.svg +1 -1
  89. package/dist/icon/trending-down.svg +1 -1
  90. package/dist/icon/trending-up.svg +1 -1
  91. package/dist/icon/upload.svg +1 -1
  92. package/dist/icon/volume-off.svg +1 -1
  93. package/dist/icon/volume.svg +1 -1
  94. package/dist/icon/world.svg +1 -1
  95. package/dist/icon/zoom-in.svg +1 -1
  96. package/dist/icon/zoom-out.svg +1 -1
  97. package/dist/index.d.ts +1 -0
  98. package/dist/index.js +1 -0
  99. package/dist/layout/AppShell.svelte +169 -169
  100. package/dist/layout/CustomNavbar.svelte +61 -61
  101. package/dist/layout/Navbar.svelte +206 -206
  102. package/dist/layout/NavbarItemDisplay.svelte +29 -29
  103. package/dist/layout/Sidenav.svelte +712 -712
  104. package/dist/styles/components.css +199 -199
  105. package/dist/styles/dark.css +146 -146
  106. package/dist/styles/index.css +116 -116
  107. package/dist/styles/reset.css +110 -110
  108. package/dist/styles/semantic.css +86 -86
  109. package/dist/styles/tokens.css +203 -197
  110. package/dist/styles/utilities.css +523 -523
  111. package/dist/ui/Accordion.svelte +289 -289
  112. package/dist/ui/ActionIcon.svelte +76 -76
  113. package/dist/ui/Badge.svelte +329 -279
  114. package/dist/ui/Breadcrumbs.svelte +131 -131
  115. package/dist/ui/Button.svelte +432 -370
  116. package/dist/ui/ButtonVariant.d.ts +1 -1
  117. package/dist/ui/Dialog.svelte +307 -307
  118. package/dist/ui/Drawer.svelte +524 -524
  119. package/dist/ui/Dropdown.svelte +97 -97
  120. package/dist/ui/Dropzone.svelte +122 -122
  121. package/dist/ui/Link.svelte +32 -32
  122. package/dist/ui/Loader.svelte +70 -70
  123. package/dist/ui/LoadingOverlay.svelte +53 -53
  124. package/dist/ui/Pagination.svelte +135 -135
  125. package/dist/ui/Popover.svelte +225 -225
  126. package/dist/ui/Progress.svelte +191 -191
  127. package/dist/ui/RingProgress.svelte +141 -141
  128. package/dist/ui/Skeleton.svelte +85 -85
  129. package/dist/ui/Stepper.svelte +355 -355
  130. package/dist/ui/Table.svelte +345 -345
  131. package/dist/ui/Tabs.svelte +146 -146
  132. package/dist/ui/ThemeSwitcher.svelte +39 -39
  133. package/dist/ui/Timeline.svelte +225 -225
  134. package/dist/ui/Toaster.svelte +6 -6
  135. package/dist/ui/Tooltip.svelte +434 -434
  136. package/package.json +14 -14
@@ -1,279 +1,329 @@
1
- <script lang="ts">
2
- import Icon from '../icon/Icon.svelte';
3
- import { iconX } from '../icon/index.js';
4
- import type { Snippet } from 'svelte';
5
- import type { ButtonVariant } from './ButtonVariant.js';
6
-
7
- interface Props {
8
- variant?: ButtonVariant;
9
- shape?: 'pill' | 'default';
10
- href?: string;
11
- loading?: boolean;
12
- disabled?: boolean;
13
- onDelete?: () => void;
14
- onClick?: () => void;
15
- children: Snippet;
16
- }
17
-
18
- let {
19
- variant = 'primary',
20
- shape = 'default',
21
- href = undefined,
22
- loading = false,
23
- disabled = false,
24
- onDelete = undefined,
25
- onClick = undefined,
26
- children
27
- }: Props = $props();
28
-
29
- let isDisabled: boolean = $derived(loading || disabled);
30
- let type: 'a' | 'button' | 'div' = $derived(onClick ? 'button' : href ? 'a' : 'div');
31
-
32
- const elClass = $derived(
33
- `badge ${isDisabled ? 'disabled' : ''}`
34
- );
35
- </script>
36
-
37
- <div class="badge-container {variant} shape-{shape} {onDelete ? 'badge-with-button' : ''} ">
38
- {#if type == 'a' && !disabled}
39
- <a class={elClass} {href}> {@render children?.()}</a>
40
- {:else if type == 'button'}
41
- <button class={elClass} disabled={isDisabled}> {@render children?.()}</button>
42
- {:else}
43
- <div class={elClass}>
44
- {@render children?.()}
45
- </div>
46
- {/if}
47
- {#if onDelete}
48
- <button class="badge-button {variant}" disabled={isDisabled} onclick={onDelete}>
49
- <Icon size="14px" svg={iconX} />
50
- </button>
51
- {/if}
52
- </div>
53
-
54
- <style>
55
- .badge-container {
56
- display: flex;
57
- border-radius: var(--pui-radius-lg);
58
- border: var(--badge-border, 0);
59
- }
60
-
61
- .badge {
62
- font-size: var(--pui-font-size-base);
63
- line-height: var(--pui-line-height-tight);
64
- letter-spacing: var(--pui-letter-spacing-wide);
65
- display: flex;
66
- justify-content: center;
67
- align-items: center;
68
- text-decoration: none;
69
- padding: var(--pui-spacing-1);
70
- border-radius: var(--pui-radius-lg);
71
- }
72
-
73
- button.badge,
74
- a.badge {
75
- cursor: pointer;
76
- }
77
-
78
- .badge-with-button .badge {
79
- padding-right: var(--pui-spacing-1_5);
80
- border-top-right-radius: 0;
81
- border-bottom-right-radius: 0;
82
- }
83
-
84
- .badge-button {
85
- border-radius: var(--pui-radius-lg);
86
- border-top-left-radius: 0;
87
- border-bottom-left-radius: 0;
88
- border-left: 1px solid var(--badge-border-color, var(--pui-color-black));
89
- display: flex;
90
- align-items: center;
91
- justify-content: center;
92
- cursor: pointer;
93
- border-right: var(--badge-border, 0);
94
- padding: var(--pui-spacing-1);
95
- }
96
-
97
- button {
98
- border: none;
99
- }
100
-
101
- button.badge-button:active,
102
- button.badge:active:not(:disabled),
103
- a.badge:active:not(:disabled) {
104
- transform: translateY(1px);
105
- }
106
-
107
- a {
108
- color: var(--badge-text-color) !important;
109
- }
110
-
111
- .secondary {
112
- --badge-bg-color: var(--pui-color-secondary);
113
- --badge-text-color: var(--pui-color-primary);
114
- --badge-hover-bg-color: var(--pui-color-accent);
115
- --badge-border-color: var(--pui-color-secondary-dark);
116
- --badge-outline-color: var(--pui-color-accent);
117
- }
118
-
119
- .secondary :global(.loader) {
120
- color: var(--pui-color-primary);
121
- }
122
-
123
- .primary {
124
- --badge-bg-color: var(--pui-color-primary);
125
- --badge-text-color: var(--pui-color-white);
126
- --badge-hover-bg-color: var(--pui-color-secondary-dark);
127
- --badge-border-color: var(--pui-color-accent-dark);
128
- --badge-outline-color: var(--pui-color-secondary-dark);
129
- }
130
-
131
- .primary :global(.loader) {
132
- color: var(--pui-color-secondary);
133
- }
134
-
135
- .white {
136
- --badge-bg-color: var(--pui-color-white);
137
- --badge-text-color: var(--pui-color-primary);
138
- --badge-hover-bg-color: var(--pui-color-accent);
139
- --badge-border-color: var(--pui-color-gray-200);
140
- --badge-outline-color: var(--pui-color-accent);
141
- }
142
-
143
- .muted {
144
- --badge-bg-color: var(--pui-input-bg);
145
- --badge-border: 1px solid var(--pui-border-default);
146
- --badge-border-color: var(--pui-border-default);
147
- --badge-hover-bg-color: var(--pui-border-default);
148
- --badge-outline-color: var(--pui-text-primary);
149
- }
150
-
151
- .muted-selected {
152
- --badge-bg-color: var(--pui-accent-color);
153
- --badge-border: 1px solid var(--pui-accent-color);
154
- --badge-border-color: var(--pui-accent-color);
155
- --badge-text-color: var(--pui-color-white);
156
- }
157
-
158
- .danger {
159
- --badge-text-color: var(--pui-color-white);
160
- --badge-bg-color: var(--pui-color-danger);
161
- --badge-hover-bg-color: var(--pui-color-danger-hover);
162
- --badge-outline-color: var(--pui-color-accent);
163
- --badge-border-color: var(--pui-color-danger-hover);
164
- }
165
-
166
- .danger :global(.loader) {
167
- color: var(--pui-color-white);
168
- }
169
-
170
- .auto-outline {
171
- --badge-text-color: var(--pui-color-primary);
172
- --badge-bg-color: initial;
173
- --badge-border: 1px solid var(--pui-color-primary);
174
- --badge-border-color: var(--pui-color-primary);
175
- --badge-hover-bg-color: var(--pui-color-secondary-dark);
176
- --badge-hover-border: 1px solid var(--pui-color-secondary-dark);
177
- --badge-outline-color: var(--pui-color-secondary-dark);
178
- }
179
-
180
- :global(.dark) .auto-outline {
181
- --badge-text-color: var(--pui-color-secondary);
182
- --badge-bg-color: initial;
183
- --badge-border: 1px solid var(--pui-color-secondary);
184
- --badge-border-color: var(--pui-color-secondary);
185
- --badge-hover-bg-color: var(--pui-color-accent);
186
- --badge-hover-border: 1px solid var(--pui-color-accent);
187
- --badge-outline-color: var(--pui-color-accent);
188
- }
189
-
190
- .secondary-outline {
191
- --badge-text-color: var(--pui-color-secondary);
192
- --badge-bg-color: initial;
193
- --badge-border: 1px solid var(--pui-color-secondary);
194
- --badge-border-color: var(--pui-color-secondary);
195
- --badge-hover-bg-color: var(--pui-color-accent);
196
- --badge-hover-border: 1px solid var(--pui-color-accent);
197
- --badge-outline-color: var(--pui-color-accent);
198
- }
199
-
200
- .primary-outline {
201
- --badge-text-color: var(--pui-color-primary);
202
- --badge-bg-color: initial;
203
- --badge-border: 1px solid var(--pui-color-primary);
204
- --badge-border-color: var(--pui-color-primary);
205
- --badge-hover-bg-color: var(--pui-color-secondary-dark);
206
- --badge-hover-border: 1px solid var(--pui-color-secondary-dark);
207
- --badge-outline-color: var(--pui-color-secondary-dark);
208
- }
209
-
210
- .accent {
211
- --badge-text-color: var(--pui-color-black);
212
- --badge-bg-color: var(--pui-color-accent);
213
- --badge-hover-bg-color: var(--pui-color-accent-dark);
214
- --badge-outline-color: var(--pui-color-accent);
215
- --badge-border-color: var(--pui-color-accent-dark);
216
- }
217
-
218
- button,
219
- a,
220
- div {
221
- border-color: var(--badge-border-color, var(--pui-color-primary));
222
- transition:
223
- color var(--pui-transition-fast) var(--pui-ease-in-out),
224
- background-color var(--pui-transition-fast) var(--pui-ease-in-out),
225
- border-color var(--pui-transition-fast) var(--pui-ease-in-out),
226
- box-shadow var(--pui-transition-fast) var(--pui-ease-in-out);
227
-
228
- color: var(--badge-text-color);
229
- background-color: var(--badge-bg-color);
230
- }
231
-
232
- button:hover:not(:disabled),
233
- a:hover:not(:disabled, div) {
234
- background-color: var(--badge-hover-bg-color, var(--badge-bg-color));
235
- border: var(--badge-hover-border, var(--badge-border, 0));
236
- }
237
-
238
- button:focus-visible,
239
- a:focus-visible {
240
- outline: solid var(--pui-focus-ring-width) var(--badge-outline-color, var(--pui-color-secondary-dark));
241
- outline-offset: var(--pui-focus-ring-offset);
242
- }
243
-
244
- :global(.dark) {
245
- .muted {
246
- --badge-hover-bg-color: var(--pui-color-dark-300);
247
- }
248
-
249
- .muted-subtle {
250
- --badge-hover-bg-color: var(--pui-color-dark-300);
251
- }
252
-
253
- .muted-selected {
254
- --badge-text-color: var(--pui-color-primary);
255
- }
256
-
257
- .auto-subtle {
258
- --badge-text-color: var(--pui-color-white);
259
- --badge-hover-bg-color: var(--pui-color-primary);
260
- --badge-outline-color: var(--pui-color-secondary);
261
- }
262
- }
263
-
264
- .disabled {
265
- opacity: 0.5;
266
- }
267
-
268
- .shape-pill {
269
- border-radius: var(--pui-radius-full);
270
- padding: var(--pui-spacing-1) var(--pui-spacing-2);
271
- }
272
-
273
- .shape-pill .badge {
274
- border: none;
275
- padding: 0;
276
- padding-right: var(--pui-spacing-1);
277
- }
278
-
279
- </style>
1
+ <script lang="ts">
2
+ import Icon from '../icon/Icon.svelte';
3
+ import { iconX } from '../icon/index.js';
4
+ import type { Snippet } from 'svelte';
5
+ import type { ButtonVariant } from './ButtonVariant.js';
6
+
7
+ interface Props {
8
+ variant?: ButtonVariant;
9
+ shape?: 'pill' | 'default';
10
+ href?: string;
11
+ loading?: boolean;
12
+ disabled?: boolean;
13
+ onDelete?: () => void;
14
+ onClick?: () => void;
15
+ children: Snippet;
16
+ }
17
+
18
+ let {
19
+ variant = 'primary',
20
+ shape = 'default',
21
+ href = undefined,
22
+ loading = false,
23
+ disabled = false,
24
+ onDelete = undefined,
25
+ onClick = undefined,
26
+ children
27
+ }: Props = $props();
28
+
29
+ let isDisabled: boolean = $derived(loading || disabled);
30
+ let type: 'a' | 'button' | 'div' = $derived(onClick ? 'button' : href ? 'a' : 'div');
31
+
32
+ const elClass = $derived(
33
+ `badge ${isDisabled ? 'disabled' : ''}`
34
+ );
35
+ </script>
36
+
37
+ <div class="badge-container {variant} shape-{shape} {onDelete ? 'badge-with-button' : ''} ">
38
+ {#if type == 'a' && !disabled}
39
+ <a class={elClass} {href}> {@render children?.()}</a>
40
+ {:else if type == 'button'}
41
+ <button class={elClass} disabled={isDisabled}> {@render children?.()}</button>
42
+ {:else}
43
+ <div class={elClass}>
44
+ {@render children?.()}
45
+ </div>
46
+ {/if}
47
+ {#if onDelete}
48
+ <button class="badge-button {variant}" disabled={isDisabled} onclick={onDelete}>
49
+ <Icon size="14px" svg={iconX} />
50
+ </button>
51
+ {/if}
52
+ </div>
53
+
54
+ <style>
55
+ .badge-container {
56
+ display: flex;
57
+ border-radius: var(--pui-radius-lg);
58
+ border: var(--badge-border, 0);
59
+ }
60
+
61
+ .badge {
62
+ font-size: var(--pui-font-size-base);
63
+ line-height: var(--pui-line-height-tight);
64
+ letter-spacing: var(--pui-letter-spacing-wide);
65
+ display: flex;
66
+ justify-content: center;
67
+ align-items: center;
68
+ text-decoration: none;
69
+ padding: var(--pui-spacing-1);
70
+ border-radius: var(--pui-radius-lg);
71
+ }
72
+
73
+ button.badge,
74
+ a.badge {
75
+ cursor: pointer;
76
+ }
77
+
78
+ .badge-with-button .badge {
79
+ padding-right: var(--pui-spacing-1_5);
80
+ border-top-right-radius: 0;
81
+ border-bottom-right-radius: 0;
82
+ }
83
+
84
+ .badge-button {
85
+ border-radius: var(--pui-radius-lg);
86
+ border-top-left-radius: 0;
87
+ border-bottom-left-radius: 0;
88
+ border-left: 1px solid var(--badge-border-color, var(--pui-color-black));
89
+ display: flex;
90
+ align-items: center;
91
+ justify-content: center;
92
+ cursor: pointer;
93
+ border-right: var(--badge-border, 0);
94
+ padding: var(--pui-spacing-1);
95
+ }
96
+
97
+ button {
98
+ border: none;
99
+ }
100
+
101
+ button.badge-button:active,
102
+ button.badge:active:not(:disabled),
103
+ a.badge:active:not(:disabled) {
104
+ transform: translateY(1px);
105
+ }
106
+
107
+ a {
108
+ color: var(--badge-text-color) !important;
109
+ }
110
+
111
+ .secondary {
112
+ --badge-bg-color: var(--pui-color-secondary);
113
+ --badge-text-color: var(--pui-color-primary);
114
+ --badge-hover-bg-color: var(--pui-color-accent);
115
+ --badge-border-color: var(--pui-color-secondary-dark);
116
+ --badge-outline-color: var(--pui-color-accent);
117
+ }
118
+
119
+ .secondary :global(.loader) {
120
+ color: var(--pui-color-primary);
121
+ }
122
+
123
+ .primary {
124
+ --badge-bg-color: var(--pui-color-primary);
125
+ --badge-text-color: var(--pui-color-white);
126
+ --badge-hover-bg-color: var(--pui-color-secondary-dark);
127
+ --badge-border-color: var(--pui-color-accent-dark);
128
+ --badge-outline-color: var(--pui-color-secondary-dark);
129
+ }
130
+
131
+ .primary :global(.loader) {
132
+ color: var(--pui-color-secondary);
133
+ }
134
+
135
+ .white {
136
+ --badge-bg-color: var(--pui-color-white);
137
+ --badge-text-color: var(--pui-color-primary);
138
+ --badge-hover-bg-color: var(--pui-color-accent);
139
+ --badge-border-color: var(--pui-color-gray-200);
140
+ --badge-outline-color: var(--pui-color-accent);
141
+ }
142
+
143
+ .muted {
144
+ --badge-bg-color: var(--pui-input-bg);
145
+ --badge-border: 1px solid var(--pui-border-default);
146
+ --badge-border-color: var(--pui-border-default);
147
+ --badge-hover-bg-color: var(--pui-border-default);
148
+ --badge-outline-color: var(--pui-text-primary);
149
+ }
150
+
151
+ .muted-selected {
152
+ --badge-bg-color: var(--pui-accent-color);
153
+ --badge-border: 1px solid var(--pui-accent-color);
154
+ --badge-border-color: var(--pui-accent-color);
155
+ --badge-text-color: var(--pui-color-white);
156
+ }
157
+
158
+ .danger {
159
+ --badge-text-color: var(--pui-color-white);
160
+ --badge-bg-color: var(--pui-color-danger);
161
+ --badge-hover-bg-color: var(--pui-color-danger-hover);
162
+ --badge-outline-color: var(--pui-color-accent);
163
+ --badge-border-color: var(--pui-color-danger-hover);
164
+ }
165
+
166
+ .danger :global(.loader) {
167
+ color: var(--pui-color-white);
168
+ }
169
+
170
+ .auto-outline {
171
+ --badge-text-color: var(--pui-color-primary);
172
+ --badge-bg-color: initial;
173
+ --badge-border: 1px solid var(--pui-color-primary);
174
+ --badge-border-color: var(--pui-color-primary);
175
+ --badge-hover-bg-color: var(--pui-color-secondary-dark);
176
+ --badge-hover-border: 1px solid var(--pui-color-secondary-dark);
177
+ --badge-outline-color: var(--pui-color-secondary-dark);
178
+ }
179
+
180
+ :global(.dark) .auto-outline {
181
+ --badge-text-color: var(--pui-color-secondary);
182
+ --badge-bg-color: initial;
183
+ --badge-border: 1px solid var(--pui-color-secondary);
184
+ --badge-border-color: var(--pui-color-secondary);
185
+ --badge-hover-bg-color: var(--pui-color-accent);
186
+ --badge-hover-border: 1px solid var(--pui-color-accent);
187
+ --badge-outline-color: var(--pui-color-accent);
188
+ }
189
+
190
+ .secondary-outline {
191
+ --badge-text-color: var(--pui-color-secondary);
192
+ --badge-bg-color: initial;
193
+ --badge-border: 1px solid var(--pui-color-secondary);
194
+ --badge-border-color: var(--pui-color-secondary);
195
+ --badge-hover-bg-color: var(--pui-color-accent);
196
+ --badge-hover-border: 1px solid var(--pui-color-accent);
197
+ --badge-outline-color: var(--pui-color-accent);
198
+ }
199
+
200
+ .primary-outline {
201
+ --badge-text-color: var(--pui-color-primary);
202
+ --badge-bg-color: initial;
203
+ --badge-border: 1px solid var(--pui-color-primary);
204
+ --badge-border-color: var(--pui-color-primary);
205
+ --badge-hover-bg-color: var(--pui-color-secondary-dark);
206
+ --badge-hover-border: 1px solid var(--pui-color-secondary-dark);
207
+ --badge-outline-color: var(--pui-color-secondary-dark);
208
+ }
209
+
210
+ .accent {
211
+ --badge-text-color: var(--pui-color-black);
212
+ --badge-bg-color: var(--pui-color-accent);
213
+ --badge-hover-bg-color: var(--pui-color-accent-dark);
214
+ --badge-outline-color: var(--pui-color-accent);
215
+ --badge-border-color: var(--pui-color-accent-dark);
216
+ }
217
+
218
+ .success {
219
+ --badge-text-color: var(--pui-color-white);
220
+ --badge-bg-color: var(--pui-color-success);
221
+ --badge-hover-bg-color: var(--pui-color-success-hover);
222
+ --badge-outline-color: var(--pui-color-success);
223
+ --badge-border-color: var(--pui-color-success-hover);
224
+ }
225
+
226
+ .success :global(.loader) {
227
+ color: var(--pui-color-white);
228
+ }
229
+
230
+ .success-subtle {
231
+ --badge-text-color: var(--pui-color-success);
232
+ --badge-bg-color: var(--pui-color-success-subtle);
233
+ --badge-hover-bg-color: var(--pui-color-success-subtle-dark);
234
+ --badge-outline-color: var(--pui-color-success);
235
+ --badge-border-color: var(--pui-color-success);
236
+ }
237
+
238
+ .warning {
239
+ --badge-text-color: var(--pui-color-black);
240
+ --badge-bg-color: var(--pui-color-warning);
241
+ --badge-hover-bg-color: var(--pui-color-warning-hover);
242
+ --badge-outline-color: var(--pui-color-warning);
243
+ --badge-border-color: var(--pui-color-warning-hover);
244
+ }
245
+
246
+ .warning :global(.loader) {
247
+ color: var(--pui-color-black);
248
+ }
249
+
250
+ .warning-subtle {
251
+ --badge-text-color: var(--pui-color-warning-dark);
252
+ --badge-bg-color: var(--pui-color-warning-subtle);
253
+ --badge-hover-bg-color: var(--pui-color-warning-subtle-dark);
254
+ --badge-outline-color: var(--pui-color-warning);
255
+ --badge-border-color: var(--pui-color-warning);
256
+ }
257
+
258
+ button,
259
+ a,
260
+ div {
261
+ border-color: var(--badge-border-color, var(--pui-color-primary));
262
+ transition:
263
+ color var(--pui-transition-fast) var(--pui-ease-in-out),
264
+ background-color var(--pui-transition-fast) var(--pui-ease-in-out),
265
+ border-color var(--pui-transition-fast) var(--pui-ease-in-out),
266
+ box-shadow var(--pui-transition-fast) var(--pui-ease-in-out);
267
+
268
+ color: var(--badge-text-color);
269
+ background-color: var(--badge-bg-color);
270
+ }
271
+
272
+ button:hover:not(:disabled),
273
+ a:hover:not(:disabled, div) {
274
+ background-color: var(--badge-hover-bg-color, var(--badge-bg-color));
275
+ border: var(--badge-hover-border, var(--badge-border, 0));
276
+ }
277
+
278
+ button:focus-visible,
279
+ a:focus-visible {
280
+ outline: solid var(--pui-focus-ring-width) var(--badge-outline-color, var(--pui-color-secondary-dark));
281
+ outline-offset: var(--pui-focus-ring-offset);
282
+ }
283
+
284
+ :global(.dark) {
285
+ .muted {
286
+ --badge-hover-bg-color: var(--pui-color-dark-300);
287
+ }
288
+
289
+ .muted-subtle {
290
+ --badge-hover-bg-color: var(--pui-color-dark-300);
291
+ }
292
+
293
+ .muted-selected {
294
+ --badge-text-color: var(--pui-color-primary);
295
+ }
296
+
297
+ .auto-subtle {
298
+ --badge-text-color: var(--pui-color-white);
299
+ --badge-hover-bg-color: var(--pui-color-primary);
300
+ --badge-outline-color: var(--pui-color-secondary);
301
+ }
302
+
303
+ .success-subtle {
304
+ --badge-bg-color: var(--pui-color-success-subtle-dark);
305
+ --badge-hover-bg-color: rgba(55, 178, 77, 0.3);
306
+ }
307
+
308
+ .warning-subtle {
309
+ --badge-bg-color: var(--pui-color-warning-subtle-dark);
310
+ --badge-hover-bg-color: rgba(252, 196, 25, 0.3);
311
+ }
312
+ }
313
+
314
+ .disabled {
315
+ opacity: 0.5;
316
+ }
317
+
318
+ .shape-pill {
319
+ border-radius: var(--pui-radius-full);
320
+ padding: var(--pui-spacing-1) var(--pui-spacing-2);
321
+ }
322
+
323
+ .shape-pill .badge {
324
+ border: none;
325
+ padding: 0;
326
+ padding-right: var(--pui-spacing-1);
327
+ }
328
+
329
+ </style>