@sondor-technology/sondor-components 1.0.6 → 1.0.8

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 (65) hide show
  1. package/dist/components/calendar/calendar.d.ts +36 -0
  2. package/dist/components/calendar/calendar.d.ts.map +1 -0
  3. package/dist/components/calendar/calendar.js +439 -0
  4. package/dist/components/calendar/calendar.js.map +1 -0
  5. package/dist/components/cron-builder/cron-builder.d.ts +34 -0
  6. package/dist/components/cron-builder/cron-builder.d.ts.map +1 -0
  7. package/dist/components/cron-builder/cron-builder.js +456 -0
  8. package/dist/components/cron-builder/cron-builder.js.map +1 -0
  9. package/dist/components/form/form.js +2 -2
  10. package/dist/components/icon/icon-paths.d.ts +161 -86
  11. package/dist/components/icon/icon-paths.d.ts.map +1 -1
  12. package/dist/components/icon/icon-paths.js +175 -106
  13. package/dist/components/icon/icon-paths.js.map +1 -1
  14. package/dist/components/icon/icon.d.ts +1 -1
  15. package/dist/components/icon/icon.d.ts.map +1 -1
  16. package/dist/components/icon/icon.js +5 -5
  17. package/dist/components/icon/icon.js.map +1 -1
  18. package/dist/components/input/input.d.ts +1 -0
  19. package/dist/components/input/input.d.ts.map +1 -1
  20. package/dist/components/input/input.js +35 -12
  21. package/dist/components/input/input.js.map +1 -1
  22. package/dist/components/pin-input/pin-input.d.ts +33 -0
  23. package/dist/components/pin-input/pin-input.d.ts.map +1 -0
  24. package/dist/components/pin-input/pin-input.js +253 -0
  25. package/dist/components/pin-input/pin-input.js.map +1 -0
  26. package/dist/components/popover/popover.d.ts +26 -0
  27. package/dist/components/popover/popover.d.ts.map +1 -0
  28. package/dist/components/popover/popover.js +196 -0
  29. package/dist/components/popover/popover.js.map +1 -0
  30. package/dist/components/select/select.d.ts +4 -1
  31. package/dist/components/select/select.d.ts.map +1 -1
  32. package/dist/components/select/select.js +26 -4
  33. package/dist/components/select/select.js.map +1 -1
  34. package/dist/components/time-picker/time-picker.d.ts +38 -0
  35. package/dist/components/time-picker/time-picker.d.ts.map +1 -0
  36. package/dist/components/time-picker/time-picker.js +280 -0
  37. package/dist/components/time-picker/time-picker.js.map +1 -0
  38. package/dist/components/toggle-group/toggle-button.d.ts +23 -0
  39. package/dist/components/toggle-group/toggle-button.d.ts.map +1 -0
  40. package/dist/components/toggle-group/toggle-button.js +115 -0
  41. package/dist/components/toggle-group/toggle-button.js.map +1 -0
  42. package/dist/components/toggle-group/toggle-group.d.ts +32 -0
  43. package/dist/components/toggle-group/toggle-group.d.ts.map +1 -0
  44. package/dist/components/toggle-group/toggle-group.js +150 -0
  45. package/dist/components/toggle-group/toggle-group.js.map +1 -0
  46. package/dist/components/tooltip/tooltip.d.ts +33 -0
  47. package/dist/components/tooltip/tooltip.d.ts.map +1 -0
  48. package/dist/components/tooltip/tooltip.js +293 -0
  49. package/dist/components/tooltip/tooltip.js.map +1 -0
  50. package/dist/styles/index.css +1 -0
  51. package/package.json +29 -1
  52. package/src/components/calendar/calendar.ts +444 -0
  53. package/src/components/cron-builder/cron-builder.ts +452 -0
  54. package/src/components/form/form.ts +2 -2
  55. package/src/components/icon/icon-paths.ts +175 -106
  56. package/src/components/icon/icon.ts +6 -6
  57. package/src/components/input/input.ts +38 -14
  58. package/src/components/pin-input/pin-input.ts +249 -0
  59. package/src/components/popover/popover.ts +192 -0
  60. package/src/components/select/select.ts +25 -63
  61. package/src/components/time-picker/time-picker.ts +272 -0
  62. package/src/components/toggle-group/toggle-button.ts +104 -0
  63. package/src/components/toggle-group/toggle-group.ts +148 -0
  64. package/src/components/tooltip/tooltip.ts +286 -0
  65. package/src/styles/theme.css +2 -0
