@keboola/design 1.3.1 → 2.0.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 (98) hide show
  1. package/dist/icons.cjs +32 -0
  2. package/dist/icons.js +1 -1
  3. package/dist/index.cjs +507 -103
  4. package/dist/index.cjs.map +1 -1
  5. package/dist/index.js +495 -106
  6. package/dist/index.js.map +1 -1
  7. package/dist/markdown-editor.cjs +78 -42
  8. package/dist/markdown-editor.cjs.map +1 -1
  9. package/dist/markdown-editor.js +78 -42
  10. package/dist/markdown-editor.js.map +1 -1
  11. package/dist/mermaid.cjs +32 -9
  12. package/dist/mermaid.cjs.map +1 -1
  13. package/dist/mermaid.js +32 -9
  14. package/dist/mermaid.js.map +1 -1
  15. package/dist/styles.css +1 -1
  16. package/package.json +8 -6
  17. package/src/blocks/AIKit/PlanApproval.tsx +29 -12
  18. package/src/blocks/AIKit/PromptInput.test.tsx +53 -0
  19. package/src/blocks/AIKit/PromptInput.tsx +1 -1
  20. package/src/blocks/AIKit/Question.tsx +39 -11
  21. package/src/blocks/AIKit/SuggestedPrompt.stories.tsx +2 -8
  22. package/src/blocks/EmptyState/EmptyState.stories.tsx +5 -5
  23. package/src/blocks/EmptyState/EmptyState.tsx +2 -2
  24. package/src/blocks/ErrorState/ErrorState.stories.tsx +6 -6
  25. package/src/blocks/ErrorState/ErrorState.tsx +18 -3
  26. package/src/blocks/InputOtp/InputOtp.stories.tsx +214 -0
  27. package/src/blocks/InputOtp/InputOtp.test.tsx +162 -0
  28. package/src/blocks/InputOtp/InputOtp.tsx +62 -0
  29. package/src/blocks/InputOtp/InputOtpGroup.tsx +13 -0
  30. package/src/blocks/InputOtp/InputOtpSeparator.tsx +23 -0
  31. package/src/blocks/InputOtp/InputOtpSlot.styles.ts +52 -0
  32. package/src/blocks/InputOtp/InputOtpSlot.tsx +44 -0
  33. package/src/blocks/InputOtp/context.ts +23 -0
  34. package/src/blocks/InputOtp/index.ts +23 -0
  35. package/src/blocks/PageHeader/AGENTS.md +1 -1
  36. package/src/blocks/PageHeader/PageHeader.stories.tsx +6 -3
  37. package/src/blocks/PageHeader/PageHeaderIndex.tsx +2 -2
  38. package/src/blocks/PageLayout/AGENTS.md +3 -3
  39. package/src/blocks/PageLayout/PageLayout.stories.tsx +7 -4
  40. package/src/blocks/PageLayout/PageLayout.tsx +1 -18
  41. package/src/blocks/PageToolbar/PageToolbar.stories.tsx +79 -74
  42. package/src/blocks/PageToolbar/PageToolbar.tsx +45 -4
  43. package/src/blocks/PageToolbar/PageToolbarToken.tsx +61 -0
  44. package/src/blocks/SearchInput/SearchInput.tsx +2 -2
  45. package/src/components/Alert/AlertDescription.tsx +5 -0
  46. package/src/components/Alert/AlertIcon.tsx +1 -1
  47. package/src/components/Badge/Badge.stories.tsx +3 -5
  48. package/src/components/Badge/BadgeAddon.tsx +1 -1
  49. package/src/components/Badge/BadgeButton.tsx +1 -1
  50. package/src/components/Breadcrumb/Breadcrumb.stories.tsx +4 -4
  51. package/src/components/Breadcrumb/BreadcrumbLink.tsx +1 -1
  52. package/src/components/Breadcrumb/BreadcrumbSeparator.tsx +1 -1
  53. package/src/components/Button/ButtonInline.stories.tsx +3 -3
  54. package/src/components/Button/ButtonInline.tsx +4 -0
  55. package/src/components/Button/styles.ts +33 -10
  56. package/src/components/Card/Card.stories.tsx +2 -2
  57. package/src/components/Combobox/ComboboxItemIndicator.tsx +1 -1
  58. package/src/components/Command/CommandItem/CommandItem.tsx +1 -1
  59. package/src/components/DropdownMenu/DropdownMenuItemIndicator.tsx +4 -4
  60. package/src/components/DropdownMenu/ItemIcon.tsx +1 -1
  61. package/src/components/FormGroup/FormGroup.stories.tsx +2 -2
  62. package/src/components/HoverCard/HoverCardContent.tsx +5 -0
  63. package/src/components/Input/Input.stories.tsx +2 -2
  64. package/src/components/InputGroup/InputGroup.stories.tsx +4 -5
  65. package/src/components/InputGroup/InputGroup.tsx +1 -1
  66. package/src/components/InputGroup/InputGroupAddon.tsx +35 -24
  67. package/src/components/Kbd/Kbd.stories.tsx +2 -2
  68. package/src/components/Label/Label.stories.tsx +2 -2
  69. package/src/components/Modal/ModalBody.tsx +5 -0
  70. package/src/components/Modal/ModalIcon.tsx +1 -1
  71. package/src/components/Navbar/Navbar.stories.tsx +4 -5
  72. package/src/components/Navbar/NavbarMenuItemAdornment.tsx +2 -2
  73. package/src/components/Pagination/Pagination.stories.tsx +0 -1
  74. package/src/components/Pagination/PaginationEllipsis.tsx +1 -1
  75. package/src/components/Popover/PopoverContent.tsx +4 -0
  76. package/src/components/Select/SelectContent.tsx +1 -1
  77. package/src/components/Select/SelectTrigger.tsx +1 -1
  78. package/src/components/Separator/Separator.stories.tsx +19 -0
  79. package/src/components/Separator/Separator.test.tsx +39 -0
  80. package/src/components/Separator/Separator.tsx +42 -11
  81. package/src/components/Sidebar/Sidebar.stories.tsx +6 -5
  82. package/src/components/Sidebar/SidebarGroup/SidebarGroupAction.tsx +1 -1
  83. package/src/components/Sidebar/SidebarMenu/SidebarMenuAction.tsx +1 -1
  84. package/src/components/Sidebar/SidebarMenu/SidebarMenuIcon.tsx +1 -1
  85. package/src/components/Table/Table.stories.tsx +16 -16
  86. package/src/components/Timeline/Timeline.stories.tsx +8 -8
  87. package/src/components/Timeline/TimelineConnector.tsx +5 -1
  88. package/src/components/Toast/ToastDismiss.tsx +1 -1
  89. package/src/components/Toast/ToastRoot.tsx +1 -1
  90. package/src/components/Toggle/Toggle.tsx +1 -1
  91. package/src/components/ToggleGroup/ToggleGroup.stories.tsx +60 -0
  92. package/src/components/ToggleGroup/ToggleGroup.tsx +99 -0
  93. package/src/components/ToggleGroup/index.ts +1 -0
  94. package/src/components/Tooltip/Tooltip.stories.tsx +2 -2
  95. package/src/hooks/useAutosizeInput.stories.tsx +2 -2
  96. package/src/icons/index.ts +8 -0
  97. package/src/index.ts +2 -0
  98. package/src/patterns/FilterToolbar.stories.tsx +248 -44
