okonomi_ui_kit 0.1.0 → 0.1.2

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2e73e27cc738e93336114d25373f391d9e13ad877a282065cd97b3584b787ea0
4
- data.tar.gz: '02840bb54628c901ab819207e7de8409c54ce9ffdeab741e83874d893ad4d269'
3
+ metadata.gz: 79dad5184d4e75395119a350ea4129985ad682d5ae67a7604d64e4ac8af6381e
4
+ data.tar.gz: 5ec0dfab2a8f9682ac7ed73bed608461444f047f6475880a585b42c5539b6718
5
5
  SHA512:
6
- metadata.gz: cc1290160d0399cf5c1da569207794814fc2ba10fe49435050a9a373b4ab9da7fd08624bfcd8a38014ec91b44d022e7158104737768b3b25d5dd4a21156344c0
7
- data.tar.gz: 6249dd6cf02521f3ec64a50de48aa651ae67dcb58464a4f4ebc34e4ffdddd84b1e5e26f795771541aa1e5bd9a1c33b38bc7af44d35339da25ccd6958f533ffbd
6
+ metadata.gz: 9e69971aeb2dc67f52e7274a9ef569e495d303f31744a6d109cd755e44236d43e5ec8c21c408bda83baef88584391bd2b91a9d456d28665e828309d734074ed7
7
+ data.tar.gz: 4f04a3b91496cc2b789c529cae0e718c6139c2fa03b06f96ddf768a7edf83cc18ab994b4aa989ad5ed71b14ca58ea9621a0a3551ba81149bacb6fb127a1f9717
@@ -48,8 +48,10 @@
48
48
  --color-gray-700: oklch(37.3% 0.034 259.733);
49
49
  --color-gray-800: oklch(27.8% 0.033 256.848);
50
50
  --color-gray-900: oklch(21% 0.034 264.665);
51
+ --color-black: #000;
51
52
  --color-white: #fff;
52
53
  --spacing: 0.25rem;
54
+ --container-xs: 20rem;
53
55
  --container-2xl: 42rem;
54
56
  --container-4xl: 56rem;
55
57
  --container-7xl: 80rem;
@@ -256,6 +258,12 @@
256
258
  .static {
257
259
  position: static;
258
260
  }
261
+ .-inset-0\.5 {
262
+ inset: calc(var(--spacing) * -0.5);
263
+ }
264
+ .-inset-1\.5 {
265
+ inset: calc(var(--spacing) * -1.5);
266
+ }
259
267
  .inset-y-0 {
260
268
  inset-block: calc(var(--spacing) * 0);
261
269
  }
@@ -328,6 +336,9 @@
328
336
  .mt-auto {
329
337
  margin-top: auto;
330
338
  }
339
+ .-mr-2 {
340
+ margin-right: calc(var(--spacing) * -2);
341
+ }
331
342
  .mr-1 {
332
343
  margin-right: calc(var(--spacing) * 1);
333
344
  }
@@ -361,6 +372,9 @@
361
372
  .ml-2 {
362
373
  margin-left: calc(var(--spacing) * 2);
363
374
  }
375
+ .ml-3 {
376
+ margin-left: calc(var(--spacing) * 3);
377
+ }
364
378
  .ml-4 {
365
379
  margin-left: calc(var(--spacing) * 4);
366
380
  }
@@ -398,6 +412,18 @@
398
412
  width: calc(var(--spacing) * 5);
399
413
  height: calc(var(--spacing) * 5);
400
414
  }