@@ -0,0 +1,32 @@
1
+ import { LitElement, PropertyValues } from "lit";
2
+ import "./toggle-button.js";
3
+ export declare class StToggleGroup extends LitElement {
4
+ static formAssociated: boolean;
5
+ private _internals;
6
+ private _buttons;
7
+ name: string;
8
+ value: string;
9
+ multiple: boolean;
10
+ disabled: boolean;
11
+ required: boolean;
12
+ ariaLabel: string;
13
+ private _defaultValue;
14
+ constructor();
15
+ static styles: import("lit").CSSResult[];
16
+ firstUpdated(changedProperties: PropertyValues): void;
17
+ updated(changedProperties: PropertyValues): void;
18
+ private _syncButtons;
19
+ private _handleSlotChange;
20
+ private _handleToggle;
21
+ formResetCallback(): void;
22
+ private _syncValidity;
23
+ checkValidity(): boolean;
24
+ reportValidity(): boolean;
25
+ render(): import("lit-html").TemplateResult<1>;
26
+ }
27
+ declare global {
28
+ interface HTMLElementTagNameMap {
29
+ "st-toggle-group": StToggleGroup;
30
+ }
31
+ }
32
+ //# sourceMappingURL=toggle-group.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toggle-group.d.ts","sourceRoot":"","sources":["../../../src/components/toggle-group/toggle-group.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,cAAc,EAAE,MAAM,KAAK,CAAC;AAK5D,OAAO,oBAAoB,CAAC;AAE5B,qBACa,aAAc,SAAQ,UAAU;IAC3C,MAAM,CAAC,cAAc,UAAQ;IAC7B,OAAO,CAAC,UAAU,CAAmB;IAGrC,OAAO,CAAC,QAAQ,CAAoB;IAEO,IAAI,SAAM;IAGzB,KAAK,SAAM;IAEV,QAAQ,UAAS;IACF,QAAQ,UAAS;IACjB,QAAQ,UAAS;IAGtB,SAAS,SAAM;IAEtD,OAAO,CAAC,aAAa,CAAM;IAE3B,cAIC;IAED,MAAM,CAAC,MAAM,4BAsBX;IAEO,YAAY,CAAC,iBAAiB,EAAE,cAAc,QAGtD;IAEQ,OAAO,CAAC,iBAAiB,EAAE,cAAc,QAYjD;IAED,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,aAAa;IAsBrB,iBAAiB,SAEhB;IAED,OAAO,CAAC,aAAa;IAQd,aAAa,YAA8C;IAC3D,cAAc,YAA+C;IAEpE,MAAM,yCAWL;CACF;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,iBAAiB,EAAE,aAAa,CAAC;KAClC;CACF"}
@@ -0,0 +1,150 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { LitElement, html, css } from "lit";
8
+ import { customElement, property, queryAssignedElements } from "lit/decorators.js";
9
+ import { ifDefined } from "lit/directives/if-defined.js";
10
+ import { resetStyles } from "../../styles/reset.js";
11
+ import "./toggle-button.js";
12
+ let StToggleGroup = class StToggleGroup extends LitElement {
13
+ constructor() {
14
+ super();
15
+ this.name = "";
16
+ // A comma-separated list of values if multiple=true, or a single value if false
17
+ this.value = "";
18
+ this.multiple = false;
19
+ this.disabled = false;
20
+ this.required = false;
21
+ // ARIA Support
22
+ this.ariaLabel = "";
23
+ this._defaultValue = "";
24
+ this._internals = this.attachInternals();
25
+ this.addEventListener("st-toggle-action", this._handleToggle);
26
+ }
27
+ firstUpdated(changedProperties) {
28
+ super.firstUpdated(changedProperties);
29
+ this._defaultValue = this.value;
30
+ }
31
+ updated(changedProperties) {
32
+ super.updated(changedProperties);
33
+ if (changedProperties.has("value")) {
34
+ this._internals.setFormValue(this.value || null);
35
+ this._syncButtons();
36
+ this._syncValidity();
37
+ }
38
+ if (changedProperties.has("disabled")) {
39
+ this._buttons.forEach(btn => btn.disabled = this.disabled);
40
+ }
41
+ }
42
+ _syncButtons() {
43
+ const values = this.multiple && this.value ? this.value.split(",") : [this.value];
44
+ this._buttons.forEach(btn => {
45
+ btn.selected = values.includes(btn.value);
46
+ });
47
+ }
48
+ _handleSlotChange() {
49
+ this._syncButtons();
50
+ if (this.disabled) {
51
+ this._buttons.forEach(btn => btn.disabled = true);
52
+ }
53
+ }
54
+ _handleToggle(e) {
55
+ e.stopPropagation();
56
+ const toggledValue = e.detail.value;
57
+ if (this.multiple) {
58
+ let values = this.value ? this.value.split(",") : [];
59
+ if (values.includes(toggledValue)) {
60
+ values = values.filter(v => v !== toggledValue); // Deselect
61
+ }
62
+ else {
63
+ values.push(toggledValue); // Select
64
+ }
65
+ this.value = values.join(",");
66
+ }
67
+ else {
68
+ // Single select behavior (radio button style: clicking active doesn't deselect)
69
+ if (this.value !== toggledValue) {
70
+ this.value = toggledValue;
71
+ }
72
+ }
73
+ this.dispatchEvent(new Event("change", { bubbles: true, composed: true }));
74
+ }
75
+ formResetCallback() {
76
+ this.value = this._defaultValue;
77
+ }
78
+ _syncValidity() {
79
+ if (this.required && !this.value) {
80
+ this._internals.setValidity({ valueMissing: true }, "Please select an option.");
81
+ }
82
+ else {
83
+ this._internals.setValidity({});
84
+ }
85
+ }
86
+ checkValidity() { return this._internals.checkValidity(); }
87
+ reportValidity() { return this._internals.reportValidity(); }
88
+ render() {
89
+ return html `
90
+ <div
91
+ class="group-container"
92
+ role="group"
93
+ aria-label=${ifDefined(this.ariaLabel || undefined)}
94
+ aria-required=${this.required ? "true" : "false"}
95
+ >
96
+ <slot @slotchange=${this._handleSlotChange}></slot>
97
+ </div>
98
+ `;
99
+ }
100
+ };
101
+ StToggleGroup.formAssociated = true;
102
+ StToggleGroup.styles = [
103
+ resetStyles,
104
+ css `
105
+ :host {
106
+ display: inline-flex;
107
+ }
108
+
109
+ .group-container {
110
+ display: inline-flex;
111
+ background-color: var(--st-color-border);
112
+ /* 🚀 FIX: This 1px gap perfectly acts as the inner border between children */
113
+ gap: 1px;
114
+ border: 1px solid var(--st-color-border);
115
+ border-radius: var(--st-radius-md);
116
+ overflow: hidden; /* Clips the child buttons exactly to the border radius */
117
+ }
118
+
119
+ :host([disabled]) .group-container {
120
+ opacity: 0.5;
121
+ pointer-events: none;
122
+ }
123
+ `
124
+ ];
125
+ __decorate([
126
+ queryAssignedElements({ selector: "st-toggle-button" })
127
+ ], StToggleGroup.prototype, "_buttons", void 0);
128
+ __decorate([
129
+ property({ type: String, reflect: true })
130
+ ], StToggleGroup.prototype, "name", void 0);
131
+ __decorate([
132
+ property({ type: String })
133
+ ], StToggleGroup.prototype, "value", void 0);
134
+ __decorate([
135
+ property({ type: Boolean })
136
+ ], StToggleGroup.prototype, "multiple", void 0);
137
+ __decorate([
138
+ property({ type: Boolean, reflect: true })
139
+ ], StToggleGroup.prototype, "disabled", void 0);
140
+ __decorate([
141
+ property({ type: Boolean, reflect: true })
142
+ ], StToggleGroup.prototype, "required", void 0);
143
+ __decorate([
144
+ property({ attribute: "aria-label" })
145
+ ], StToggleGroup.prototype, "ariaLabel", void 0);
146
+ StToggleGroup = __decorate([
147
+ customElement("st-toggle-group")
148
+ ], StToggleGroup);
149
+ export { StToggleGroup };
150
+ //# sourceMappingURL=toggle-group.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toggle-group.js","sourceRoot":"","sources":["../../../src/components/toggle-group/toggle-group.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import { LitElement, PropertyValues } from "lit";
2
+ export type TooltipPosition = "top" | "bottom" | "left" | "right";
3
+ export type TooltipVariant = "default" | "info" | "success" | "warning" | "danger";
4
+ export declare class StTooltip extends LitElement {
5
+ content: string;
6
+ position: TooltipPosition;
7
+ variant: TooltipVariant;
8
+ delay: number;
9
+ disabled: boolean;
10
+ private _isVisible;
11
+ private _showTimeout?;
12
+ private _hideTimeout?;
13
+ private _tooltipId;
14
+ private _a11yNode?;
15
+ private _slottedElements;
16
+ static styles: import("lit").CSSResult[];
17
+ connectedCallback(): void;
18
+ disconnectedCallback(): void;
19
+ updated(changedProperties: PropertyValues): void;
20
+ private _handleSlotChange;
21
+ private _handleMouseEnter;
22
+ private _handleMouseLeave;
23
+ private _handleFocusIn;
24
+ private _handleFocusOut;
25
+ private _handleKeyDown;
26
+ render(): import("lit-html").TemplateResult<1>;
27
+ }
28
+ declare global {
29
+ interface HTMLElementTagNameMap {
30
+ "st-tooltip": StTooltip;
31
+ }
32
+ }
33
+ //# sourceMappingURL=tooltip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tooltip.d.ts","sourceRoot":"","sources":["../../../src/components/tooltip/tooltip.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAa,cAAc,EAAC,MAAM,KAAK,CAAC;AAK1D,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;AAClE,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEnF,qBACa,SAAU,SAAQ,UAAU;IACb,OAAO,SAAM;IACb,QAAQ,EAAE,eAAe,CAAS;IAClC,OAAO,EAAE,cAAc,CAAa;IACpC,KAAK,SAAO;IACI,QAAQ,UAAS;IAElD,OAAO,CAAC,UAAU,CAAS;IAEpC,OAAO,CAAC,YAAY,CAAC,CAAS;IAC9B,OAAO,CAAC,YAAY,CAAC,CAAS;IAC9B,OAAO,CAAC,UAAU,CAA8D;IAEhF,OAAO,CAAC,SAAS,CAAC,CAAkB;IAEX,OAAO,CAAC,gBAAgB,CAAiB;IAElE,MAAM,CAAC,MAAM,4BAkKX;IAEO,iBAAiB,SAQzB;IAEQ,oBAAoB,SAK5B;IAEQ,OAAO,CAAC,iBAAiB,EAAE,cAAc,QAKjD;IAED,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,cAAc;IAOtB,MAAM,yCAyBL;CACF;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,YAAY,EAAE,SAAS,CAAC;KACzB;CACF"}
@@ -0,0 +1,293 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { LitElement, html, css } from "lit";
8
+ import { customElement, property, state, queryAssignedElements } from "lit/decorators.js";
9
+ import { classMap } from "lit/directives/class-map.js";
10
+ import { resetStyles } from "../../styles/reset.js";
11
+ let StTooltip = class StTooltip extends LitElement {
12
+ constructor() {
13
+ super(...arguments);
14
+ this.content = "";
15
+ this.position = "top";
16
+ this.variant = "default";
17
+ this.delay = 200;
18
+ this.disabled = false;
19
+ this._isVisible = false;
20
+ this._tooltipId = `st-tooltip-${Math.random().toString(36).substring(2, 9)}`;
21
+ }
22
+ connectedCallback() {
23
+ super.connectedCallback();
24
+ this._a11yNode = document.createElement("span");
25
+ this._a11yNode.id = this._tooltipId;
26
+ this._a11yNode.role = "tooltip";
27
+ this._a11yNode.style.display = "none";
28
+ this._a11yNode.textContent = this.content;
29
+ this.appendChild(this._a11yNode);
30
+ }
31
+ disconnectedCallback() {
32
+ super.disconnectedCallback();
33
+ if (this._a11yNode && this.contains(this._a11yNode)) {
34
+ this.removeChild(this._a11yNode);
35
+ }
36
+ }
37
+ updated(changedProperties) {
38
+ super.updated(changedProperties);
39
+ if (changedProperties.has("content") && this._a11yNode) {
40
+ this._a11yNode.textContent = this.content;
41
+ }
42
+ }
43
+ _handleSlotChange() {
44
+ if (this._slottedElements.length > 0) {
45
+ this._slottedElements.forEach((el) => {
46
+ el.setAttribute("aria-describedby", this._tooltipId);
47
+ });
48
+ }
49
+ }
50
+ _handleMouseEnter() {
51
+ if (this.disabled || !this.content)
52
+ return;
53
+ clearTimeout(this._hideTimeout);
54
+ this._showTimeout = window.setTimeout(() => {
55
+ this._isVisible = true;
56
+ }, this.delay);
57
+ }
58
+ _handleMouseLeave() {
59
+ clearTimeout(this._showTimeout);
60
+ this._hideTimeout = window.setTimeout(() => {
61
+ this._isVisible = false;
62
+ }, 100);
63
+ }
64
+ _handleFocusIn() {
65
+ if (this.disabled || !this.content)
66
+ return;
67
+ this._isVisible = true;
68
+ }
69
+ _handleFocusOut() {
70
+ this._isVisible = false;
71
+ }
72
+ _handleKeyDown(e) {
73
+ if (e.key === "Escape" && this._isVisible) {
74
+ e.stopPropagation();
75
+ this._isVisible = false;
76
+ }
77
+ }
78
+ render() {
79
+ return html `
80
+ <div
81
+ class="tooltip-target"
82
+ @mouseenter=${this._handleMouseEnter}
83
+ @mouseleave=${this._handleMouseLeave}
84
+ @focusin=${this._handleFocusIn}
85
+ @focusout=${this._handleFocusOut}
86
+ @keydown=${this._handleKeyDown}
87
+ >
88
+ <slot @slotchange=${this._handleSlotChange}></slot>
89
+ </div>
90
+
91
+ <div
92
+ class=${classMap({
93
+ "tooltip-popup": true,
94
+ [`position-${this.position}`]: true,
95
+ [`variant-${this.variant}`]: true,
96
+ "is-visible": this._isVisible,
97
+ })}
98
+ aria-hidden="true"
99
+ >
100
+ ${this.content}
101
+ </div>
102
+ `;
103
+ }
104
+ };
105
+ StTooltip.styles = [
106
+ resetStyles,
107
+ css `
108
+ :host {
109
+ display: inline-block;
110
+ position: relative;
111
+ }
112
+
113
+ .tooltip-target {
114
+ display: inline-block;
115
+ }
116
+
117
+ .tooltip-popup {
118
+ position: absolute;
119
+ z-index: 1000;
120
+ background: var(--st-color-surface);
121
+ color: var(--st-color-text);
122
+ border: 1px solid var(--st-color-border);
123
+ padding: var(--st-spacing-xs) var(--st-spacing-sm);
124
+ border-radius: var(--st-radius-sm);
125
+ font-size: var(--st-font-size-xs);
126
+ font-weight: 500;
127
+ white-space: nowrap;
128
+ pointer-events: none;
129
+ opacity: 0;
130
+ visibility: hidden;
131
+ transition:
132
+ opacity 0.2s ease,
133
+ transform 0.2s ease,
134
+ visibility 0.2s;
135
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
136
+ }
137
+
138
+ .tooltip-popup::before {
139
+ content: "";
140
+ position: absolute;
141
+ width: 8px;
142
+ height: 8px;
143
+ background: var(--st-color-surface);
144
+ border: 1px solid var(--st-color-border);
145
+ transform: rotate(45deg);
146
+ box-sizing: border-box;
147
+ }
148
+
149
+ .is-visible {
150
+ opacity: 1;
151
+ visibility: visible;
152
+ }
153
+
154
+ /* ==========================================
155
+ VARIANTS
156
+ ========================================== */
157
+
158
+ .variant-info {
159
+ background: var(--st-color-info, #3b82f6);
160
+ border-color: var(--st-color-info, #3b82f6);
161
+ color: var(--st-color-on-info, #ffffff);
162
+ }
163
+ .variant-info::before {
164
+ background: var(--st-color-info, #3b82f6);
165
+ border-color: var(--st-color-info, #3b82f6);
166
+ }
167
+
168
+ .variant-success {
169
+ background: var(--st-color-success, #16a34a);
170
+ border-color: var(--st-color-success, #16a34a);
171
+ color: var(--st-color-on-success, #ffffff);
172
+ }
173
+ .variant-success::before {
174
+ background: var(--st-color-success, #16a34a);
175
+ border-color: var(--st-color-success, #16a34a);
176
+ }
177
+
178
+ .variant-warning {
179
+ background: var(--st-color-warning, #f59e0b);
180
+ border-color: var(--st-color-warning, #f59e0b);
181
+ /* Warning usually needs dark text for contrast */
182
+ color: var(--st-color-on-warning, #1e293b);
183
+ }
184
+ .variant-warning::before {
185
+ background: var(--st-color-warning, #f59e0b);
186
+ border-color: var(--st-color-warning, #f59e0b);
187
+ }
188
+
189
+ .variant-danger {
190
+ background: var(--st-color-danger, #dc2626);
191
+ border-color: var(--st-color-danger, #dc2626);
192
+ color: var(--st-color-on-danger, #ffffff);
193
+ }
194
+ .variant-danger::before {
195
+ background: var(--st-color-danger, #dc2626);
196
+ border-color: var(--st-color-danger, #dc2626);
197
+ }
198
+
199
+ /* ==========================================
200
+ POSITIONS
201
+ ========================================== */
202
+
203
+ .position-top {
204
+ bottom: 100%;
205
+ left: 50%;
206
+ transform: translateX(-50%) translateY(-10px);
207
+ }
208
+ .position-top.is-visible {
209
+ transform: translateX(-50%) translateY(-6px);
210
+ }
211
+ .position-top::before {
212
+ bottom: -5px;
213
+ left: 50%;
214
+ margin-left: -4px;
215
+ border-top: none;
216
+ border-left: none;
217
+ }
218
+
219
+ .position-bottom {
220
+ top: 100%;
221
+ left: 50%;
222
+ transform: translateX(-50%) translateY(10px);
223
+ }
224
+ .position-bottom.is-visible {
225
+ transform: translateX(-50%) translateY(6px);
226
+ }
227
+ .position-bottom::before {
228
+ top: -5px;
229
+ left: 50%;
230
+ margin-left: -4px;
231
+ border-bottom: none;
232
+ border-right: none;
233
+ }
234
+
235
+ .position-left {
236
+ right: 100%;
237
+ top: 50%;
238
+ transform: translateY(-50%) translateX(-10px);
239
+ }
240
+ .position-left.is-visible {
241
+ transform: translateY(-50%) translateX(-6px);
242
+ }
243
+ .position-left::before {
244
+ right: -5px;
245
+ top: 50%;
246
+ margin-top: -4px;
247
+ border-bottom: none;
248
+ border-left: none;
249
+ }
250
+
251
+ .position-right {
252
+ left: 100%;
253
+ top: 50%;
254
+ transform: translateY(-50%) translateX(10px);
255
+ }
256
+ .position-right.is-visible {
257
+ transform: translateY(-50%) translateX(6px);
258
+ }
259
+ .position-right::before {
260
+ left: -5px;
261
+ top: 50%;
262
+ margin-top: -4px;
263
+ border-top: none;
264
+ border-right: none;
265
+ }
266
+ `,
267
+ ];
268
+ __decorate([
269
+ property({ type: String })
270
+ ], StTooltip.prototype, "content", void 0);
271
+ __decorate([
272
+ property({ type: String })
273
+ ], StTooltip.prototype, "position", void 0);
274
+ __decorate([
275
+ property({ type: String })
276
+ ], StTooltip.prototype, "variant", void 0);
277
+ __decorate([
278
+ property({ type: Number })
279
+ ], StTooltip.prototype, "delay", void 0);
280
+ __decorate([
281
+ property({ type: Boolean, reflect: true })
282
+ ], StTooltip.prototype, "disabled", void 0);
283
+ __decorate([
284
+ state()
285
+ ], StTooltip.prototype, "_isVisible", void 0);
286
+ __decorate([
287
+ queryAssignedElements()
288
+ ], StTooltip.prototype, "_slottedElements", void 0);
289
+ StTooltip = __decorate([
290
+ customElement("st-tooltip")
291
+ ], StTooltip);
292
+ export { StTooltip };
293
+ //# sourceMappingURL=tooltip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tooltip.js","sourceRoot":"","sources":["../../../src/components/tooltip/tooltip.ts"],"names":[],"mappings":"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"}
@@ -135,6 +135,7 @@
135
135
  --st-color-warning-bg: #422a14;
