@madebywild/wvk 0.0.2 → 0.1.0

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/dist/styles.css CHANGED
@@ -51,6 +51,14 @@
51
51
  --color-wvk-transparency-light-40: var(--wvk-transparency-light-40);
52
52
  --color-wvk-transparency-light-20: var(--wvk-transparency-light-20);
53
53
 
54
+ /* Deprecated: use --color-wvk-transparency-* instead. Kept for backwards compatibility. */
55
+ --color-wvk-alpha-dark-80: var(--wvk-transparency-dark-80);
56
+ --color-wvk-alpha-dark-40: var(--wvk-transparency-dark-40);
57
+ --color-wvk-alpha-dark-20: var(--wvk-transparency-dark-20);
58
+ --color-wvk-alpha-light-80: var(--wvk-transparency-light-80);
59
+ --color-wvk-alpha-light-40: var(--wvk-transparency-light-40);
60
+ --color-wvk-alpha-light-20: var(--wvk-transparency-light-20);
61
+
54
62
 
55
63
  /* Primitives — opaque Color collection (Figma layer names: Dark, Medium, …) */
56
64
  --color-wvk-primitive-dark: var(--wvk-primitive-dark);
@@ -112,6 +120,14 @@
112
120
  --wvk-transparency-light-40: var(--wvk-primitive-light-40);
113
121
  --wvk-transparency-light-20: var(--wvk-primitive-light-20);
114
122
 
123
+ /* Deprecated alpha aliases — use --wvk-transparency-* instead. */
124
+ --wvk-alpha-dark-80: var(--wvk-transparency-dark-80);
125
+ --wvk-alpha-dark-40: var(--wvk-transparency-dark-40);
126
+ --wvk-alpha-dark-20: var(--wvk-transparency-dark-20);
127
+ --wvk-alpha-light-80: var(--wvk-transparency-light-80);
128
+ --wvk-alpha-light-40: var(--wvk-transparency-light-40);
129
+ --wvk-alpha-light-20: var(--wvk-transparency-light-20);
130
+
115
131
  /* App semantic (shadcn compatibility) — driven by wvk semantic tokens */
116
132
  --background: var(--wvk-surface-primary);
117
133
  --foreground: var(--wvk-foreground-primary);
@@ -157,12 +173,24 @@
157
173
 
158
174
  /*
159
175
  * Custom cursors — embedded SVG data URLs so consumers do not need public assets.
160
- * Hotspot coords are top-left of the click point in the 32×32 artwork.
176
+ * Hotspot coords are the click point inside the artwork (top-left = 0,0).
161
177
  * Always end with a keyword fallback (accessibility + engines without SVG cursors).
162
178
  */
163
179
  --wvk-cursor-default: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSIgdmlld0JveD0iMCAwIDMyIDMyIj4KICA8ZGVmcz4KICAgIDxmaWx0ZXIKICAgICAgaWQ9Ind2ay1jdXJzb3Itc2hhZG93IgogICAgICBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgIHg9Ii00IgogICAgICB5PSItNCIKICAgICAgd2lkdGg9IjQwIgogICAgICBoZWlnaHQ9IjQwIgogICAgICBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9InNSR0IiCiAgICA+CiAgICAgIDxmZURyb3BTaGFkb3cgZHg9IjAiIGR5PSIxLjI1IiBzdGREZXZpYXRpb249IjEiIGZsb29kLWNvbG9yPSIjMDAwMDAwIiBmbG9vZC1vcGFjaXR5PSIwLjM4IiAvPgogICAgPC9maWx0ZXI+CiAgPC9kZWZzPgogIDxnIGZpbHRlcj0idXJsKCN3dmstY3Vyc29yLXNoYWRvdykiPgogICAgPHBhdGggZmlsbD0iIzAwNTVGRiIgZD0iTTEwIDYuMDI4djE0LjYzN2EuNS41IDAgMCAwIC44Ni4zNDhsMi40MjQtMi41MDNhLjUuNSAwIDAgMSAuODA4LjEyN2wyLjIyNSA0LjUyM2ExIDEgMCAwIDAgMS4zNzkuNDM1bDIuMjM0LTEuMjI5YTEgMSAwIDAgMCAuNDEtMS4zM2wtMi4xOTItNC4zMWEuNS41IDAgMCAxIC40NDYtLjcyNmgzLjk2YS41LjUgMCAwIDAgLjMxLS44OTNMMTAuODA4IDUuNjM1YS41LjUgMCAwIDAtLjgwOS4zOTNaIi8+CiAgICA8cGF0aCBzdHJva2U9IndoaXRlIiBzdHJva2Utb3BhY2l0eT0iLjgiIHN0cm9rZS13aWR0aD0iMiIgZD0iTTkuNDIgNC45ODVhMS41MDIgMS41MDIgMCAwIDEgMS44ODItLjIyNWwuMTI1LjA4OUwyMy40OCAxNC4zMmExLjUwMSAxLjUwMSAwIDAgMS0uOTI2IDIuNjhoLTMuMTQ3bDEuODIzIDMuNTgzYTIgMiAwIDAgMS0uODE5IDIuNjZsLTIuMjM0IDEuMjI5YTIgMiAwIDAgMS0yLjc1OS0uODdsLTEuOTExLTMuODg2LTEuOTMgMS45OTNBMS41IDEuNSAwIDAgMSA5IDIwLjY2NVY2LjAyOGExLjUgMS41IDAgMCAxIC4zMi0uOTI2bC4xLS4xMTdaIi8+CiAgPC9nPgo8L3N2Zz4K") 9 5, default;