415
+ .size-6 {
416
+ width: calc(var(--spacing) * 6);
417
+ height: calc(var(--spacing) * 6);
418
+ }
419
+ .size-8 {
420
+ width: calc(var(--spacing) * 8);
421
+ height: calc(var(--spacing) * 8);
422
+ }
423
+ .size-10 {
424
+ width: calc(var(--spacing) * 10);
425
+ height: calc(var(--spacing) * 10);
426
+ }
401
427
  .size-12 {
402
428
  width: calc(var(--spacing) * 12);
403
429
  height: calc(var(--spacing) * 12);
@@ -423,6 +449,9 @@
423
449
  .h-12 {
424
450
  height: calc(var(--spacing) * 12);
425
451
  }
452
+ .h-16 {
453
+ height: calc(var(--spacing) * 16);
454
+ }
426
455
  .max-h-32 {
427
456
  max-height: calc(var(--spacing) * 32);
428
457
  }
@@ -450,6 +479,12 @@
450
479
  .w-12 {
451
480
  width: calc(var(--spacing) * 12);
452
481
  }
482
+ .w-48 {
483
+ width: calc(var(--spacing) * 48);
484
+ }
485
+ .w-auto {
486
+ width: auto;
487
+ }
453
488
  .w-full {
454
489
  width: 100%;
455
490
  }
@@ -465,6 +500,9 @@
465
500
  .max-w-none {
466
501
  max-width: none;
467
502
  }
503
+ .max-w-xs {
504
+ max-width: var(--container-xs);
505
+ }
468
506
  .min-w-full {
469
507
  min-width: 100%;
470
508
  }
@@ -474,6 +512,9 @@
474
512
  .shrink-0 {
475
513
  flex-shrink: 0;
476
514
  }
515
+ .origin-top-right {
516
+ transform-origin: top right;
517
+ }
477
518
  .scale-75 {
478
519
  --tw-scale-x: 75%;
479
520
  --tw-scale-y: 75%;
@@ -486,6 +527,18 @@
486
527
  --tw-scale-z: 90%;
487
528
  scale: var(--tw-scale-x) var(--tw-scale-y);
488
529
  }
530
+ .scale-95 {
531
+ --tw-scale-x: 95%;
532
+ --tw-scale-y: 95%;
533
+ --tw-scale-z: 95%;
534
+ scale: var(--tw-scale-x) var(--tw-scale-y);
535
+ }
536
+ .scale-100 {
537
+ --tw-scale-x: 100%;
538
+ --tw-scale-y: 100%;
539
+ --tw-scale-z: 100%;
540
+ scale: var(--tw-scale-x) var(--tw-scale-y);
541
+ }
489
542
  .transform {
490
543
  transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);
491
544
  }
@@ -586,6 +639,9 @@
586
639
  margin-block-end: calc(calc(var(--spacing) * 12) * calc(1 - var(--tw-space-y-reverse)));
587
640
  }
588
641
  }
