11import { createStyles } from '@primereact/styles/utils' ;
22import type { InputTagsRootInstance } from '@primereact/types/primitive/inputtags' ;
3+ import { style } from '@primeuix/styles/autocomplete' ;
34import { isNotEmpty } from '@primeuix/utils' ;
45
5- const style = /*css*/ `
6+ const _style = /*css*/ `
7+ ${ style }
68 .p-inputtags {
79 display: flex;
810 flex-wrap: wrap;
@@ -25,6 +27,112 @@ const style = /*css*/ `
2527 box-shadow: dt('inputtext.shadow');
2628 }
2729
30+ .p-inputtags-popup {
31+ position: relative;
32+ background: var(--p-overlay-select-background);
33+ color: var(--p-overlay-select-color);
34+ border: 1px solid var(--p-overlay-select-border-color);
35+ border-radius: var(--p-overlay-select-border-radius);
36+ box-shadow: var(--p-overlay-select-shadow);
37+ width: var(--positioner-anchor-width, max-content);
38+ transform-origin: var(--transform-origin);
39+ will-change: transform, opacity;
40+ }
41+
42+
43+ .p-inputtags-list {
44+ list-style-type: none;
45+ margin: 0;
46+ padding: var(--p-list-padding, 0.25rem 0.25rem);
47+ outline: 0 none;
48+ display: flex;
49+ flex-direction: column;
50+ gap: var(--p-list-gap, 2px);
51+ overflow: auto;
52+ }
53+
54+
55+ .p-inputtags-option {
56+ display: flex;
57+ align-items: center;
58+ flex-shrink: 0;
59+ cursor: pointer;
60+ position: relative;
61+ overflow: hidden;
62+ padding: var(--p-list-option-padding);
63+ border: 0 none;
64+ border-radius: var(--p-list-option-border-radius);
65+ color: var(--p-list-option-color);
66+ transition:
67+ background var(--p-form-field-transition-duration),
68+ color var(--p-form-field-transition-duration),
69+ border-color var(--p-form-field-transition-duration),
70+ box-shadow var(--p-form-field-transition-duration),
71+ outline-color var(--p-form-field-transition-duration);
72+ }
73+
74+ .p-inputtags-option:not(.p-inputtags-option-selected):not(.p-disabled).p-focus {
75+ background: var(--p-list-option-focus-background);
76+ color: var(--p-list-option-focus-color);
77+ }
78+
79+ .p-inputtags-option:not(.p-inputtags-option-selected):not(.p-disabled):hover {
80+ background: var(--p-list-option-focus-background);
81+ color: var(--p-list-option-focus-color);
82+ }
83+
84+ .p-inputtags-option-selected {
85+ background: var(--p-list-option-selected-background);
86+ color: var(--p-list-option-selected-color);
87+ }
88+
89+ .p-inputtags-option-selected.p-focus {
90+ background: var(--p-list-option-selected-focus-background);
91+ color: var(--p-list-option-selected-focus-color);
92+ }
93+
94+ .p-inputtags-option-group {
95+ margin: 0;
96+ padding: var(--p-list-option-group-padding);
97+ color: var(--p-list-option-group-color);
98+ background: var(--p-list-option-group-background);
99+ font-weight: var(--p-list-option-group-font-weight);
100+ }
101+
102+ .p-inputtags-arrow {
103+ position: absolute;
104+ border: 1px solid var(--p-overlay-select-border-color);
105+ background: var(--p-overlay-select-background);
106+ width: 0.75rem;
107+ height: 0.75rem;
108+ border-bottom-left-radius: 3px;
109+ clip-path: polygon(0 100%, 0 0, 100% 100%);
110+
111+ &[data-side='top'] {
112+ left: var(--placer-arrow-x);
113+ bottom: -0.375rem;
114+ transform: translateX(-50%) rotate(-45deg);
115+ }
116+
117+ &[data-side='bottom'] {
118+ left: var(--placer-arrow-x);
119+ top: -0.375rem;
120+ transform: translateX(-50%) rotate(135deg);
121+ }
122+
123+ &[data-side='left'] {
124+ top: var(--placer-arrow-y);
125+ right: -0.375rem;
126+ transform: translateY(-50%) rotate(-135deg);
127+ }
128+
129+ &[data-side='right'] {
130+ top: var(--placer-arrow-y);
131+ left: -0.375rem;
132+ transform: translateY(-50%) rotate(45deg);
133+ }
134+ }
135+
28136 .p-inputtags .p-inputtags-item {
29137 padding-inline: dt('inputtext.padding.y');
30138 padding-block: calc(dt('inputtext.padding.y') /2);
@@ -86,7 +194,7 @@ const style = /*css*/ `
86194
87195export const styles = createStyles < InputTagsRootInstance > ( {
88196 name : 'inputtags' ,
89- style,
197+ style : _style ,
90198 classes : {
91199 root : ( { props, context, attrs, state } ) => [
92200 'p-inputtags p-component' ,
@@ -106,8 +214,19 @@ export const styles = createStyles<InputTagsRootInstance>({
106214 ] ,
107215 input : 'p-inputtags-input' ,
108216 panel : 'p-inputtags-panel' ,
217+ positioner : 'p-inputtags-positioner' ,
218+ popup : 'p-inputtags-popup' ,
109219 list : 'p-inputtags-list' ,
110220 options : 'p-inputtags-options' ,
111- option : 'p-inputtags-option'
221+ option : ( { context } ) => [
222+ 'p-inputtags-option' ,
223+ {
224+ 'p-focus' : context ?. focused ,
225+ 'p-disabled' : context ?. disabled ,
226+ 'p-inputtags-option-selected' : context ?. selected
227+ }
228+ ] ,
229+ optionGroup : 'p-inputtags-option-group' ,
230+ arrow : 'p-inputtags-arrow'
112231 }
113232} ) ;
0 commit comments