180
+ --wvk-cursor-default-arrow: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMyIgZmlsbD0ibm9uZSIgdmlld0JveD0iMCAwIDMyIDMzIj4KICA8ZyBmaWx0ZXI9InVybCgjYSkiPgogICAgPHBhdGggZmlsbD0iIzAwNTVGRiIgZD0iTTEwIDI0VjcuMjE2YzAtLjg2MSAxLjAxNi0xLjMyIDEuNjYyLS43NWwxMy4wNDYgMTEuNTExYy43MjUuNjQuMjEgMS44MzQtLjc1MiAxLjc0NmwtNy40LS42NzJhMSAxIDAgMCAwLS44OS4zOTVMMTEuOCAyNC42Yy0uNTc3Ljc2OS0xLjguMzYxLTEuOC0uNloiLz4KICAgIDxwYXRoIHN0cm9rZT0id2hpdGUiIHN0cm9rZS13aWR0aD0iMiIgZD0iTTkgNy4yMTZjMC0xLjcyMiAyLjAzMi0yLjY0IDMuMzIzLTEuNUwyNS4zNyAxNy4yMjdjMS40NSAxLjI4LjQyMiAzLjY2Ny0xLjUwNCAzLjQ5MmwtNy40LS42NzJMMTIuNiAyNS4yQzExLjQ0NiAyNi43MzcgOSAyNS45MjIgOSAyNFY3LjIxNloiLz4KICA8L2c+CiAgPGRlZnM+CiAgICA8ZmlsdGVyIGlkPSJhIiB3aWR0aD0iMjcuMDU1IiBoZWlnaHQ9IjMwLjc5NiIgeD0iNCIgeT0iMi4yMSIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPSJzUkdCIiBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiPgogICAgICA8ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PSIwIiByZXN1bHQ9IkJhY2tncm91bmRJbWFnZUZpeCIvPgogICAgICA8ZmVDb2xvck1hdHJpeCBpbj0iU291cmNlQWxwaGEiIHJlc3VsdD0iaGFyZEFscGhhIiB2YWx1ZXM9IjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDEyNyAwIi8+CiAgICAgIDxmZU9mZnNldCBkeT0iMiIvPgogICAgICA8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPSIyIi8+CiAgICAgIDxmZUNvbG9yTWF0cml4IHZhbHVlcz0iMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMC4xNiAwIi8+CiAgICAgIDxmZUJsZW5kIGluMj0iQmFja2dyb3VuZEltYWdlRml4IiByZXN1bHQ9ImVmZmVjdDFfZHJvcFNoYWRvd180ODA5XzY2OSIvPgogICAgICA8ZmVCbGVuZCBpbj0iU291cmNlR3JhcGhpYyIgaW4yPSJlZmZlY3QxX2Ryb3BTaGFkb3dfNDgwOV82NjkiIHJlc3VsdD0ic2hhcGUiLz4KICAgIDwvZmlsdGVyPgogIDwvZGVmcz4KPC9zdmc+Cg==") 10 7, default;
164
181
  --wvk-cursor-pointer: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSIgdmlld0JveD0iMCAwIDMyIDMyIj4KICA8ZGVmcz4KICAgIDxmaWx0ZXIKICAgICAgaWQ9Ind2ay1jdXJzb3Itc2hhZG93IgogICAgICBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgIHg9Ii00IgogICAgICB5PSItNCIKICAgICAgd2lkdGg9IjQwIgogICAgICBoZWlnaHQ9IjQwIgogICAgICBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9InNSR0IiCiAgICA+CiAgICAgIDxmZURyb3BTaGFkb3cgZHg9IjAiIGR5PSIxLjI1IiBzdGREZXZpYXRpb249IjEiIGZsb29kLWNvbG9yPSIjMDAwMDAwIiBmbG9vZC1vcGFjaXR5PSIwLjM4IiAvPgogICAgPC9maWx0ZXI+CiAgPC9kZWZzPgogIDxnIGZpbHRlcj0idXJsKCN3dmstY3Vyc29yLXNoYWRvdykiPgogICAgPHBhdGggZmlsbD0id2hpdGUiIGQ9Ik0xOC41IDMwSDEzYy01LjQ0IDAtOS4wODMtNC45NjQtMTEuNDEtMTQuMjcyQy42NTkgMTIuMDAzIDMuOTE3IDguOTEzIDcgOS42NVY2YTUgNSAwIDAgMSAxMCAwdjIuMWE0Ljk5IDQuOTkgMCAwIDEgMi4xMDUuOThBNSA1IDAgMCAxIDI0LjAwMSAxMWE1IDUgMCAwIDEgNSA1djRjMCAuMTktLjAxOS4zOC0uMDU0LjU2NUMyOC40MDkgMjUuODk3IDIzLjkwNyAzMCAxOC41IDMwWiIvPgogICAgPHBhdGggZmlsbD0iIzAwNTVGRiIgZD0iTTI1IDE5LjVWMTZhMSAxIDAgMSAwLTIgMCAxIDEgMCAxIDEtMiAwdi0yYTEgMSAwIDEgMC0yIDAgMSAxIDAgMSAxLTIgMCAzIDMgMCAwIDEgNS44OTUtLjc5QTMgMyAwIDAgMSAyNyAxNnY0YTEgMSAwIDAgMS0uMDMzLjI1NkE4LjUgOC41IDAgMCAxIDE4LjUgMjhIMTNjLTQuMjg0IDAtNy4zNy00LjM1Ny05LjQ3LTEyLjc1OC0uNjk4LTIuNzkyIDIuMzIxLTQuODA1IDQuMTc3LTIuOTVMOSAxMy41ODdWNmEzIDMgMCAxIDEgNiAwdjdhMSAxIDAgMSAxLTIgMFY2YTEgMSAwIDEgMC0yIDB2MTBhMSAxIDAgMCAxLTEuNzA3LjcwN2wtMy0zYy0uMzQ0LS4zNDQtMS4wNTMuMTI5LS44MjMgMS4wNUM3LjM3IDIyLjM1OCA5Ljk1IDI2IDEzIDI2aDUuNWE2LjUgNi41IDAgMCAwIDYuNS02LjVaTTE2IDEwYTMgMyAwIDAgMSAzIDN2MWExIDEgMCAxIDEtMiAwdi0xYTEgMSAwIDEgMC0yIDAgMSAxIDAgMSAxLTIgMCAzIDMgMCAwIDEgMy0zWm0tMSA3YTEgMSAwIDAgMSAxIDF2M2ExIDEgMCAxIDEtMiAwdi0zYTEgMSAwIDAgMSAxLTFabTQgMGExIDEgMCAwIDEgMSAxdjNhMSAxIDAgMSAxLTIgMHYtM2ExIDEgMCAwIDEgMS0xWiIvPgogIDwvZz4KPC9zdmc+Cg==") 12 8, pointer;