136
136
  --st-color-info-bg: #1e3a8a;
137
137
  --st-hover-brightness: 1.3;
138
+ --st-icon-filter: invert(1);
138
139
  }
139
140
 
140
141
  /* src/styles/index.css */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sondor-technology/sondor-components",
3
- "version": "1.0.6",
3
+ "version": "1.0.8",
4
4
  "description": "",
5
5
  "main": "src/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -173,6 +173,34 @@
173
173
  "./modal": {
174
174
  "types": "./dist/components/modal/modal.d.ts",
175
175
  "default": "./dist/components/modal/modal.js"
176
+ },
177
+ "./toggle-group": {
178
+ "types": "./dist/components/toggle-group/toggle-group.d.ts",
179
+ "default": "./dist/components/toggle-group/toggle-group.js"
180
+ },
181
+ "./calendar": {
182
+ "types": "./dist/components/calendar/calendar.d.ts",
183
+ "default": "./dist/components/calendar/calendar.js"
184
+ },
185
+ "./time-picker": {
186
+ "types": "./dist/components/time-picker/time-picker.d.ts",
187
+ "default": "./dist/components/time-picker/time-picker.js"
188
+ },
189
+ "./cron-builder": {
190
+ "types": "./dist/components/cron-builder/cron-builder.d.ts",
191
+ "default": "./dist/components/cron-builder/cron-builder.js"
192
+ },
193
+ "./pin-input": {
194
+ "types": "./dist/components/pin-input/pin-input.d.ts",
195
+ "default": "./dist/components/pin-input/pin-input.js"
196
+ },
197
+ "./tooltip": {
198
+ "types": "./dist/components/tooltip/tooltip.d.ts",
199
+ "default": "./dist/components/tooltip/tooltip.js"
200
+ },
201
+ "./popover": {
202
+ "types": "./dist/components/popover/popover.d.ts",
203
+ "default": "./dist/components/popover/popover.js"
176
204
  }
177
205
  },
178
206
  "sideEffects": [