@tonyarbor/components 0.1.0 → 0.2.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 (126) hide show
  1. package/dist/Banner.d.mts +59 -0
  2. package/dist/Banner.d.ts +59 -0
  3. package/dist/Banner.js +222 -0
  4. package/dist/Banner.js.map +1 -0
  5. package/dist/Banner.mjs +7 -0
  6. package/dist/Banner.mjs.map +1 -0
  7. package/dist/Checkbox.d.mts +52 -0
  8. package/dist/Checkbox.d.ts +52 -0
  9. package/dist/Checkbox.js +194 -0
  10. package/dist/Checkbox.js.map +1 -0
  11. package/dist/Checkbox.mjs +7 -0
  12. package/dist/Checkbox.mjs.map +1 -0
  13. package/dist/Combobox.d.mts +67 -0
  14. package/dist/Combobox.d.ts +67 -0
  15. package/dist/Combobox.js +329 -0
  16. package/dist/Combobox.js.map +1 -0
  17. package/dist/Combobox.mjs +7 -0
  18. package/dist/Combobox.mjs.map +1 -0
  19. package/dist/DatePicker.d.mts +68 -0
  20. package/dist/DatePicker.d.ts +68 -0
  21. package/dist/DatePicker.js +490 -0
  22. package/dist/DatePicker.js.map +1 -0
  23. package/dist/DatePicker.mjs +7 -0
  24. package/dist/DatePicker.mjs.map +1 -0
  25. package/dist/NumericInput.d.mts +68 -0
  26. package/dist/NumericInput.d.ts +68 -0
  27. package/dist/NumericInput.js +319 -0
  28. package/dist/NumericInput.js.map +1 -0
  29. package/dist/NumericInput.mjs +7 -0
  30. package/dist/NumericInput.mjs.map +1 -0
  31. package/dist/Pagination.d.mts +36 -0
  32. package/dist/Pagination.d.ts +36 -0
  33. package/dist/Pagination.js +301 -0
  34. package/dist/Pagination.js.map +1 -0
  35. package/dist/Pagination.mjs +7 -0
  36. package/dist/Pagination.mjs.map +1 -0
  37. package/dist/Radio.d.mts +48 -0
  38. package/dist/Radio.d.ts +48 -0
  39. package/dist/Radio.js +194 -0
  40. package/dist/Radio.js.map +1 -0
  41. package/dist/Radio.mjs +7 -0
  42. package/dist/Radio.mjs.map +1 -0
  43. package/dist/Table.d.mts +80 -0
  44. package/dist/Table.d.ts +80 -0
  45. package/dist/Table.js +347 -0
  46. package/dist/Table.js.map +1 -0
  47. package/dist/Table.mjs +8 -0
  48. package/dist/Table.mjs.map +1 -0
  49. package/dist/TableControls.d.mts +76 -0
  50. package/dist/TableControls.d.ts +76 -0
  51. package/dist/TableControls.js +461 -0
  52. package/dist/TableControls.js.map +1 -0
  53. package/dist/TableControls.mjs +7 -0
  54. package/dist/TableControls.mjs.map +1 -0
  55. package/dist/TableFooterPagination.d.mts +56 -0
  56. package/dist/TableFooterPagination.d.ts +56 -0
  57. package/dist/TableFooterPagination.js +499 -0
  58. package/dist/TableFooterPagination.js.map +1 -0
  59. package/dist/TableFooterPagination.mjs +7 -0
  60. package/dist/TableFooterPagination.mjs.map +1 -0
  61. package/dist/Tabs.d.mts +50 -0
  62. package/dist/Tabs.d.ts +50 -0
  63. package/dist/Tabs.js +187 -0
  64. package/dist/Tabs.js.map +1 -0
  65. package/dist/Tabs.mjs +7 -0
  66. package/dist/Tabs.mjs.map +1 -0
  67. package/dist/TextArea.d.mts +64 -0
  68. package/dist/TextArea.d.ts +64 -0
  69. package/dist/TextArea.js +171 -0
  70. package/dist/TextArea.js.map +1 -0
  71. package/dist/TextArea.mjs +7 -0
  72. package/dist/TextArea.mjs.map +1 -0
  73. package/dist/Toast.d.mts +48 -0
  74. package/dist/Toast.d.ts +48 -0
  75. package/dist/Toast.js +169 -0
  76. package/dist/Toast.js.map +1 -0
  77. package/dist/Toast.mjs +7 -0
  78. package/dist/Toast.mjs.map +1 -0
  79. package/dist/Toggle.d.mts +48 -0
  80. package/dist/Toggle.d.ts +48 -0
  81. package/dist/Toggle.js +291 -0
  82. package/dist/Toggle.js.map +1 -0
  83. package/dist/Toggle.mjs +7 -0
  84. package/dist/Toggle.mjs.map +1 -0
  85. package/dist/Tooltip.d.mts +32 -0
  86. package/dist/Tooltip.d.ts +32 -0
  87. package/dist/Tooltip.js +109 -0
  88. package/dist/Tooltip.js.map +1 -0
  89. package/dist/Tooltip.mjs +7 -0
  90. package/dist/Tooltip.mjs.map +1 -0
  91. package/dist/chunk-52TG3BFX.mjs +463 -0
  92. package/dist/chunk-52TG3BFX.mjs.map +1 -0
  93. package/dist/chunk-5BUXFTPW.mjs +283 -0
  94. package/dist/chunk-5BUXFTPW.mjs.map +1 -0
  95. package/dist/chunk-7OWLBYNM.mjs +293 -0
  96. package/dist/chunk-7OWLBYNM.mjs.map +1 -0
  97. package/dist/chunk-AI2U34CF.mjs +159 -0
  98. package/dist/chunk-AI2U34CF.mjs.map +1 -0
  99. package/dist/chunk-C25FFMRQ.mjs +255 -0
  100. package/dist/chunk-C25FFMRQ.mjs.map +1 -0
  101. package/dist/chunk-CUTYEIFE.mjs +158 -0
  102. package/dist/chunk-CUTYEIFE.mjs.map +1 -0
  103. package/dist/chunk-DULH2KRW.mjs +133 -0
  104. package/dist/chunk-DULH2KRW.mjs.map +1 -0
  105. package/dist/chunk-G5NVKF2G.mjs +434 -0
  106. package/dist/chunk-G5NVKF2G.mjs.map +1 -0
  107. package/dist/chunk-M6DVBEEL.mjs +158 -0
  108. package/dist/chunk-M6DVBEEL.mjs.map +1 -0
  109. package/dist/chunk-MBUMR2XJ.mjs +135 -0
  110. package/dist/chunk-MBUMR2XJ.mjs.map +1 -0
  111. package/dist/chunk-MNH2TGUX.mjs +73 -0
  112. package/dist/chunk-MNH2TGUX.mjs.map +1 -0
  113. package/dist/chunk-RRMG2SSZ.mjs +265 -0
  114. package/dist/chunk-RRMG2SSZ.mjs.map +1 -0
  115. package/dist/chunk-U4JXKZZG.mjs +186 -0
  116. package/dist/chunk-U4JXKZZG.mjs.map +1 -0
  117. package/dist/chunk-W55QJIAN.mjs +467 -0
  118. package/dist/chunk-W55QJIAN.mjs.map +1 -0
  119. package/dist/chunk-YV4OXFIM.mjs +151 -0
  120. package/dist/chunk-YV4OXFIM.mjs.map +1 -0
  121. package/dist/index.d.mts +22 -1
  122. package/dist/index.d.ts +22 -1
  123. package/dist/index.js +3559 -2
  124. package/dist/index.js.map +1 -1
  125. package/dist/index.mjs +61 -1
  126. package/package.json +81 -3
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/Tabs/Tabs.tsx"],"sourcesContent":["import * as React from 'react';\nimport { clsx } from 'clsx';\n\nexport interface TabItem {\n /**\n * The label text for the tab\n */\n label: string;\n /**\n * Optional icon component\n */\n icon?: React.ReactNode;\n /**\n * Value to identify this tab\n */\n value: string;\n}\n\nexport interface TabsProps {\n /**\n * Array of tab items to display\n */\n tabs: TabItem[];\n /**\n * Currently active tab value\n */\n activeTab?: string;\n /**\n * Callback when tab is clicked\n */\n onTabChange?: (value: string) => void;\n /**\n * Custom className\n */\n className?: string;\n /**\n * Custom style\n */\n style?: React.CSSProperties;\n /**\n * Test ID for testing\n */\n 'data-testid'?: string;\n}\n\nconst tabsContainerStyles: React.CSSProperties = {\n display: 'flex',\n alignItems: 'flex-start',\n gap: '12px',\n borderBottom: '1px solid #f8f8f8',\n paddingBottom: '1px',\n width: '100%',\n};\n\nconst tabItemWrapperStyles: React.CSSProperties = {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n cursor: 'pointer',\n position: 'relative',\n};\n\nconst tabItemStyles: React.CSSProperties = {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n gap: '8px',\n padding: '8px 12px',\n borderRadius: '8px',\n fontSize: '14px',\n lineHeight: '1.5',\n fontFamily: \"'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif\",\n outline: 'none',\n transition: 'all 0.2s ease-in-out',\n userSelect: 'none' as const,\n};\n\nconst underlineStyles: React.CSSProperties = {\n width: '100%',\n height: '2px',\n borderTopLeftRadius: '4px',\n borderTopRightRadius: '4px',\n transition: 'background-color 0.2s ease-in-out',\n};\n\n/**\n * Tabs component - Arbor Design System\n *\n * Horizontal tabs with support for icons and various states.\n */\nexport const Tabs = React.forwardRef<HTMLDivElement, TabsProps>(\n (\n {\n tabs,\n activeTab,\n onTabChange,\n className,\n style,\n 'data-testid': dataTestId,\n },\n ref\n ) => {\n const [hoveredTab, setHoveredTab] = React.useState<string | null>(null);\n const [focusedTab, setFocusedTab] = React.useState<string | null>(null);\n\n // Determine the active tab (first tab by default)\n const currentActiveTab = activeTab || (tabs.length > 0 ? tabs[0].value : '');\n\n const handleTabClick = (value: string) => {\n onTabChange?.(value);\n };\n\n const handleKeyDown = (e: React.KeyboardEvent, value: string) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n handleTabClick(value);\n }\n };\n\n return (\n <div\n ref={ref}\n className={clsx('arbor-tabs', className)}\n style={{ ...tabsContainerStyles, ...style }}\n data-testid={dataTestId}\n role=\"tablist\"\n >\n {tabs.map((tab) => {\n const isActive = tab.value === currentActiveTab;\n const isHovered = tab.value === hoveredTab;\n const isFocused = tab.value === focusedTab;\n\n // Determine text color\n const getTextColor = (): string => {\n if (isActive) {\n return '#0e8a0e'; // Active green\n }\n if (isHovered) {\n return '#202020'; // Hover darker grey\n }\n return '#2f2f2f'; // Default grey\n };\n\n // Determine font weight\n const getFontWeight = (): number => {\n return isActive ? 600 : 500; // Semibold for active, medium for inactive\n };\n\n // Determine underline color\n const getUnderlineColor = (): string => {\n if (isActive) {\n return '#0e8a0e'; // Active green\n }\n if (isHovered) {\n return '#d1d1d1'; // Hover grey\n }\n return 'transparent'; // Default transparent\n };\n\n // Get box shadow for focus ring\n const getBoxShadow = (): string | undefined => {\n if (isFocused) {\n return '0px 0px 0px 3px #3cad51';\n }\n return undefined;\n };\n\n const tabItemStylesCombined: React.CSSProperties = {\n ...tabItemStyles,\n color: getTextColor(),\n fontWeight: getFontWeight(),\n boxShadow: getBoxShadow(),\n backgroundColor: isFocused ? 'rgba(255, 255, 255, 0.01)' : 'transparent',\n };\n\n const underlineStylesCombined: React.CSSProperties = {\n ...underlineStyles,\n backgroundColor: getUnderlineColor(),\n };\n\n return (\n <div\n key={tab.value}\n style={tabItemWrapperStyles}\n onMouseEnter={() => setHoveredTab(tab.value)}\n onMouseLeave={() => setHoveredTab(null)}\n >\n <div\n role=\"tab\"\n aria-selected={isActive}\n tabIndex={isActive ? 0 : -1}\n onClick={() => handleTabClick(tab.value)}\n onKeyDown={(e) => handleKeyDown(e, tab.value)}\n onFocus={() => setFocusedTab(tab.value)}\n onBlur={() => setFocusedTab(null)}\n style={tabItemStylesCombined}\n >\n {tab.icon && (\n <span style={{ display: 'flex', alignItems: 'center' }}>\n {tab.icon}\n </span>\n )}\n <span>{tab.label}</span>\n </div>\n <div style={underlineStylesCombined} />\n </div>\n );\n })}\n </div>\n );\n }\n);\n\nTabs.displayName = 'Tabs';\n"],"mappings":"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","names":[]}
package/dist/index.d.mts CHANGED
@@ -2,6 +2,21 @@ export { Button, ButtonProps } from './Button.mjs';
2
2
  export { Card, CardProps } from './Card.mjs';