642
+ .gap-x-3 {
643
+ column-gap: calc(var(--spacing) * 3);
644
+ }
589
645
  .space-x-2 {
590
646
  :where(& > :not(:last-child)) {
591
647
  --tw-space-x-reverse: 0;
@@ -673,6 +729,14 @@
673
729
  border-bottom-style: var(--tw-border-style);
674
730
  border-bottom-width: 1px;
675
731
  }
732
+ .border-b-2 {
733
+ border-bottom-style: var(--tw-border-style);
734
+ border-bottom-width: 2px;
735
+ }
736
+ .border-l-4 {
737
+ border-left-style: var(--tw-border-style);
738
+ border-left-width: 4px;
739
+ }
676
740
  .border-dashed {
677
741
  --tw-border-style: dashed;
678
742
  border-style: dashed;
@@ -812,15 +876,30 @@
812
876
  .py-12 {
813
877
  padding-block: calc(var(--spacing) * 12);
814
878
  }
879
+ .pt-1 {
880
+ padding-top: calc(var(--spacing) * 1);
881
+ }
882
+ .pt-2 {
883
+ padding-top: calc(var(--spacing) * 2);
884
+ }
885
+ .pt-4 {
886
+ padding-top: calc(var(--spacing) * 4);
887
+ }
815
888
  .pr-3 {
816
889
  padding-right: calc(var(--spacing) * 3);
817
890
  }
891
+ .pr-4 {
892
+ padding-right: calc(var(--spacing) * 4);
893
+ }
818
894
  .pr-8 {
819
895
  padding-right: calc(var(--spacing) * 8);
820
896
  }
821
897
  .pr-10 {
822
898
  padding-right: calc(var(--spacing) * 10);
823
899
  }
900
+ .pb-3 {
901
+ padding-bottom: calc(var(--spacing) * 3);
902
+ }
824
903
  .pl-3 {
825
904
  padding-left: calc(var(--spacing) * 3);
826
905
  }
@@ -883,6 +962,9 @@
883
962
  font-size: var(--text-xs);
884
963
  line-height: calc(var(--spacing) * 6);
885
964
  }
965
+ .text-\[0\.625rem\] {
966
+ font-size: 0.625rem;
967
+ }
886
968
  .leading-4 {
887
969
  --tw-leading: calc(var(--spacing) * 4);
888
970
  line-height: calc(var(--spacing) * 4);
@@ -991,6 +1073,9 @@
991
1073
  .opacity-0 {
992
1074
  opacity: 0%;
993
1075
  }
1076
+ .opacity-100 {
1077
+ opacity: 100%;
1078
+ }
994
1079
  .shadow {
995
1080
  --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
996
1081
  box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
@@ -1011,6 +1096,12 @@
1011
1096
  --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
1012
1097
  box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
1013
1098
  }
1099
+ .ring-black\/5 {
1100
+ --tw-ring-color: color-mix(in srgb, #000 5%, transparent);
1101
+ @supports (color: color-mix(in lab, red, red)) {
1102
+ --tw-ring-color: color-mix(in oklab, var(--color-black) 5%, transparent);
1103
+ }
1104
+ }
1014
1105
  .ring-gray-300 {
1015
1106
  --tw-ring-color: var(--color-gray-300);
1016
1107
  }
@@ -1020,6 +1111,14 @@
1020
1111
  .ring-red-400 {
1021
1112
  --tw-ring-color: var(--color-red-400);
1022
1113
  }
1114
+ .outline-hidden {
1115
+ --tw-outline-style: none;
1116
+ outline-style: none;
1117
+ @media (forced-colors: active) {
1118
+ outline: 2px solid transparent;
1119
+ outline-offset: 2px;
1120
+ }
1121
+ }
1023
1122
  .outline {
1024
1123
  outline-style: var(--tw-outline-style);
1025
1124
  outline-width: 1px;
@@ -1052,6 +1151,10 @@
1052
1151
  transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
1053
1152
  transition-duration: var(--tw-duration, var(--default-transition-duration));
1054
1153
  }
1154
+ .duration-75 {
1155
+ --tw-duration: 75ms;
1156
+ transition-duration: 75ms;
1157
+ }
1055
1158
  .duration-100 {
1056
1159
  --tw-duration: 100ms;
1057
1160
  transition-duration: 100ms;
@@ -1114,6 +1217,13 @@
1114
1217
  }
1115
1218
  }
1116
1219
  }
1220
+ .hover\:border-gray-300 {
1221
+ &:hover {
1222
+ @media (hover: hover) {
1223
+ border-color: var(--color-gray-300);
1224
+ }
1225
+ }
1226
+ }
1117
1227
  .hover\:bg-blue-700 {
1118
1228
  &:hover {
1119
1229
  @media (hover: hover) {
@@ -1177,6 +1287,13 @@
1177
1287
  }
1178
1288
  }
1179
1289
  }
1290
+ .hover\:text-gray-800 {
1291
+ &:hover {
1292
+ @media (hover: hover) {
1293
+ color: var(--color-gray-800);
1294
+ }
1295
+ }
1296
+ }
1180
1297
  .hover\:text-gray-900 {
1181
1298
  &:hover {
1182
1299
  @media (hover: hover) {
@@ -1244,6 +1361,16 @@
1244
1361
  --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
1245
1362
  }
1246
1363
  }
1364
+ .focus\:outline-hidden {
1365
+ &:focus {
1366
+ --tw-outline-style: none;
1367
+ outline-style: none;
1368
+ @media (forced-colors: active) {
1369
+ outline: 2px solid transparent;
1370
+ outline-offset: 2px;
1371
+ }
1372
+ }
1373
+ }
1247
1374
  .focus\:outline-2 {
1248
1375
  &:focus {
1249
1376
  outline-style: var(--tw-outline-style);
@@ -1261,6 +1388,18 @@
1261
1388
  outline-style: none;
1262
1389
  }
1263
1390
  }
1391
+ .focus-visible\:ring-2 {
1392
+ &:focus-visible {
1393
+ --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
1394
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
1395
+ }
1396
+ }
1397
+ .focus-visible\:ring-offset-2 {
1398
+ &:focus-visible {
1399
+ --tw-ring-offset-width: 2px;
1400
+ --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
1401
+ }
1402
+ }
1264
1403
  .disabled\:cursor-not-allowed {
1265
1404
  &:disabled {
1266
1405
  cursor: not-allowed;
@@ -1281,26 +1420,60 @@
1281
1420
  grid-column: span 3 / span 3;
1282
1421
  }
1283
1422
  }
1423
+ .sm\:-my-px {
1424
+ @media (width >= 40rem) {
1425
+ margin-block: -1px;
1426
+ }
1427
+ }
1284
1428
  .sm\:mt-0 {
1285
1429
  @media (width >= 40rem) {
1286
1430
  margin-top: calc(var(--spacing) * 0);
1287
1431
  }
1288
1432
  }
1433
+ .sm\:ml-6 {
1434
+ @media (width >= 40rem) {
1435
+ margin-left: calc(var(--spacing) * 6);
1436
+ }
1437
+ }
1438
+ .sm\:flex {
1439
+ @media (width >= 40rem) {
1440
+ display: flex;
1441
+ }
1442
+ }
1289
1443
  .sm\:grid {
1290
1444
  @media (width >= 40rem) {
1291
1445
  display: grid;
1292
1446
  }
1293
1447
  }
1448
+ .sm\:hidden {
1449
+ @media (width >= 40rem) {
1450
+ display: none;
1451
+ }
1452
+ }
1294
1453
  .sm\:grid-cols-3 {
1295
1454
  @media (width >= 40rem) {
1296
1455
  grid-template-columns: repeat(3, minmax(0, 1fr));
1297
1456
  }
1298
1457
  }
1458
+ .sm\:items-center {
1459
+ @media (width >= 40rem) {
1460
+ align-items: center;
1461
+ }
1462
+ }
1299
1463
  .sm\:gap-4 {
1300
1464
  @media (width >= 40rem) {
1301
1465
  gap: calc(var(--spacing) * 4);
1302
1466
  }
1303
1467
  }
1468
+ .sm\:space-x-8 {
1469
+ @media (width >= 40rem) {
1470
+ :where(& > :not(:last-child)) {
1471
+ --tw-space-x-reverse: 0;
1472
+ margin-inline-start: calc(calc(var(--spacing) * 8) * var(--tw-space-x-reverse));
1473
+ margin-inline-end: calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-x-reverse)));
1474
+ }
1475
+ }
1476
+ }
1304
1477
  .sm\:px-6 {
1305
1478
  @media (width >= 40rem) {
1306
1479
  padding-inline: calc(var(--spacing) * 6);
@@ -1354,6 +1527,16 @@
1354
1527
  grid-template-columns: repeat(10, minmax(0, 1fr));
1355
1528
  }
1356
1529
  }