165
182
  --wvk-cursor-move: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgZmlsbD0ibm9uZSIgdmlld0JveD0iMCAwIDMyIDMyIj4KICA8ZGVmcz4KICAgIDxmaWx0ZXIKICAgICAgaWQ9Ind2ay1jdXJzb3Itc2hhZG93IgogICAgICBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiCiAgICAgIHg9Ii00IgogICAgICB5PSItNCIKICAgICAgd2lkdGg9IjQwIgogICAgICBoZWlnaHQ9IjQwIgogICAgICBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9InNSR0IiCiAgICA+CiAgICAgIDxmZURyb3BTaGFkb3cgZHg9IjAiIGR5PSIxLjI1IiBzdGREZXZpYXRpb249IjEiIGZsb29kLWNvbG9yPSIjMDAwMDAwIiBmbG9vZC1vcGFjaXR5PSIwLjM4IiAvPgogICAgPC9maWx0ZXI+CiAgPC9kZWZzPgogIDxnIGZpbHRlcj0idXJsKCN3dmstY3Vyc29yLXNoYWRvdykiPgogICAgPHBhdGggZmlsbD0id2hpdGUiIGQ9Im0xNiAyLjAzIDE0LjE0MiAxNC4xNEwxNiAzMC4zMTQgMS44NTggMTYuMTcgMTYgMi4wM1oiLz4KICAgIDxwYXRoIGZpbGw9IiMwMDU1RkYiIGQ9Ik0xMCAxOC45NmEuNS41IDAgMCAxLS44MTMuMzlsLTMuNy0yLjk2YS41LjUgMCAwIDEgMC0uNzhsMy43LTIuOTZhLjUuNSAwIDAgMSAuODEzLjM5VjE1bDQuOTk5LS4wMDF2LTVoLTEuOTZhLjUuNSAwIDAgMS0uMzktLjgxMmwyLjk2LTMuN2EuNS41IDAgMCAxIC43ODEgMGwyLjk2IDMuN2EuNS41IDAgMCAxLS4zOS44MTJIMTdsLS4wMDEgNWg1di0xLjk2YS41LjUgMCAwIDEgLjgxMy0uMzlsMy43IDIuOTZhLjUuNSAwIDAgMSAwIC43OGwtMy43IDIuOTZhLjUuNSAwIDAgMS0uODEyLS4zOVYxN2gtNS4wMDF2NWgxLjk2YS41LjUgMCAwIDEgLjM5LjgxM2wtMi45NTkgMy43YS41LjUgMCAwIDEtLjc4IDBsLTIuOTYtMy43YS41LjUgMCAwIDEgLjM5LS44MTNIMTVsLS4wMDEtNWgtNXYxLjk2WiIvPgogIDwvZz4KPC9zdmc+Cg==") 16 16, move;
