@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.
Files changed (78) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +533 -0
  3. package/dist/veela.js +878 -0
  4. package/package.json +83 -0
  5. package/src/scss/_layers.scss +16 -0
  6. package/src/scss/advanced/_index.scss +0 -0
  7. package/src/scss/advanced/animation/_motion.scss +317 -0
  8. package/src/scss/advanced/color/_color.scss +328 -0
  9. package/src/scss/advanced/color/_colorize.scss +325 -0
  10. package/src/scss/advanced/design/_design-tokens.scss +118 -0
  11. package/src/scss/advanced/design/_effects.scss +275 -0
  12. package/src/scss/advanced/design/_shadow.scss +359 -0
  13. package/src/scss/advanced/design/_surfaces.scss +76 -0
  14. package/src/scss/advanced/effects/_animations.scss +124 -0
  15. package/src/scss/advanced/effects/_shadows.scss +50 -0
  16. package/src/scss/advanced/font/_typography.scss +600 -0
  17. package/src/scss/advanced/index.scss +11 -0
  18. package/src/scss/advanced/index.ts +35 -0
  19. package/src/scss/advanced/layout/_content.scss +170 -0
  20. package/src/scss/advanced/layout/_index.scss +5 -0
  21. package/src/scss/advanced/layout/_normalize.scss +541 -0
  22. package/src/scss/advanced/layout/_shared-overlays.scss +162 -0
  23. package/src/scss/advanced/md3/_md3.scss +596 -0
  24. package/src/scss/advanced/md3/_utils.scss +114 -0
  25. package/src/scss/advanced/misc/_config.scss +119 -0
  26. package/src/scss/advanced/misc/_initials.scss +298 -0
  27. package/src/scss/advanced/misc/_mixins.scss +179 -0
  28. package/src/scss/advanced/misc/_queries.scss +34 -0
  29. package/src/scss/advanced/misc/_rendering.scss +82 -0
  30. package/src/scss/advanced/misc/_tokens.scss +74 -0
  31. package/src/scss/advanced/theme/_shared.scss +232 -0
  32. package/src/scss/advanced/theme/_states.scss +332 -0
  33. package/src/scss/advanced/theme/_variants.scss +354 -0
  34. package/src/scss/advanced/tokens/_material-color.scss +120 -0
  35. package/src/scss/advanced/tokens/_variables.scss +171 -0
  36. package/src/scss/basic/_layers.scss +0 -0
  37. package/src/scss/basic/design/_index.scss +3 -0
  38. package/src/scss/basic/design/_keyframes.scss +163 -0
  39. package/src/scss/basic/design/_shapes.scss +266 -0
  40. package/src/scss/basic/design/_wavy-runtime.scss +50 -0
  41. package/src/scss/basic/index.scss +19 -0
  42. package/src/scss/basic/index.ts +29 -0
  43. package/src/scss/basic/misc/_core-layout.scss +272 -0
  44. package/src/scss/basic/misc/_index.scss +18 -0
  45. package/src/scss/basic/misc/_layout.scss +1040 -0
  46. package/src/scss/basic/misc/_mixins.scss +179 -0
  47. package/src/scss/basic/misc/_motion.scss +28 -0
  48. package/src/scss/basic/misc/_normalize.scss +765 -0
  49. package/src/scss/basic/misc/_queries.scss +34 -0
  50. package/src/scss/basic/misc/_shared.scss +232 -0
  51. package/src/scss/basic/misc/_states.scss +135 -0
  52. package/src/scss/basic/misc/_tokens.scss +78 -0
  53. package/src/scss/basic/misc/_veela.scss +12 -0
  54. package/src/scss/core/index.scss +1 -0
  55. package/src/scss/core/interact/_draggable.scss +32 -0
  56. package/src/scss/core/interact/_position.scss +45 -0
  57. package/src/scss/core/interact/_ps-anchor.scss +28 -0
  58. package/src/scss/core/interact/_ps-centered.scss +28 -0
  59. package/src/scss/core/interact/_ps-cursor.scss +18 -0
  60. package/src/scss/core/interact/_ps-draggable.scss +25 -0
  61. package/src/scss/core/interact/_ps-mechanic.scss +0 -0
  62. package/src/scss/core/interact/_ps-properties.scss +54 -0
  63. package/src/scss/core/interact/_ps-resizable.scss +61 -0
  64. package/src/scss/core/interact/_resizable.scss +69 -0
  65. package/src/scss/core/interact/_viewport.scss +469 -0
  66. package/src/scss/core/misc/_color-properties.scss +64 -0
  67. package/src/scss/core/misc/_config.scss +110 -0
  68. package/src/scss/core/misc/_functions.scss +530 -0
  69. package/src/scss/core/misc/_icons.scss +109 -0
  70. package/src/scss/core/misc/_index.scss +6 -0
  71. package/src/scss/core/misc/_layout.scss +49 -0
  72. package/src/scss/core/misc/_mixins.scss +744 -0
  73. package/src/scss/core/misc/_properties.scss +245 -0
  74. package/src/scss/core/misc/_tokens.scss +947 -0
  75. package/src/scss/core/misc/_utilities.scss +941 -0
  76. package/src/scss/core/misc/_utils.scss +17 -0
  77. package/src/scss/index.scss +18 -0
  78. 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,6 @@
1
+ @forward "../interact/draggable";
2
+ @forward "../interact/resizable";
3
+ @forward "../interact/position";
4
+ @forward "./utilities";
5
+ @forward "./icons";
6
+ @forward "../interact/viewport";
@@ -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
+ }