1530
+ .lg\:block {
1531
+ @media (width >= 64rem) {
1532
+ display: block;
1533
+ }
1534
+ }
1535
+ .lg\:hidden {
1536
+ @media (width >= 64rem) {
1537
+ display: none;
1538
+ }
1539
+ }
1357
1540
  .lg\:grid-cols-2 {
1358
1541
  @media (width >= 64rem) {
1359
1542
  grid-template-columns: repeat(2, minmax(0, 1fr));
@@ -2,7 +2,7 @@ module OkonomiUiKit
2
2
  module NavigationHelper
3
3
  def navigation_menu(**options, &block)
4
4
  builder = NavigationBuilder.new(self)
5
- render 'okonomi_ui_kit/shared/navigation_menu', builder: builder, options: options, &block
5
+ render 'okonomi_ui_kit/navigation/menu', builder: builder, options: options, &block
6
6
  end
7
7
 
8
8
  class NavigationBuilder
@@ -49,7 +49,7 @@ module OkonomiUiKit
49
49
 
50
50
  def nav_link(title, path, icon: nil, initials: nil, exact: false)
51
51
  tag.li do
52
- @template.render "layouts/shared/nav_link",
52
+ @template.render "okonomi_ui_kit/navigation/link",
53
53
  path: path,
54
54
  title: title,
55
55
  icon: icon,
@@ -3,7 +3,7 @@ module OkonomiUiKit
3
3
  def table(**options, &block)
4
4
  builder = TableBuilder.new(self)
5
5
 
6
- render 'tables/table', builder: builder, options: options, &block
6
+ render 'okonomi_ui_kit/tables/table', builder: builder, options: options, &block
7
7
  end
8
8
 
9
9
  class TableBuilder
@@ -0,0 +1,15 @@
1
+ <%
2
+ options = {
3
+ exact: defined?(exact) ? exact : false,
4
+ class: "group flex gap-x-3 rounded-md p-2 text-sm/6 font-semibold hover:bg-gray-50 hover:text-primary-600 text-gray-700",
5
+ active_class: "group flex gap-x-3 rounded-md p-2 text-sm/6 font-semibold hover:bg-gray-50 hover:text-primary-600 bg-gray-50 text-primary-600",
6
+ }
7
+ %>
8
+ <%= active_link_to path, options do %>
9
+ <% if defined?(initials) && initials.present? %>
10
+ <span class="flex size-6 shrink-0 items-center justify-center rounded-lg border border-gray-200 bg-white text-[0.625rem] font-medium text-gray-400 group-hover:border-primary-600 group-hover:text-primary-600"><%= initials %></span>
11
+ <% elsif defined?(icon) && icon.present? %>
12
+ <%= svg_icon icon, class: "size-6 text-gray-400 group-hover:text-primary-600" %>
13
+ <% end %>
14
+ <%= title %>
15
+ <% end %>
@@ -0,0 +1,105 @@
1
+ <nav class="border-b border-gray-200 bg-white">
2
+ <div class="mx-auto max-w-7xl px-4 sm:px-6 lg:px-8">
3
+ <div class="flex h-16 justify-between">
4
+ <div class="flex">
5
+ <div class="flex shrink-0 items-center">
6
+ <img class="block h-8 w-auto lg:hidden" src="https://tailwindcss.com/plus-assets/img/logos/mark.svg?color=primary&shade=600" alt="Your Company" />
7
+ <img class="hidden h-8 w-auto lg:block" src="https://tailwindcss.com/plus-assets/img/logos/mark.svg?color=primary&shade=600" alt="Your Company" />
8
+ </div>
9
+ <div class="hidden sm:-my-px sm:ml-6 sm:flex sm:space-x-8">
10
+ <!-- Current: "border-primary-500 text-gray-900", Default: "border-transparent text-gray-500 hover:border-gray-300 hover:text-gray-700" -->
11
+ <a href="#" class="inline-flex items-center border-b-2 border-primary-500 px-1 pt-1 text-sm font-medium text-gray-900" aria-current="page">Dashboard</a>
12
+ <a href="#" class="inline-flex items-center border-b-2 border-transparent px-1 pt-1 text-sm font-medium text-gray-500 hover:border-gray-300 hover:text-gray-700">Team</a>
13
+ <a href="#" class="inline-flex items-center border-b-2 border-transparent px-1 pt-1 text-sm font-medium text-gray-500 hover:border-gray-300 hover:text-gray-700">Projects</a>
14
+ <a href="#" class="inline-flex items-center border-b-2 border-transparent px-1 pt-1 text-sm font-medium text-gray-500 hover:border-gray-300 hover:text-gray-700">Calendar</a>
15
+ </div>
16
+ </div>
17
+ <div class="hidden sm:ml-6 sm:flex sm:items-center">
18
+ <button type="button" class="relative rounded-full bg-white p-1 text-gray-400 hover:text-gray-500 focus:ring-2 focus:ring-primary-500 focus:ring-offset-2 focus:outline-hidden">
19
+ <span class="absolute -inset-1.5"></span>
20
+ <span class="sr-only">View notifications</span>
21
+ <svg class="size-6" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" data-slot="icon">
22
+ <path stroke-linecap="round" stroke-linejoin="round" d="M14.857 17.082a23.848 23.848 0 0 0 5.454-1.31A8.967 8.967 0 0 1 18 9.75V9A6 6 0 0 0 6 9v.75a8.967 8.967 0 0 1-2.312 6.022c1.733.64 3.56 1.085 5.455 1.31m5.714 0a24.255 24.255 0 0 1-5.714 0m5.714 0a3 3 0 1 1-5.714 0" />
23
+ </svg>
24
+ </button>
25
+
26
+ <!-- Profile dropdown -->
27
+ <div class="relative ml-3">
28
+ <div>
29
+ <button type="button" class="relative flex max-w-xs items-center rounded-full bg-white text-sm focus:outline-hidden focus-visible:ring-2 focus-visible:ring-primary-500 focus-visible:ring-offset-2" id="user-menu-button" aria-expanded="false" aria-haspopup="true">
30
+ <span class="absolute -inset-1.5"></span>
31
+ <span class="sr-only">Open user menu</span>
32
+ <img class="size-8 rounded-full" src="https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80" alt="" />
33
+ </button>
34
+ </div>
35
+
36
+ <!--
37
+ Dropdown menu, show/hide based on menu state.
38
+
39
+ Entering: "transition ease-out duration-200"
40
+ From: "transform opacity-0 scale-95"
41
+ To: "transform opacity-100 scale-100"
42
+ Leaving: "transition ease-in duration-75"
43
+ From: "transform opacity-100 scale-100"
44
+ To: "transform opacity-0 scale-95"
45
+ -->
46
+ <div class="absolute right-0 z-10 mt-2 w-48 origin-top-right rounded-md bg-white py-1 shadow-lg ring-1 ring-black/5 focus:outline-hidden" role="menu" aria-orientation="vertical" aria-labelledby="user-menu-button" tabindex="-1">
47
+ <!-- Active: "bg-gray-100 outline-hidden", Not Active: "" -->
48
+ <a href="#" class="block px-4 py-2 text-sm text-gray-700" role="menuitem" tabindex="-1" id="user-menu-item-0">Your Profile</a>
49
+ <a href="#" class="block px-4 py-2 text-sm text-gray-700" role="menuitem" tabindex="-1" id="user-menu-item-1">Settings</a>
50
+ <a href="#" class="block px-4 py-2 text-sm text-gray-700" role="menuitem" tabindex="-1" id="user-menu-item-2">Sign out</a>
51
+ </div>
52
+ </div>
53
+ </div>
54
+ <div class="-mr-2 flex items-center sm:hidden">
55
+ <!-- Mobile menu button -->
56
+ <button type="button" class="relative inline-flex items-center justify-center rounded-md bg-white p-2 text-gray-400 hover:bg-gray-100 hover:text-gray-500 focus:ring-2 focus:ring-primary-500 focus:ring-offset-2 focus:outline-hidden" aria-controls="mobile-menu" aria-expanded="false">
57
+ <span class="absolute -inset-0.5"></span>
58
+ <span class="sr-only">Open main menu</span>
59
+ <!-- Menu open: "hidden", Menu closed: "block" -->
60
+ <svg class="block size-6" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" data-slot="icon">
61
+ <path stroke-linecap="round" stroke-linejoin="round" d="M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5" />
62
+ </svg>
63
+ <!-- Menu open: "block", Menu closed: "hidden" -->
64
+ <svg class="hidden size-6" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" data-slot="icon">
65
+ <path stroke-linecap="round" stroke-linejoin="round" d="M6 18 18 6M6 6l12 12" />
66
+ </svg>
67
+ </button>
68
+ </div>
69
+ </div>
70
+ </div>
71
+
72
+ <!-- Mobile menu, show/hide based on menu state. -->
73
+ <div class="sm:hidden" id="mobile-menu">
74
+ <div class="space-y-1 pt-2 pb-3">
75
+ <!-- Current: "border-primary-500 bg-primary-50 text-primary-700", Default: "border-transparent text-gray-600 hover:border-gray-300 hover:bg-gray-50 hover:text-gray-800" -->
76
+ <a href="#" class="block border-l-4 border-primary-500 bg-primary-50 py-2 pr-4 pl-3 text-base font-medium text-primary-700" aria-current="page">Dashboard</a>
77
+ <a href="#" class="block border-l-4 border-transparent py-2 pr-4 pl-3 text-base font-medium text-gray-600 hover:border-gray-300 hover:bg-gray-50 hover:text-gray-800">Team</a>
78
+ <a href="#" class="block border-l-4 border-transparent py-2 pr-4 pl-3 text-base font-medium text-gray-600 hover:border-gray-300 hover:bg-gray-50 hover:text-gray-800">Projects</a>
79
+ <a href="#" class="block border-l-4 border-transparent py-2 pr-4 pl-3 text-base font-medium text-gray-600 hover:border-gray-300 hover:bg-gray-50 hover:text-gray-800">Calendar</a>
80
+ </div>
81
+ <div class="border-t border-gray-200 pt-4 pb-3">
82
+ <div class="flex items-center px-4">
83
+ <div class="shrink-0">
84
+ <img class="size-10 rounded-full" src="https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=facearea&facepad=2&w=256&h=256&q=80" alt="" />
85
+ </div>
86
+ <div class="ml-3">
87
+ <div class="text-base font-medium text-gray-800">Tom Cook</div>
88
+ <div class="text-sm font-medium text-gray-500">tom@example.com</div>
89
+ </div>
90
+ <button type="button" class="relative ml-auto shrink-0 rounded-full bg-white p-1 text-gray-400 hover:text-gray-500 focus:ring-2 focus:ring-primary-500 focus:ring-offset-2 focus:outline-hidden">
91
+ <span class="absolute -inset-1.5"></span>
92
+ <span class="sr-only">View notifications</span>
93
+ <svg class="size-6" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" data-slot="icon">
94
+ <path stroke-linecap="round" stroke-linejoin="round" d="M14.857 17.082a23.848 23.848 0 0 0 5.454-1.31A8.967 8.967 0 0 1 18 9.75V9A6 6 0 0 0 6 9v.75a8.967 8.967 0 0 1-2.312 6.022c1.733.64 3.56 1.085 5.455 1.31m5.714 0a24.255 24.255 0 0 1-5.714 0m5.714 0a3 3 0 1 1-5.714 0" />
95
+ </svg>
96
+ </button>
97
+ </div>
98
+ <div class="mt-3 space-y-1">
99
+ <a href="#" class="block px-4 py-2 text-base font-medium text-gray-500 hover:bg-gray-100 hover:text-gray-800">Your Profile</a>
100
+ <a href="#" class="block px-4 py-2 text-base font-medium text-gray-500 hover:bg-gray-100 hover:text-gray-800">Settings</a>
101
+ <a href="#" class="block px-4 py-2 text-base font-medium text-gray-500 hover:bg-gray-100 hover:text-gray-800">Sign out</a>
102
+ </div>
103
+ </div>
104
+ </div>
105
+ </nav>
@@ -1,3 +1,3 @@
1
1
  module OkonomiUiKit
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.2"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: okonomi_ui_kit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Okonomi GmbH
@@ -1351,8 +1351,10 @@ files:
1351
1351
  - app/views/okonomi_ui_kit/forms/tailwind/_multi_select.html.erb
1352
1352
  - app/views/okonomi_ui_kit/forms/tailwind/_radio_button.html.erb
1353
1353
  - app/views/okonomi_ui_kit/forms/tailwind/_upload_field.html.erb
1354
+ - app/views/okonomi_ui_kit/navigation/_link.html.erb
1355
+ - app/views/okonomi_ui_kit/navigation/_menu.html.erb
1356
+ - app/views/okonomi_ui_kit/navigation/_navbar.html.erb
1354
1357
  - app/views/okonomi_ui_kit/page_builder/_page.html.erb
1355
- - app/views/okonomi_ui_kit/shared/_navigation_menu.html.erb
1356
1358
  - app/views/okonomi_ui_kit/tables/_table.html.erb
1357
1359
  - config/importmap.rb
1358
1360
  - config/routes.rb