3
3
  export { Input, InputProps } from './Input.mjs';
4
4
  export { Tag, TagProps } from './Tag.mjs';
5
+ export { Combobox, ComboboxProps } from './Combobox.mjs';
6
+ export { NumericInput, NumericInputProps } from './NumericInput.mjs';
7
+ export { Checkbox, CheckboxProps } from './Checkbox.mjs';
8
+ export { Radio, RadioProps } from './Radio.mjs';
9
+ export { DatePicker, DatePickerProps } from './DatePicker.mjs';
10
+ export { Toast, ToastProps } from './Toast.mjs';
11
+ export { Tooltip, TooltipProps } from './Tooltip.mjs';
12
+ export { Toggle, ToggleProps } from './Toggle.mjs';
13
+ export { TextArea, TextAreaProps } from './TextArea.mjs';
14
+ export { TabItem, Tabs, TabsProps } from './Tabs.mjs';
15
+ export { Banner, BannerProps, BannerVariant } from './Banner.mjs';
16
+ export { Pagination, PaginationProps } from './Pagination.mjs';
17
+ export { TableFooterPagination, TableFooterPaginationProps } from './TableFooterPagination.mjs';
18
+ export { TableControls, TableControlsProps } from './TableControls.mjs';
19
+ export { Table, TableColumn, TableProps, TableRow } from './Table.mjs';
5
20
  import 'react';