183
+ --wvk-cursor-grabbing: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzNSIgaGVpZ2h0PSIzNiIgZmlsbD0ibm9uZSIgdmlld0JveD0iMCAwIDM1IDM2Ij4KICA8ZyBmaWx0ZXI9InVybCgjYSkiPgogICAgPHBhdGggZmlsbD0id2hpdGUiIGQ9Ik0zMC4xNzYgMTguNjY3QzMwLjE3NiAyNC45MjYgMjUuMTAyIDMwIDE4Ljg0MyAzMGgtMy4xODhhMTAgMTAgMCAwIDEtOS4wOC01LjgxTDQuNjUgMjAuMDE4Yy0xLjY4NS0zLjY1LjA1Ni03LjgyNCAzLjU0LTkuMzQ1YTUgNSAwIDAgMSA4LjA5LTMuNTkxIDQuOTc3IDQuOTc3IDAgMCAxIDQgMSA0Ljk3NyA0Ljk3NyAwIDAgMSAzLjk3Ny45ODFBNC45IDQuOSAwIDAgMSAyNS4wNDQgOWE1LjEzNCA1LjEzNCAwIDAgMSA1LjEzMyA1LjEzNHY0LjUzM1oiLz4KICA8L2c+CiAgPHBhdGggZmlsbD0iIzAwNTVGRiIgZD0iTTEzLjE3NyA4YzEuMDYyIDAgMS45OTQuNTU0IDIuNTI3IDEuMzg4YTIuOTk2IDIuOTk2IDAgMCAxIDQgMSAyLjk5NyAyLjk5NyAwIDAgMSAzLjk3NC45NTdBMi44NSAyLjg1IDAgMCAxIDI1LjA0MyAxMWEzLjEzNCAzLjEzNCAwIDAgMSAzLjEzNCAzLjEzNHY0LjUzM0E5LjMzNCA5LjMzNCAwIDAgMSAxOC44NDQgMjhoLTMuMTg5YTggOCAwIDAgMS03LjI2NC00LjY0OEw2LjQ2NiAxOS4xOGMtMS4zODItMi45OTMuNDYtNi40OCAzLjcxLTcuMDI3VjExYTMgMyAwIDAgMSAzLTNabTAgMmExIDEgMCAwIDAtMSAxdjVhMSAxIDAgMCAxLTIgMHYtMS44YTMgMyAwIDAgMC0xLjg5NiA0LjE0bDEuOTI3IDQuMTc1QTYgNiAwIDAgMCAxNS42NTUgMjZoMy4xODlhNy4zMzQgNy4zMzQgMCAwIDAgNy4zMzMtNy4zMzN2LTQuNTMzYzAtLjYyNi0uNTA4LTEuMTM0LTEuMTM0LTEuMTM0YS44NjcuODY3IDAgMCAwLS44NjYuODY2VjE0YTEgMSAwIDAgMS0yIDB2LTFhMSAxIDAgMCAwLTEuOTk1LS4xMDJsLS4wMS4yMDRBMSAxIDAgMCAxIDE4LjE3NyAxM3YtMWExIDEgMCAwIDAtMS45OTUtLjEwMmwtLjAxLjIwNEExIDEgMCAwIDEgMTQuMTc3IDEydi0xYTEgMSAwIDAgMC0xLTFabTMgN2ExIDEgMCAwIDEgMSAxdjNhMSAxIDAgMCAxLTIgMHYtM2ExIDEgMCAwIDEgMS0xWm00IDBhMSAxIDAgMCAxIDEgMXYzYTEgMSAwIDAgMS0yIDB2LTNhMSAxIDAgMCAxIDEtMVoiLz4KICA8ZGVmcz4KICAgIDxmaWx0ZXIgaWQ9ImEiIHdpZHRoPSIzNC4xNzYiIGhlaWdodD0iMzIiIHg9IjAiIHk9IjQiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz0ic1JHQiIgZmlsdGVyVW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KICAgICAgPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiLz4KICAgICAgPGZlQ29sb3JNYXRyaXggaW49IlNvdXJjZUFscGhhIiByZXN1bHQ9ImhhcmRBbHBoYSIgdmFsdWVzPSIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAxMjcgMCIvPgogICAgICA8ZmVPZmZzZXQgZHk9IjIiLz4KICAgICAgPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj0iMiIvPgogICAgICA8ZmVDb2xvck1hdHJpeCB2YWx1ZXM9IjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAuMTYgMCIvPgogICAgICA8ZmVCbGVuZCBpbjI9IkJhY2tncm91bmRJbWFnZUZpeCIgcmVzdWx0PSJlZmZlY3QxX2Ryb3BTaGFkb3dfNDgxMF83MzAiLz4KICAgICAgPGZlQmxlbmQgaW49IlNvdXJjZUdyYXBoaWMiIGluMj0iZWZmZWN0MV9kcm9wU2hhZG93XzQ4MTBfNzMwIiByZXN1bHQ9InNoYXBlIi8+CiAgICA8L2ZpbHRlcj4KICA8L2RlZnM+Cjwvc3ZnPgo=") 17 18, grabbing;
184
+ --wvk-cursor-text: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzNCIgZmlsbD0ibm9uZSIgdmlld0JveD0iMCAwIDMyIDM0Ij4KICA8ZyBmaWx0ZXI9InVybCgjYSkiPgogICAgPHBhdGggZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iLjgiIGQ9Ik0xNC41ODYgNGMuNDg4IDAgLjk2Ni4wOSAxLjQxNC4yNi40NDgtLjE3LjkyNi0uMjYgMS40MTQtLjI2SDIwYTMgMyAwIDEgMSAwIDZoLTF2MTJoMWEzIDMgMCAxIDEgMCA2aC0yLjU4NmMtLjQ4OCAwLS45NjYtLjA5LTEuNDE0LS4yNi0uNDQ4LjE3LS45MjYuMjYtMS40MTQuMjZIMTJhMyAzIDAgMSAxIDAtNmgxVjEwaC0xYTMgMyAwIDEgMSAwLTZoMi41ODZaIi8+CiAgPC9nPgogIDxwYXRoIHN0cm9rZT0iIzAwNTVGRiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2Utd2lkdGg9IjIiIGQ9Ik0xMiA3aDIuMTcyYTIgMiAwIDAgMSAxLjQxNC41ODZMMTYgOG0wIDB2MTZtMC0xNiAuNDE0LS40MTRBMiAyIDAgMCAxIDE3LjgyOCA3SDIwbS00IDE3IC40MTQuNDE0YTIgMiAwIDAgMCAxLjQxNC41ODZIMjBtLTQtMS0uNDE0LjQxNGEyIDIgMCAwIDEtMS40MTQuNTg2SDEyIi8+CiAgPGRlZnM+CiAgICA8ZmlsdGVyIGlkPSJhIiB3aWR0aD0iMjIiIGhlaWdodD0iMzIiIHg9IjUiIHk9IjIiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz0ic1JHQiIgZmlsdGVyVW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KICAgICAgPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiLz4KICAgICAgPGZlQ29sb3JNYXRyaXggaW49IlNvdXJjZUFscGhhIiByZXN1bHQ9ImhhcmRBbHBoYSIgdmFsdWVzPSIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAxMjcgMCIvPgogICAgICA8ZmVPZmZzZXQgZHk9IjIiLz4KICAgICAgPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj0iMiIvPgogICAgICA8ZmVDb2xvck1hdHJpeCB2YWx1ZXM9IjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAuMTYgMCIvPgogICAgICA8ZmVCbGVuZCBpbjI9IkJhY2tncm91bmRJbWFnZUZpeCIgcmVzdWx0PSJlZmZlY3QxX2Ryb3BTaGFkb3dfNDgxMF82ODUiLz4KICAgICAgPGZlQmxlbmQgaW49IlNvdXJjZUdyYXBoaWMiIGluMj0iZWZmZWN0MV9kcm9wU2hhZG93XzQ4MTBfNjg1IiByZXN1bHQ9InNoYXBlIi8+CiAgICA8L2ZpbHRlcj4KICA8L2RlZnM+Cjwvc3ZnPgo=") 16 17, text;
185
+ }
186
+
187
+ /*
188
+ * Cursor style variant — opt in to the slim-arrow default by adding
189
+ * `class="wvk-cursor-style-arrow"` on <html>. ThemeProvider's `cursorStyle`
190
+ * prop / setCursorStyle handle this for you; this rule is the underlying knob.
191
+ */
192
+ html.wvk-cursor-style-arrow {
193
+ --wvk-cursor-default: var(--wvk-cursor-default-arrow);
166
194
  }