@@ -613,15 +613,38 @@ var init_styles = __esm({
613
613
  ]
614
614
  },
615
615
  size: {
616
- medium: ["tw-max-h-10", "tw-min-h-10", "tw-px-4", "tw-py-2.5", "[&_svg]:tw-size-4"],
617
- small: ["tw-max-h-8", "tw-min-h-8", "tw-px-4", "tw-py-1.5", "[&_svg]:tw-size-4"],
618
- large: ["tw-max-h-12", "tw-min-h-12", "tw-px-4", "tw-py-3.5", "[&_svg]:tw-size-4"],
619
- "icon-lg": ["tw-size-12", "tw-p-0", "[&_svg]:tw-size-6"],
620
- icon: ["tw-size-10", "tw-p-0", "[&_svg]:tw-size-4"],
621
- "icon-sm": ["tw-size-8", "tw-p-0", "[&_svg]:tw-size-4"],
622
- "icon-xs": ["tw-size-6", "tw-p-0", "[&_svg]:tw-size-4"],
623
- "icon-2xs": ["!tw-inline-flex", "tw-size-5", "tw-max-h-5", "[&_svg]:tw-size-3"],
624
- "icon-3xs": ["tw-h-fit", "tw-w-fit", "[&_svg]:tw-size-4"]
616
+ medium: [
617
+ "tw-max-h-10",
618
+ "tw-min-h-10",
619
+ "tw-px-4",
620
+ "tw-py-2.5",
621
+ '[&_svg:not([class*="tw-size-"])]:tw-size-4'
622
+ ],
623
+ small: [
624
+ "tw-max-h-8",
625
+ "tw-min-h-8",
626
+ "tw-px-4",
627
+ "tw-py-1.5",
628
+ '[&_svg:not([class*="tw-size-"])]:tw-size-4'
629
+ ],
630
+ large: [
631
+ "tw-max-h-12",
632
+ "tw-min-h-12",
633
+ "tw-px-4",
634
+ "tw-py-3.5",
635
+ '[&_svg:not([class*="tw-size-"])]:tw-size-4'
636
+ ],
637
+ "icon-lg": ["tw-size-12", "tw-p-0", '[&_svg:not([class*="tw-size-"])]:tw-size-6'],
638
+ icon: ["tw-size-10", "tw-p-0", '[&_svg:not([class*="tw-size-"])]:tw-size-4'],
639
+ "icon-sm": ["tw-size-8", "tw-p-0", '[&_svg:not([class*="tw-size-"])]:tw-size-4'],
640
+ "icon-xs": ["tw-size-6", "tw-p-0", '[&_svg:not([class*="tw-size-"])]:tw-size-4'],
641
+ "icon-2xs": [
642
+ "!tw-inline-flex",
643
+ "tw-size-5",
644
+ "tw-max-h-5",
645
+ '[&_svg:not([class*="tw-size-"])]:tw-size-3'
646
+ ],
647
+ "icon-3xs": ["tw-h-fit", "tw-w-fit", '[&_svg:not([class*="tw-size-"])]:tw-size-4']
625
648
  }