6
21
 
7
22
  /**
@@ -13,5 +28,11 @@ type InputSize = 'small' | 'medium';
13
28
  type ValidationState = 'default' | 'error' | 'success';
14
29
  type CardPadding = 'none' | 'small' | 'medium' | 'large';
15
30
  type TagVariant = 'default' | 'success' | 'error' | 'info' | 'neutral';
31
+ type ComboboxState = 'default' | 'error' | 'success';
32
+ type ComboboxOption = {
33
+ value: string;
34
+ label: string;
35
+ };
36
+ type NumericInputState = 'default' | 'error' | 'success';
16
37
 
17
- export type { ButtonSize, ButtonVariant, CardPadding, InputSize, TagVariant, ValidationState };
38
+ export type { ButtonSize, ButtonVariant, CardPadding, ComboboxOption, ComboboxState, InputSize, NumericInputState, TagVariant, ValidationState };
package/dist/index.d.ts CHANGED
@@ -2,6 +2,21 @@ export { Button, ButtonProps } from './Button.js';
2
2
  export { Card, CardProps } from './Card.js';
3
3
  export { Input, InputProps } from './Input.js';
4
4
  export { Tag, TagProps } from './Tag.js';
5
+ export { Combobox, ComboboxProps } from './Combobox.js';
6
+ export { NumericInput, NumericInputProps } from './NumericInput.js';
7
+ export { Checkbox, CheckboxProps } from './Checkbox.js';
8
+ export { Radio, RadioProps } from './Radio.js';
9
+ export { DatePicker, DatePickerProps } from './DatePicker.js';
10
+ export { Toast, ToastProps } from './Toast.js';
11
+ export { Tooltip, TooltipProps } from './Tooltip.js';
12
+ export { Toggle, ToggleProps } from './Toggle.js';
13
+ export { TextArea, TextAreaProps } from './TextArea.js';
14
+ export { TabItem, Tabs, TabsProps } from './Tabs.js';
15
+ export { Banner, BannerProps, BannerVariant } from './Banner.js';
16
+ export { Pagination, PaginationProps } from './Pagination.js';
17
+ export { TableFooterPagination, TableFooterPaginationProps } from './TableFooterPagination.js';
18
+ export { TableControls, TableControlsProps } from './TableControls.js';
19
+ export { Table, TableColumn, TableProps, TableRow } from './Table.js';
5
20
  import 'react';
6
21
 
7
22
  /**
@@ -13,5 +28,11 @@ type InputSize = 'small' | 'medium';
13
28
  type ValidationState = 'default' | 'error' | 'success';
14
29
  type CardPadding = 'none' | 'small' | 'medium' | 'large';
15
30
  type TagVariant = 'default' | 'success' | 'error' | 'info' | 'neutral';
31
+ type ComboboxState = 'default' | 'error' | 'success';
32
+ type ComboboxOption = {
33
+ value: string;
34
+ label: string;
35
+ };
36
+ type NumericInputState = 'default' | 'error' | 'success';
16
37
 
17
- export type { ButtonSize, ButtonVariant, CardPadding, InputSize, TagVariant, ValidationState };
38
+ export type { ButtonSize, ButtonVariant, CardPadding, ComboboxOption, ComboboxState, InputSize, NumericInputState, TagVariant, ValidationState };