167
195
 
168
196
  /* ---- Dark theme ---- */
@@ -192,6 +220,14 @@
192
220
  --wvk-transparency-light-40: rgba(0, 85, 255, 0.4);
193
221
  --wvk-transparency-light-20: rgba(0, 85, 255, 0.2);
194
222
 
223
+ /* Deprecated alpha aliases — use --wvk-transparency-* instead. */
224
+ --wvk-alpha-dark-80: var(--wvk-transparency-dark-80);
225
+ --wvk-alpha-dark-40: var(--wvk-transparency-dark-40);
226
+ --wvk-alpha-dark-20: var(--wvk-transparency-dark-20);
227
+ --wvk-alpha-light-80: var(--wvk-transparency-light-80);
228
+ --wvk-alpha-light-40: var(--wvk-transparency-light-40);
229
+ --wvk-alpha-light-20: var(--wvk-transparency-light-20);
230
+
195
231
  /* Primitives stay the fixed palette for one-off use */
196
232
  /* (--wvk-primitive-* unchanged from :root) */
197
233
 
@@ -249,7 +285,7 @@
249
285
  input[type="number"],
250
286
  textarea,
251
287
  [contenteditable="true"] {
252
- cursor: text;
288
+ cursor: var(--wvk-cursor-text);
253
289
  }