626
649
  }
627
650
  }
@@ -816,7 +839,10 @@ var init_ButtonInline = __esm({
816
839
  "disabled:tw-cursor-not-allowed",
817
840
  "disabled:tw-text-neutral-500",
818
841
  "disabled:tw-no-underline",
819
- "[&_svg]:disabled:tw-text-neutral-400"
842
+ "[&_svg]:disabled:tw-text-neutral-400",
843
+ // Default size for nested Lucide icons; callers can override on the icon.
844
+ "[&_svg:not([class*='tw-size-'])]:tw-size-4",
845
+ "[&_svg]:tw-shrink-0"
820
846
  ],
821
847
  {
822
848
  defaultVariants: {
@@ -1642,7 +1668,7 @@ var ToastDismiss = ({
1642
1668
  "tw-row-start-1",
1643
1669
  "tailwindcss-preflight",
1644
1670
  "[&_svg]:tw-aspect-square",
1645
- "[&_svg]:tw-size-4",
1671
+ '[&_svg:not([class*="tw-size-"])]:tw-size-4',
1646
1672
  "[&_svg]:tw-m-1",
1647
1673
  "tw-text-white",
1648
1674
  "group-data-[variant=default]/toast:[&_svg]:tw-text-popover-foreground",
@@ -1799,7 +1825,7 @@ var ToastRoot = ({
1799
1825
  "tw-aspect-square",
1800
1826
  "tw-size-5",
1801
1827
  "tw-shrink-0",
1802
- "[&_svg]:tw-size-5",
1828
+ '[&_svg:not([class*="tw-size-"])]:tw-size-5',
1803
1829
  "tw-text-white",
1804
1830
  "group-data-[variant=default]/toast:tw-text-popover-foreground"
1805
1831
  ),
@@ -2231,7 +2257,7 @@ var variants3 = classVarianceAuthority.cva(
2231
2257
  "tw-border-border",
2232
2258
  "tw-rounded-full",
2233
2259
  "tw-bg-white",
2234
- "[&_svg]:tw-size-2",
2260
+ '[&_svg:not([class*="tw-size-"])]:tw-size-2',
2235
2261
  "[&_svg]:data-[state=unchecked]:tw-hidden",
2236
2262
  // Lucide Circle is stroke-only — force fill to match the stroke
2237
2263
  // (currentColor) so the indicator reads as a solid dot.
@@ -2239,14 +2265,14 @@ var variants3 = classVarianceAuthority.cva(
2239
2265
  "group-data-[variant=argo]/dropdown-menu-content:[&_svg]:tw-text-primary",
2240
2266
  "group-data-[variant=default]/dropdown-menu-content:[&_svg]:tw-text-secondary-500"
2241
2267
  ],
2242
- check: ["[&_svg]:tw-size-3.5", "[&_svg]:tw-text-primary"],
2268
+ check: ['[&_svg:not([class*="tw-size-"])]:tw-size-3.5', "[&_svg]:tw-text-primary"],
2243
2269
  checkbox: [
2244
2270
  "[&_svg]:tw-text-white",
2245
2271
  "tw-border",
2246
2272
  "tw-border-solid",
2247
2273
  "tw-border-neutral-200",
2248
2274
  "tw-rounded",
2249
- "[&_svg]:tw-size-3",
2275
+ '[&_svg:not([class*="tw-size-"])]:tw-size-3',
2250
2276
  "[&_svg]:data-[state=unchecked]:tw-hidden",
2251
2277
  "group-data-[variant=argo]/dropdown-menu-content:data-[state=checked]:tw-border-primary",
2252
2278
  "group-data-[variant=argo]/dropdown-menu-content:data-[state=checked]:tw-bg-primary",
@@ -2257,7 +2283,7 @@ var variants3 = classVarianceAuthority.cva(
2257
2283
  "tw-size-5",
2258
2284
  // Lucide SVGs default to 24×24 — constrain the rendered ToggleRight
2259
2285
  // to the indicator slot so it doesn't overflow.
2260
- "[&_svg]:tw-size-5",
2286
+ '[&_svg:not([class*="tw-size-"])]:tw-size-5',
2261
2287
  "tw-text-neutral-400",
2262
2288
  "data-[state=unchecked]:tw-rotate-180",
2263
2289
  "group-data-[variant=default]/dropdown-menu-content:data-[state=checked]:tw-text-secondary-500",
@@ -2308,7 +2334,7 @@ var ItemIcon = ({ className, children, ...props }) => /* @__PURE__ */ jsxRuntime
2308
2334
  // 20px container fits the 16px Lucide glyph plus 2px breathing room
2309
2335
  // each side — the previous tw-size-4 + tw-p-0.5 clipped the 16px child.
2310
2336
  "tw-size-5",
2311
- "[&_svg]:tw-size-4",
2337
+ '[&_svg:not([class*="tw-size-"])]:tw-size-4',
2312
2338
  "group-data-[variant=default]/dropdown-menu-content:tw-text-neutral-400",
2313
2339
  "group-data-[variant=argo]/dropdown-menu-content:tw-text-primary",
2314
2340
  "group-data-[variant=argo]/dropdown-menu-content:group-aria-disabled:tw-text-muted-foreground",
@@ -3016,32 +3042,42 @@ init_utils();
3016
3042
 
3017
3043
  // src/components/InputGroup/InputGroupAddon.tsx
3018
3044
  init_utils();
3019
- var addonVariants = classVarianceAuthority.cva(["tw-flex", "tw-items-center", "tw-gap-1"], {
3020
- defaultVariants: {
3021
- align: "inline-start"
3022
- },
3023
- variants: {
3024
- align: {
3025
- "inline-start": ["tw-order-first", "[&:not(:empty)]:tw-pl-4"],
3026
- "inline-end": ["tw-order-last", "[&:not(:empty)]:tw-pr-4"],
3027
- "block-start": [
3028
- "tw-order-first",
3029
- // `tw-w-full` needs to be empty-conditional too — when the addon
3030
- // has no content the root stays in flex-row, and a 100%-wide
3031
- // empty addon would claim half of the input row beside the input.
3032
- "[&:not(:empty)]:tw-w-full",
3033
- "[&:not(:empty)]:tw-px-4",
3034
- "[&:not(:empty)]:tw-py-1.5"
3035
- ],
3036
- "block-end": [
3037
- "tw-order-last",
3038
- "[&:not(:empty)]:tw-w-full",
3039
- "[&:not(:empty)]:tw-px-4",
3040
- "[&:not(:empty)]:tw-py-1.5"
3041
- ]
3045
+ var addonVariants = classVarianceAuthority.cva(
3046
+ [
3047
+ "tw-flex",
3048
+ "tw-items-center",
3049
+ "tw-gap-1",
3050
+ // Default size for nested Lucide icons in prefix/suffix slots; callers can override on the icon.
3051
+ "[&_svg:not([class*='tw-size-'])]:tw-size-4",
3052
+ "[&_svg]:tw-shrink-0"
3053
+ ],
3054
+ {
3055
+ defaultVariants: {
3056
+ align: "inline-start"
3057
+ },
3058
+ variants: {
3059
+ align: {
3060
+ "inline-start": ["tw-order-first", "[&:not(:empty)]:tw-pl-4"],
3061
+ "inline-end": ["tw-order-last", "[&:not(:empty)]:tw-pr-4"],
3062
+ "block-start": [
3063
+ "tw-order-first",
3064
+ // `tw-w-full` needs to be empty-conditional too — when the addon
3065
+ // has no content the root stays in flex-row, and a 100%-wide
3066
+ // empty addon would claim half of the input row beside the input.
3067
+ "[&:not(:empty)]:tw-w-full",
3068
+ "[&:not(:empty)]:tw-px-4",
3069
+ "[&:not(:empty)]:tw-py-1.5"
3070
+ ],
3071
+ "block-end": [
3072
+ "tw-order-last",
3073
+ "[&:not(:empty)]:tw-w-full",
3074
+ "[&:not(:empty)]:tw-px-4",
3075
+ "[&:not(:empty)]:tw-py-1.5"
3076
+ ]
3077
+ }
3042
3078
  }
3043
3079
  }
3044
- });
3080
+ );
3045
3081
  var InputGroupAddon = ({
3046
3082
  children,
3047
3083
  align = "inline-start",
@@ -3213,7 +3249,7 @@ var inputGroupVariants = classVarianceAuthority.cva(
3213
3249
  defaultVariants: {
3214
3250
  variant: "primary",
3215
3251
  state: "default",
3216
- sizing: "default",
3252
+ sizing: "medium",
3217
3253
  focusVariant: "default"
3218
3254
  },
3219
3255
  compoundVariants: [