@fest-lib/veela 0.1.1
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.
- package/LICENSE +21 -0
- package/README.md +533 -0
- package/dist/veela.js +878 -0
- package/package.json +83 -0
- package/src/scss/_layers.scss +16 -0
- package/src/scss/advanced/_index.scss +0 -0
- package/src/scss/advanced/animation/_motion.scss +317 -0
- package/src/scss/advanced/color/_color.scss +328 -0
- package/src/scss/advanced/color/_colorize.scss +325 -0
- package/src/scss/advanced/design/_design-tokens.scss +118 -0
- package/src/scss/advanced/design/_effects.scss +275 -0
- package/src/scss/advanced/design/_shadow.scss +359 -0
- package/src/scss/advanced/design/_surfaces.scss +76 -0
- package/src/scss/advanced/effects/_animations.scss +124 -0
- package/src/scss/advanced/effects/_shadows.scss +50 -0
- package/src/scss/advanced/font/_typography.scss +600 -0
- package/src/scss/advanced/index.scss +11 -0
- package/src/scss/advanced/index.ts +35 -0
- package/src/scss/advanced/layout/_content.scss +170 -0
- package/src/scss/advanced/layout/_index.scss +5 -0
- package/src/scss/advanced/layout/_normalize.scss +541 -0
- package/src/scss/advanced/layout/_shared-overlays.scss +162 -0
- package/src/scss/advanced/md3/_md3.scss +596 -0
- package/src/scss/advanced/md3/_utils.scss +114 -0
- package/src/scss/advanced/misc/_config.scss +119 -0
- package/src/scss/advanced/misc/_initials.scss +298 -0
- package/src/scss/advanced/misc/_mixins.scss +179 -0
- package/src/scss/advanced/misc/_queries.scss +34 -0
- package/src/scss/advanced/misc/_rendering.scss +82 -0
- package/src/scss/advanced/misc/_tokens.scss +74 -0
- package/src/scss/advanced/theme/_shared.scss +232 -0
- package/src/scss/advanced/theme/_states.scss +332 -0
- package/src/scss/advanced/theme/_variants.scss +354 -0
- package/src/scss/advanced/tokens/_material-color.scss +120 -0
- package/src/scss/advanced/tokens/_variables.scss +171 -0
- package/src/scss/basic/_layers.scss +0 -0
- package/src/scss/basic/design/_index.scss +3 -0
- package/src/scss/basic/design/_keyframes.scss +163 -0
- package/src/scss/basic/design/_shapes.scss +266 -0
- package/src/scss/basic/design/_wavy-runtime.scss +50 -0
- package/src/scss/basic/index.scss +19 -0
- package/src/scss/basic/index.ts +29 -0
- package/src/scss/basic/misc/_core-layout.scss +272 -0
- package/src/scss/basic/misc/_index.scss +18 -0
- package/src/scss/basic/misc/_layout.scss +1040 -0
- package/src/scss/basic/misc/_mixins.scss +179 -0
- package/src/scss/basic/misc/_motion.scss +28 -0
- package/src/scss/basic/misc/_normalize.scss +765 -0
- package/src/scss/basic/misc/_queries.scss +34 -0
- package/src/scss/basic/misc/_shared.scss +232 -0
- package/src/scss/basic/misc/_states.scss +135 -0
- package/src/scss/basic/misc/_tokens.scss +78 -0
- package/src/scss/basic/misc/_veela.scss +12 -0
- package/src/scss/core/index.scss +1 -0
- package/src/scss/core/interact/_draggable.scss +32 -0
- package/src/scss/core/interact/_position.scss +45 -0
- package/src/scss/core/interact/_ps-anchor.scss +28 -0
- package/src/scss/core/interact/_ps-centered.scss +28 -0
- package/src/scss/core/interact/_ps-cursor.scss +18 -0
- package/src/scss/core/interact/_ps-draggable.scss +25 -0
- package/src/scss/core/interact/_ps-mechanic.scss +0 -0
- package/src/scss/core/interact/_ps-properties.scss +54 -0
- package/src/scss/core/interact/_ps-resizable.scss +61 -0
- package/src/scss/core/interact/_resizable.scss +69 -0
- package/src/scss/core/interact/_viewport.scss +469 -0
- package/src/scss/core/misc/_color-properties.scss +64 -0
- package/src/scss/core/misc/_config.scss +110 -0
- package/src/scss/core/misc/_functions.scss +530 -0
- package/src/scss/core/misc/_icons.scss +109 -0
- package/src/scss/core/misc/_index.scss +6 -0
- package/src/scss/core/misc/_layout.scss +49 -0
- package/src/scss/core/misc/_mixins.scss +744 -0
- package/src/scss/core/misc/_properties.scss +245 -0
- package/src/scss/core/misc/_tokens.scss +947 -0
- package/src/scss/core/misc/_utilities.scss +941 -0
- package/src/scss/core/misc/_utils.scss +17 -0
- package/src/scss/index.scss +18 -0
- package/src/scss/index.ts +105 -0
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
@use "sass:map";
|
|
2
|
+
@use "./functions" as config;
|
|
3
|
+
|
|
4
|
+
// ============================================================================
|
|
5
|
+
// ICON UTILITIES - Replace emoji with ui-icon components
|
|
6
|
+
// ============================================================================
|
|
7
|
+
|
|
8
|
+
/// Create a ui-icon element with specified icon
|
|
9
|
+
/// @param {String} $icon - Phosphor icon name (e.g., "pencil", "check", "x")
|
|
10
|
+
/// @param {String} $size - Icon size class (xs, sm, md, lg, xl)
|
|
11
|
+
/// @param {String} $style - Icon style (duotone, fill, regular, thin, light, bold)
|
|
12
|
+
/// @return {String} HTML for ui-icon element
|
|
13
|
+
@function icon($icon, $size: "md", $style: "duotone") {
|
|
14
|
+
@return '<ui-icon icon="#{$icon}" icon-style="#{$style}" class="icon-#{$size}"></ui-icon>';
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/// Common icon mappings for emoji replacement
|
|
18
|
+
/// Maps emoji to appropriate Phosphor icon names
|
|
19
|
+
$emoji-to-icon: (
|
|
20
|
+
"📝": "pencil",
|
|
21
|
+
"✏️": "pencil-simple",
|
|
22
|
+
"⚡": "lightning",
|
|
23
|
+
"⚙️": "gear",
|
|
24
|
+
"🖼️": "image",
|
|
25
|
+
"📄": "file-text",
|
|
26
|
+
"📋": "clipboard-text",
|
|
27
|
+
"✅": "check",
|
|
28
|
+
"⚠️": "warning",
|
|
29
|
+
"❌": "x",
|
|
30
|
+
"🔄": "arrow-clockwise",
|
|
31
|
+
"📤": "upload",
|
|
32
|
+
"📥": "download",
|
|
33
|
+
"💾": "floppy-disk",
|
|
34
|
+
"🗑️": "trash",
|
|
35
|
+
"➕": "plus",
|
|
36
|
+
"➖": "minus",
|
|
37
|
+
"🔍": "magnifying-glass",
|
|
38
|
+
"🎯": "target",
|
|
39
|
+
"🔧": "wrench",
|
|
40
|
+
"📁": "folder",
|
|
41
|
+
"🗂️": "folders",
|
|
42
|
+
"🎪": "tent",
|
|
43
|
+
"📊": "chart-bar",
|
|
44
|
+
"📈": "trend-up",
|
|
45
|
+
"📉": "trend-down",
|
|
46
|
+
"📌": "push-pin",
|
|
47
|
+
"🔗": "link",
|
|
48
|
+
"🔔": "bell",
|
|
49
|
+
"🌙": "moon",
|
|
50
|
+
"☀️": "sun",
|
|
51
|
+
"🎛️": "sliders",
|
|
52
|
+
"🔒": "lock",
|
|
53
|
+
"🔓": "lock-open",
|
|
54
|
+
"🎨": "paint-brush",
|
|
55
|
+
"💡": "lightbulb"
|
|
56
|
+
);
|
|
57
|
+
|
|
58
|
+
/// Get icon name from emoji
|
|
59
|
+
/// @param {String} $emoji - Emoji character
|
|
60
|
+
/// @return {String} Phosphor icon name
|
|
61
|
+
@function emoji-to-icon($emoji) {
|
|
62
|
+
@return map.get($emoji-to-icon, $emoji);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/// Create icon from emoji (convenience function)
|
|
66
|
+
/// @param {String} $emoji - Emoji to convert
|
|
67
|
+
/// @param {String} $size - Icon size
|
|
68
|
+
/// @param {String} $style - Icon style
|
|
69
|
+
/// @return {String} HTML for ui-icon element
|
|
70
|
+
@function icon-from-emoji($emoji, $size: "md", $style: "duotone") {
|
|
71
|
+
$icon-name: emoji-to-icon($emoji);
|
|
72
|
+
@if $icon-name == null {
|
|
73
|
+
@warn "No icon mapping found for emoji: #{$emoji}";
|
|
74
|
+
@return $emoji; // Fallback to original emoji
|
|
75
|
+
}
|
|
76
|
+
@return icon($icon-name, $size, $style);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
// ============================================================================
|
|
80
|
+
// ICON COMPONENT STYLES
|
|
81
|
+
// ============================================================================
|
|
82
|
+
|
|
83
|
+
@layer components {
|
|
84
|
+
// Ensure ui-icon elements are properly styled
|
|
85
|
+
ui-icon {
|
|
86
|
+
--icon-color: currentColor;
|
|
87
|
+
--icon-size: 1rem;
|
|
88
|
+
--icon-padding: 0.125rem;
|
|
89
|
+
|
|
90
|
+
display: inline-grid;
|
|
91
|
+
place-content: center;
|
|
92
|
+
place-items: center;
|
|
93
|
+
color: var(--icon-color);
|
|
94
|
+
aspect-ratio: 1;
|
|
95
|
+
|
|
96
|
+
&[class*="icon-"] {
|
|
97
|
+
// Size classes are handled by utilities
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
// Ensure icons don't interfere with text flow
|
|
101
|
+
vertical-align: middle;
|
|
102
|
+
margin-inline-end: 0.125rem;
|
|
103
|
+
|
|
104
|
+
// Last icon in text shouldn't have margin
|
|
105
|
+
&:last-child {
|
|
106
|
+
margin-inline-end: 0;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
@mixin border-radius($radius) {
|
|
2
|
+
border-radius: $radius;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
@mixin border($width, $style, $color) {
|
|
6
|
+
border: $width $style $color;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
@mixin container-layout($name, $type: normal) {
|
|
10
|
+
container-name: #{$name};
|
|
11
|
+
container-type: #{$type};
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
@mixin grid() {
|
|
15
|
+
display: grid;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
@mixin place($justify: center, $align: center) {
|
|
19
|
+
justify-items: $justify;
|
|
20
|
+
align-items: $align;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
@mixin display($display, $direction: row, $justify: flex-start, $align: stretch) {
|
|
24
|
+
display: $display;
|
|
25
|
+
@if $display == flex {
|
|
26
|
+
flex-direction: $direction;
|
|
27
|
+
justify-content: $justify;
|
|
28
|
+
align-items: $align;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
@mixin flex($direction: row, $justify: flex-start, $align: stretch) {
|
|
33
|
+
display: flex;
|
|
34
|
+
flex-direction: $direction;
|
|
35
|
+
justify-content: $justify;
|
|
36
|
+
align-items: $align;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
@mixin text($size, $weight: 400, $color: inherit) {
|
|
40
|
+
font-size: $size;
|
|
41
|
+
font-weight: $weight;
|
|
42
|
+
color: $color;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
@mixin text-ellipsis() {
|
|
46
|
+
overflow: hidden;
|
|
47
|
+
text-overflow: ellipsis;
|
|
48
|
+
white-space: nowrap;
|
|
49
|
+
}
|