254
290
 
255
291
  /* Common interactive controls (class-based utilities still layered below) */
@@ -327,7 +363,11 @@
327
363
  }
328
364
 
329
365
  .cursor-grabbing {
330
- cursor: var(--wvk-cursor-move);
366
+ cursor: var(--wvk-cursor-grabbing);
367
+ }
368
+
369
+ .cursor-text {
370
+ cursor: var(--wvk-cursor-text);
331
371
  }
332
372
 
333
373
  /* {@link LoadingSpinner} — clip-path ring + rotate (ring color = currentColor → --wvk-foreground-primary) */
@@ -390,3 +430,59 @@
390
430
  --wvk-loading-spinner-border: 5px;
391
431
  }
392
432
  }
433
+
434
+ @layer components {
435
+ /*
436
+ * Inline code: subtle tonal chip that adapts to light/dark via the
437
+ * dark-transparency token (dark overlay on light bg, light overlay on blue bg).
438
+ */
439
+ .wvk-code {
440
+ display: inline;
441
+ padding: 0.125rem 0.375rem;
442
+ border-radius: var(--radius-sm, 0.25rem);
443
+ background-color: var(--wvk-transparency-dark-20);
444
+ color: var(--wvk-foreground-primary);
445
+ font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas,
446
+ "Liberation Mono", monospace;
447
+ font-size: 0.875em;
448
+ line-height: 1.4;
449
+ white-space: break-spaces;
450
+ word-break: break-word;
451
+ }
452
+
453
+ /*
454
+ * Block code container: same tonal surface as inline, but with padding,
455
+ * a faint border, and pre-wrap behavior. Use on a <pre> or wrap a <code>.
456
+ */
457
+ .wvk-code-block {
458
+ display: block;
459
+ padding: 0.75rem 1rem;
460
+ border-radius: var(--radius-md, 0.375rem);
461
+ background-color: var(--wvk-transparency-dark-20);
462
+ border: 1px solid var(--wvk-transparency-dark-40);
463
+ color: var(--wvk-foreground-primary);
464
+ font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas,
465
+ "Liberation Mono", monospace;
466
+ font-size: 0.8125rem;
467
+ line-height: 1.5;
468
+ white-space: pre-wrap;
469
+ overflow-wrap: anywhere;
470
+ }
471
+
472
+ .wvk-code-block code {
473
+ background: transparent;
474
+ padding: 0;
475
+ border-radius: 0;
476
+ font-size: inherit;
477
+ color: inherit;
478
+ }
479
+ }
480
+
481
+ /* Unlayered — wins over all @layer blocks including utilities */
482
+ [data-wvk-input="shell"] {
483
+ cursor: var(--wvk-cursor-text);
484
+ }
485
+
486
+ [data-wvk-input="shell"]:has(:disabled) {
487
+ cursor: not-allowed;
488
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@madebywild/wvk",
3
- "version": "0.0.2",
3
+ "version": "0.1.0",
4
4
  "description": "Wireframe kit — components, icons, and design tokens",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -13,6 +13,9 @@
13
13
  "main": "./dist/index.cjs",
14
14
  "module": "./dist/index.js",
15
15
  "types": "./dist/index.d.ts",
16
+ "bin": {
17
+ "wvk": "./bin/wvk.mjs"
18
+ },
16
19
  "exports": {
17
20
  ".": {
18
21
  "types": "./dist/index.d.ts",
@@ -31,6 +34,8 @@
31
34
  ],
32
35
  "files": [
33
36
  "dist",
37
+ "bin",
38
+ "AGENTS.md",
34
39
  "README.md"
35
40
  ],
36
41
  "peerDependencies": {
@@ -38,9 +43,10 @@
38
43
  "react-dom": "^19"
39
44
  },
40
45
  "dependencies": {
41
- "@radix-ui/react-slot": "^1.2.4",
46
+ "@base-ui-components/react": "1.0.0-rc.0",
42
47
  "class-variance-authority": "^0.7.1",
43
48
  "clsx": "^2.1.1",
49
+ "framer-motion": "12.38.0",
44
50
  "tailwind-merge": "^3.5.0"
45
51
  },
46
52
  "devDependencies": {
@@ -61,6 +67,7 @@
61
67
  "build": "tsup",
62
68
  "clean": "rm -rf dist",
63
69
  "dev": "node src/scripts/build-icons.mjs && tsup --watch",
64
- "typecheck": "tsc --noEmit"
70
+ "typecheck": "tsc --noEmit",
71
+ "test": "node --test 'test/**/*.test.mjs'"
65
72
  }
66
73
  }