@pisell/private-materials 6.3.3 → 6.3.4

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 (253) hide show
  1. package/build/lowcode/assets-daily.json +11 -11
  2. package/build/lowcode/assets-dev.json +2 -2
  3. package/build/lowcode/assets-prod.json +11 -11
  4. package/build/lowcode/meta.js +1 -1
  5. package/build/lowcode/render/default/view.css +1 -1
  6. package/build/lowcode/render/default/view.js +7 -7
  7. package/build/lowcode/view.css +1 -1
  8. package/build/lowcode/view.js +7 -7
  9. package/es/businessModel/SalesModel/index.d.ts +1 -0
  10. package/es/components/Sales/Summary/utils.d.ts +1 -1
  11. package/es/components/appointmentBooking/components/Content/index.js +1 -1
  12. package/es/components/appointmentBooking/components/Content/index.less +3 -3
  13. package/es/components/appointmentBooking/components/Footer/index.d.ts +1 -0
  14. package/es/components/appointmentBooking/components/Guest/components/InformationOptionsModal/index.d.ts +1 -0
  15. package/es/components/appointmentBooking/components/Services/index.js +2 -2
  16. package/es/components/appointmentBooking/index.js +8 -2
  17. package/es/components/booking/components/TabProduct/index.d.ts +1 -0
  18. package/es/components/booking/components/formItemChildrenWrap/index.d.ts +1 -0
  19. package/es/components/booking/forms/table/index.d.ts +1 -0
  20. package/es/components/booking/info/addServiceVariant/index.d.ts +1 -0
  21. package/es/components/booking/info/clientVariant/hooks/useIsLowSpeedNetwork.d.ts +1 -0
  22. package/es/components/booking/info/dateRange/index.d.ts +1 -0
  23. package/es/components/booking/info/hooks/useInfoHolder.d.ts +1 -0
  24. package/es/components/booking/info/index.d.ts +1 -0
  25. package/es/components/booking/info/service/Lists.d.ts +1 -0
  26. package/es/components/booking/info/service/editService/BookingList/index.d.ts +1 -0
  27. package/es/components/booking/info/service/like/index.d.ts +1 -0
  28. package/es/components/booking/info/service2/Lists.d.ts +1 -0
  29. package/es/components/booking/info2/service/addTimeModal/index.js +0 -1
  30. package/es/components/booking/materiels/holder/index.d.ts +1 -0
  31. package/es/components/booking/materiels/startTime/index.d.ts +1 -0
  32. package/es/components/eftpos/deviceList/index.d.ts +1 -0
  33. package/es/components/eftpos/form/index.d.ts +1 -0
  34. package/es/components/eftpos/group/index.d.ts +1 -0
  35. package/es/components/eftpos/hooks.d.ts +1 -0
  36. package/es/components/eftpos/icon/apiKey.d.ts +1 -0
  37. package/es/components/eftpos/icon/device.d.ts +1 -0
  38. package/es/components/eftpos/receipt/index.d.ts +1 -0
  39. package/es/components/eftpos/surcharge/index.d.ts +1 -0
  40. package/es/components/eftposPay/amount.d.ts +1 -1
  41. package/es/components/eftposPay/component/alert/warn.d.ts +1 -0
  42. package/es/components/eftposPay/component/header/titlebar.d.ts +1 -0
  43. package/es/components/eftposPay/component/step/index.d.ts +1 -0
  44. package/es/components/eftposPay/component/step/step.d.ts +1 -0
  45. package/es/components/eftposPay/device.d.ts +1 -1
  46. package/es/components/eftposPay/hooks.d.ts +1 -1
  47. package/es/components/eftposPay/store/index.d.ts +2 -2
  48. package/es/components/eftposPay/tyro/hooks.d.ts +1 -0
  49. package/es/components/eventBooking/components/ErrorTip/index.d.ts +1 -0
  50. package/es/components/eventBooking/components/Provider/Cart/Deposit/index.d.ts +1 -0
  51. package/es/components/eventBooking/components/Provider/InformationOptionsModal/index.d.ts +1 -0
  52. package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateStatus/index.d.ts +1 -0
  53. package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateWeek/CallToBook/index.d.ts +1 -0
  54. package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateWeek/WeekItem/index.d.ts +1 -0
  55. package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateWeek/index.d.ts +1 -0
  56. package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Item/DayItem/index.d.ts +1 -0
  57. package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Item/index.d.ts +1 -0
  58. package/es/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Status/index.d.ts +1 -0
  59. package/es/components/eventBooking/components/scheduleCalendar/calendarItem.d.ts +1 -0
  60. package/es/components/eventBooking/index.js +8 -1
  61. package/es/components/pay/toC/PaymentMethods/StripePay/Stripe/Finish/index.d.ts +1 -0
  62. package/es/components/pay/toC/PaymentMethods/StripePay/Stripe/StripeSDK/SDK.d.ts +1 -0
  63. package/es/components/pay/toC/PaymentMethods/StripePay/Stripe/StripeSDK/index.d.ts +1 -0
  64. package/es/components/pay/toC/PaymentMethods/StripePay/Stripe/components/PageLoading/index.d.ts +1 -0
  65. package/es/components/pay/toC/PaymentMethods/StripePay/Stripe/components/SetupForm/PaymentRequestForm.d.ts +1 -0
  66. package/es/components/pay/toC/PaymentMethods/StripePay/Stripe/components/SetupForm/index.d.ts +1 -0
  67. package/es/components/pay/toC/PaymentMethods/StripePay/Stripe/index.d.ts +1 -0
  68. package/es/components/pay/toC/WalletPassBlock/components/WalletUseList/index.d.ts +1 -0
  69. package/es/components/pisellSelectCustomerModal/RightPanel/Add/PhoneField/index.d.ts +1 -0
  70. package/es/components/productExtension/fields/Actor/index.d.ts +1 -0
  71. package/es/components/productExtension/fields/Forms/index.d.ts +1 -0
  72. package/es/components/schedules/calendar/calendarItem.d.ts +1 -0
  73. package/es/components/schedules/components/CurrentDay/index.d.ts +1 -0
  74. package/es/components/schedules/components/ScheduleList/RenderScheduleItem/index.d.ts +1 -0
  75. package/es/components/schedules/products/ProductDetailDrawer/ProductDetail/index.d.ts +1 -0
  76. package/es/components/schedules/products/ProductDetailDrawer/ProductDetailByDate/index.d.ts +1 -0
  77. package/es/components/schedules/products/index.d.ts +1 -0
  78. package/es/components/schedules/resources/relationProduct/index.d.ts +1 -0
  79. package/es/components/shoppingCart/components/Cart/Product.d.ts +1 -0
  80. package/es/components/shoppingCart/components/Empty/index.d.ts +1 -0
  81. package/es/components/shoppingCart/components/Render/index.d.ts +1 -0
  82. package/es/components/ticketBooking/components/addServiceVariant/addService.js +2 -2
  83. package/es/components/ticketBooking/components/addServiceVariant/index.d.ts +1 -0
  84. package/es/components/workSpaceList/components/Modal/index.d.ts +1 -0
  85. package/es/components/workSpaceList/components/SearchWorkspaceAndBase/index.d.ts +1 -0
  86. package/es/hooks/useWindowSize.js +8 -1
  87. package/es/plus/productSelect/CategoryTabs/CategorySkeleton.d.ts +10 -0
  88. package/es/plus/productSelect/CategoryTabs/CategorySkeleton.js +29 -0
  89. package/es/plus/productSelect/CategoryTabs/CategorySkeleton.less +30 -0
  90. package/es/plus/productSelect/CategoryTabs/index.d.ts +18 -0
  91. package/es/plus/productSelect/CategoryTabs/index.js +171 -0
  92. package/es/plus/productSelect/ProductCard/ProductCardSkeleton.d.ts +10 -0
  93. package/es/plus/productSelect/ProductCard/ProductCardSkeleton.js +37 -0
  94. package/es/plus/productSelect/ProductCard/ProductCardSkeleton.less +81 -0
  95. package/es/plus/productSelect/ProductCard/index.d.ts +45 -0
  96. package/es/plus/productSelect/ProductCard/index.js +170 -0
  97. package/es/plus/productSelect/ProductCard/index.less +270 -0
  98. package/es/plus/productSelect/ProductList/gridComponents.d.ts +44 -0
  99. package/es/plus/productSelect/ProductList/gridComponents.js +149 -0
  100. package/es/plus/productSelect/ProductList/index.d.ts +22 -0
  101. package/es/plus/productSelect/ProductList/index.js +72 -0
  102. package/es/plus/productSelect/ProductList/index.less +0 -0
  103. package/es/plus/productSelect/components/IntersectionObserver.d.ts +42 -0
  104. package/es/plus/productSelect/components/IntersectionObserver.js +276 -0
  105. package/es/plus/productSelect/components/TabsStructure/TabsStructure.d.ts +30 -0
  106. package/es/plus/productSelect/components/TabsStructure/TabsStructure.js +357 -0
  107. package/es/plus/productSelect/components/TabsStructure/TabsStructure.less +224 -0
  108. package/es/plus/productSelect/components/TabsStructure/hooks.d.ts +22 -0
  109. package/es/plus/productSelect/components/TabsStructure/hooks.js +243 -0
  110. package/es/plus/productSelect/components/TabsStructure/index.d.ts +5 -0
  111. package/es/plus/productSelect/components/TabsStructure/index.js +13 -0
  112. package/es/plus/productSelect/components/TabsStructure/styles.d.ts +47 -0
  113. package/es/plus/productSelect/components/TabsStructure/styles.js +87 -0
  114. package/es/plus/productSelect/components/TabsStructure/types.d.ts +105 -0
  115. package/es/plus/productSelect/components/TabsStructure/types.js +1 -0
  116. package/es/plus/productSelect/components/TabsStructure/utils.d.ts +12 -0
  117. package/es/plus/productSelect/components/TabsStructure/utils.js +56 -0
  118. package/es/plus/productSelect/components/pisellPriceText/index.d.ts +11 -0
  119. package/es/plus/productSelect/components/pisellPriceText/index.js +43 -0
  120. package/es/plus/productSelect/hooks/useToken.d.ts +18 -0
  121. package/es/plus/productSelect/hooks/useToken.js +34 -0
  122. package/es/plus/productSelect/index.d.ts +31 -0
  123. package/es/plus/productSelect/index.js +270 -0
  124. package/es/plus/productSelect/index.less +56 -0
  125. package/es/plus/productSelect/locales.d.ts +18 -0
  126. package/es/plus/productSelect/locales.js +17 -0
  127. package/es/plus/productSelect/theme/token.d.ts +17 -0
  128. package/es/plus/productSelect/theme/token.js +19 -0
  129. package/es/plus/productSelect/utils.d.ts +39 -0
  130. package/es/plus/productSelect/utils.js +162 -0
  131. package/lib/businessModel/SalesModel/index.d.ts +1 -0
  132. package/lib/components/Sales/Summary/utils.d.ts +1 -1
  133. package/lib/components/appointmentBooking/components/Content/index.js +1 -1
  134. package/lib/components/appointmentBooking/components/Content/index.less +3 -3
  135. package/lib/components/appointmentBooking/components/Footer/index.d.ts +1 -0
  136. package/lib/components/appointmentBooking/components/Guest/components/InformationOptionsModal/index.d.ts +1 -0
  137. package/lib/components/appointmentBooking/components/Services/index.js +2 -2
  138. package/lib/components/appointmentBooking/index.js +6 -1
  139. package/lib/components/booking/components/TabProduct/index.d.ts +1 -0
  140. package/lib/components/booking/components/formItemChildrenWrap/index.d.ts +1 -0
  141. package/lib/components/booking/forms/table/index.d.ts +1 -0
  142. package/lib/components/booking/info/addServiceVariant/index.d.ts +1 -0
  143. package/lib/components/booking/info/clientVariant/hooks/useIsLowSpeedNetwork.d.ts +1 -0
  144. package/lib/components/booking/info/dateRange/index.d.ts +1 -0
  145. package/lib/components/booking/info/hooks/useInfoHolder.d.ts +1 -0
  146. package/lib/components/booking/info/index.d.ts +1 -0
  147. package/lib/components/booking/info/service/Lists.d.ts +1 -0
  148. package/lib/components/booking/info/service/editService/BookingList/index.d.ts +1 -0
  149. package/lib/components/booking/info/service/like/index.d.ts +1 -0
  150. package/lib/components/booking/info/service2/Lists.d.ts +1 -0
  151. package/lib/components/booking/info2/service/addTimeModal/index.js +0 -1
  152. package/lib/components/booking/materiels/holder/index.d.ts +1 -0
  153. package/lib/components/booking/materiels/startTime/index.d.ts +1 -0
  154. package/lib/components/eftpos/deviceList/index.d.ts +1 -0
  155. package/lib/components/eftpos/form/index.d.ts +1 -0
  156. package/lib/components/eftpos/group/index.d.ts +1 -0
  157. package/lib/components/eftpos/hooks.d.ts +1 -0
  158. package/lib/components/eftpos/icon/apiKey.d.ts +1 -0
  159. package/lib/components/eftpos/icon/device.d.ts +1 -0
  160. package/lib/components/eftpos/receipt/index.d.ts +1 -0
  161. package/lib/components/eftpos/surcharge/index.d.ts +1 -0
  162. package/lib/components/eftposPay/amount.d.ts +1 -1
  163. package/lib/components/eftposPay/component/alert/warn.d.ts +1 -0
  164. package/lib/components/eftposPay/component/header/titlebar.d.ts +1 -0
  165. package/lib/components/eftposPay/component/step/index.d.ts +1 -0
  166. package/lib/components/eftposPay/component/step/step.d.ts +1 -0
  167. package/lib/components/eftposPay/device.d.ts +1 -1
  168. package/lib/components/eftposPay/hooks.d.ts +1 -1
  169. package/lib/components/eftposPay/store/index.d.ts +2 -2
  170. package/lib/components/eftposPay/tyro/hooks.d.ts +1 -0
  171. package/lib/components/eventBooking/components/ErrorTip/index.d.ts +1 -0
  172. package/lib/components/eventBooking/components/Provider/Cart/Deposit/index.d.ts +1 -0
  173. package/lib/components/eventBooking/components/Provider/InformationOptionsModal/index.d.ts +1 -0
  174. package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateStatus/index.d.ts +1 -0
  175. package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateWeek/CallToBook/index.d.ts +1 -0
  176. package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateWeek/WeekItem/index.d.ts +1 -0
  177. package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/CalenDateWeek/index.d.ts +1 -0
  178. package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Item/DayItem/index.d.ts +1 -0
  179. package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Item/index.d.ts +1 -0
  180. package/lib/components/eventBooking/components/bookingAvailabilityCalendar/components/CalendarDate/Status/index.d.ts +1 -0
  181. package/lib/components/eventBooking/components/scheduleCalendar/calendarItem.d.ts +1 -0
  182. package/lib/components/eventBooking/index.js +6 -1
  183. package/lib/components/pay/toC/PaymentMethods/StripePay/Stripe/Finish/index.d.ts +1 -0
  184. package/lib/components/pay/toC/PaymentMethods/StripePay/Stripe/StripeSDK/SDK.d.ts +1 -0
  185. package/lib/components/pay/toC/PaymentMethods/StripePay/Stripe/StripeSDK/index.d.ts +1 -0
  186. package/lib/components/pay/toC/PaymentMethods/StripePay/Stripe/components/PageLoading/index.d.ts +1 -0
  187. package/lib/components/pay/toC/PaymentMethods/StripePay/Stripe/components/SetupForm/PaymentRequestForm.d.ts +1 -0
  188. package/lib/components/pay/toC/PaymentMethods/StripePay/Stripe/components/SetupForm/index.d.ts +1 -0
  189. package/lib/components/pay/toC/PaymentMethods/StripePay/Stripe/index.d.ts +1 -0
  190. package/lib/components/pay/toC/WalletPassBlock/components/WalletUseList/index.d.ts +1 -0
  191. package/lib/components/pisellSelectCustomerModal/RightPanel/Add/PhoneField/index.d.ts +1 -0
  192. package/lib/components/productExtension/fields/Actor/index.d.ts +1 -0
  193. package/lib/components/productExtension/fields/Forms/index.d.ts +1 -0
  194. package/lib/components/schedules/calendar/calendarItem.d.ts +1 -0
  195. package/lib/components/schedules/components/CurrentDay/index.d.ts +1 -0
  196. package/lib/components/schedules/components/ScheduleList/RenderScheduleItem/index.d.ts +1 -0
  197. package/lib/components/schedules/products/ProductDetailDrawer/ProductDetail/index.d.ts +1 -0
  198. package/lib/components/schedules/products/ProductDetailDrawer/ProductDetailByDate/index.d.ts +1 -0
  199. package/lib/components/schedules/products/index.d.ts +1 -0
  200. package/lib/components/schedules/resources/relationProduct/index.d.ts +1 -0
  201. package/lib/components/shoppingCart/components/Cart/Product.d.ts +1 -0
  202. package/lib/components/shoppingCart/components/Empty/index.d.ts +1 -0
  203. package/lib/components/shoppingCart/components/Render/index.d.ts +1 -0
  204. package/lib/components/ticketBooking/components/addServiceVariant/addService.js +2 -2
  205. package/lib/components/ticketBooking/components/addServiceVariant/index.d.ts +1 -0
  206. package/lib/components/workSpaceList/components/Modal/index.d.ts +1 -0
  207. package/lib/components/workSpaceList/components/SearchWorkspaceAndBase/index.d.ts +1 -0
  208. package/lib/hooks/useWindowSize.js +6 -1
  209. package/lib/plus/productSelect/CategoryTabs/CategorySkeleton.d.ts +10 -0
  210. package/lib/plus/productSelect/CategoryTabs/CategorySkeleton.js +62 -0
  211. package/lib/plus/productSelect/CategoryTabs/CategorySkeleton.less +30 -0
  212. package/lib/plus/productSelect/CategoryTabs/index.d.ts +18 -0
  213. package/lib/plus/productSelect/CategoryTabs/index.js +183 -0
  214. package/lib/plus/productSelect/ProductCard/ProductCardSkeleton.d.ts +10 -0
  215. package/lib/plus/productSelect/ProductCard/ProductCardSkeleton.js +58 -0
  216. package/lib/plus/productSelect/ProductCard/ProductCardSkeleton.less +81 -0
  217. package/lib/plus/productSelect/ProductCard/index.d.ts +45 -0
  218. package/lib/plus/productSelect/ProductCard/index.js +184 -0
  219. package/lib/plus/productSelect/ProductCard/index.less +270 -0
  220. package/lib/plus/productSelect/ProductList/gridComponents.d.ts +44 -0
  221. package/lib/plus/productSelect/ProductList/gridComponents.js +148 -0
  222. package/lib/plus/productSelect/ProductList/index.d.ts +22 -0
  223. package/lib/plus/productSelect/ProductList/index.js +86 -0
  224. package/lib/plus/productSelect/ProductList/index.less +0 -0
  225. package/lib/plus/productSelect/components/IntersectionObserver.d.ts +42 -0
  226. package/lib/plus/productSelect/components/IntersectionObserver.js +269 -0
  227. package/lib/plus/productSelect/components/TabsStructure/TabsStructure.d.ts +30 -0
  228. package/lib/plus/productSelect/components/TabsStructure/TabsStructure.js +393 -0
  229. package/lib/plus/productSelect/components/TabsStructure/TabsStructure.less +224 -0
  230. package/lib/plus/productSelect/components/TabsStructure/hooks.d.ts +22 -0
  231. package/lib/plus/productSelect/components/TabsStructure/hooks.js +209 -0
  232. package/lib/plus/productSelect/components/TabsStructure/index.d.ts +5 -0
  233. package/lib/plus/productSelect/components/TabsStructure/index.js +92 -0
  234. package/lib/plus/productSelect/components/TabsStructure/styles.d.ts +47 -0
  235. package/lib/plus/productSelect/components/TabsStructure/styles.js +122 -0
  236. package/lib/plus/productSelect/components/TabsStructure/types.d.ts +105 -0
  237. package/lib/plus/productSelect/components/TabsStructure/types.js +17 -0
  238. package/lib/plus/productSelect/components/TabsStructure/utils.d.ts +12 -0
  239. package/lib/plus/productSelect/components/TabsStructure/utils.js +72 -0
  240. package/lib/plus/productSelect/components/pisellPriceText/index.d.ts +11 -0
  241. package/lib/plus/productSelect/components/pisellPriceText/index.js +72 -0
  242. package/lib/plus/productSelect/hooks/useToken.d.ts +18 -0
  243. package/lib/plus/productSelect/hooks/useToken.js +50 -0
  244. package/lib/plus/productSelect/index.d.ts +31 -0
  245. package/lib/plus/productSelect/index.js +299 -0
  246. package/lib/plus/productSelect/index.less +56 -0
  247. package/lib/plus/productSelect/locales.d.ts +18 -0
  248. package/lib/plus/productSelect/locales.js +41 -0
  249. package/lib/plus/productSelect/theme/token.d.ts +17 -0
  250. package/lib/plus/productSelect/theme/token.js +47 -0
  251. package/lib/plus/productSelect/utils.d.ts +39 -0
  252. package/lib/plus/productSelect/utils.js +138 -0
  253. package/package.json +2 -2
@@ -0,0 +1,224 @@
1
+ // ===== Mixins =====
2
+ .pisell-tabstruct-focus-ring() {
3
+ outline: 2px solid var(--ps-color-primary, #7f56d9);
4
+ outline-offset: 2px;
5
+ }
6
+
7
+ .pisell-tabstruct-disabled() {
8
+ opacity: 0.6;
9
+ cursor: not-allowed;
10
+ pointer-events: none;
11
+ }
12
+
13
+ .pisell-tabstruct-smooth-scroll() {
14
+ scroll-behavior: smooth;
15
+ -webkit-overflow-scrolling: touch;
16
+ }
17
+
18
+ .pisell-tabstruct-hide-scrollbar() {
19
+ scrollbar-width: none;
20
+ /* Firefox */
21
+ -ms-overflow-style: none;
22
+ /* IE and Edge */
23
+
24
+ &::-webkit-scrollbar {
25
+ display: none;
26
+ /* Chrome, Safari, Opera */
27
+ }
28
+ }
29
+
30
+ // ===== Tab Wrapper =====
31
+ .pisell-tabstruct-wrapper {
32
+ position: relative;
33
+ display: flex;
34
+ align-items: center;
35
+ inline-size: 100%;
36
+ box-sizing: border-box;
37
+ }
38
+
39
+ // ===== Tab List =====
40
+ .pisell-tabstruct-list {
41
+ padding: 0;
42
+ margin: 0;
43
+ display: inline-flex;
44
+ align-items: center;
45
+ list-style: none;
46
+ gap: 8px;
47
+ border-radius: 20px;
48
+ }
49
+
50
+ // ===== Tab Item =====
51
+ .pisell-tabstruct-item {
52
+ position: relative;
53
+ display: inline-flex;
54
+ align-items: center;
55
+ justify-content: center;
56
+ padding: 0 16px;
57
+ height: 40px;
58
+ border: none;
59
+ background: var(--ps-tab-item-bg, #fff);
60
+ color: #1b1b1b;
61
+ font-size: 14px;
62
+ font-weight: 600;
63
+ line-height: 1.4;
64
+ text-decoration: none;
65
+ cursor: pointer;
66
+ transition: all 0.2s ease-in-out;
67
+ white-space: nowrap;
68
+ user-select: none;
69
+ // 基础样式采用原pill样式
70
+ border-radius: 20px;
71
+
72
+ // Focus state
73
+ &:focus-visible {
74
+ .pisell-tabstruct-focus-ring();
75
+ }
76
+
77
+ &--selected {
78
+ color: #ffffff;
79
+ border-radius: 20px;
80
+ background-color: var(--ps-color-primary, #7f56d9);;
81
+ }
82
+
83
+ &[aria-selected='true'] {
84
+ color: #ffffff;
85
+ border-radius: 20px;
86
+ background-color: var(--ps-color-primary, #7f56d9);;
87
+ }
88
+
89
+ // Disabled state
90
+ &--disabled {
91
+ .pisell-tabstruct-disabled();
92
+ color: #adb5bd;
93
+ }
94
+ }
95
+
96
+ // ===== Tab Rail =====
97
+ .pisell-tabstruct-rail {
98
+ position: relative;
99
+ display: inline-flex;
100
+ inline-size: 100%;
101
+ overflow: auto;
102
+ scroll-snap-type: x mandatory;
103
+ .pisell-tabstruct-smooth-scroll();
104
+ .pisell-tabstruct-hide-scrollbar();
105
+ }
106
+
107
+ // ===== Selection Indicator =====
108
+ .pisell-tabstruct-selection {
109
+ position: absolute;
110
+ z-index: 10;
111
+ transition: all 0.2s ease-in-out;
112
+ pointer-events: none;
113
+ z-index: 0;
114
+ block-size: 100%;
115
+ background-color: var(--ps-color-primary, #7f56d9);
116
+ border-radius: 20px;
117
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
118
+
119
+ &--positioned {
120
+ inset-block-start: auto;
121
+ inset-block-end: 0;
122
+ inset-inline-start: 0;
123
+ }
124
+
125
+ &::before {
126
+ content: '';
127
+ position: absolute;
128
+ inset: 2px;
129
+ border-radius: calc(20px - 2px);
130
+ }
131
+
132
+ &::after {
133
+ content: '';
134
+ position: absolute;
135
+ inset-block-start: 1px;
136
+ inset-inline-start: 1px;
137
+ inset-inline-end: 1px;
138
+ block-size: 50%;
139
+ background-color: var(--ps-color-primary, #7f56d9);
140
+ border-radius: 20px 20px 0 0;
141
+ }
142
+
143
+ &--focused {
144
+ .pisell-tabstruct-focus-ring();
145
+ }
146
+ }
147
+
148
+ // ===== Scroll Shadow =====
149
+ .pisell-tabstruct-shadow {
150
+ position: absolute;
151
+ z-index: 5;
152
+ pointer-events: none;
153
+ opacity: 0;
154
+ transition: opacity all 0.2s ease-in-out;
155
+
156
+ &--visible {
157
+ opacity: 1;
158
+ }
159
+
160
+ &--start {
161
+ inset-block-start: 0;
162
+ inset-block-end: 0;
163
+ inset-inline-start: 0;
164
+ inline-size: 20px;
165
+ background: linear-gradient(90deg, rgba(0, 0, 0, 0.1) 0%, transparent 100%);
166
+ }
167
+
168
+ &--end {
169
+ inset-block-start: 0;
170
+ inset-block-end: 0;
171
+ inset-inline-end: 0;
172
+ inline-size: 20px;
173
+ background: linear-gradient(
174
+ 270deg,
175
+ rgba(0, 0, 0, 0.1) 0%,
176
+ transparent 100%
177
+ );
178
+ }
179
+ }
180
+
181
+ // ===== Chevron Controls =====
182
+ .pisell-tabstruct-chevron-controls {
183
+ display: flex;
184
+ align-items: center;
185
+ gap: 8px;
186
+ z-index: 15;
187
+ }
188
+
189
+ .pisell-tabstruct-chevron-button {
190
+ display: inline-flex;
191
+ align-items: center;
192
+ justify-content: center;
193
+ width: 24px;
194
+ height: 24px;
195
+ padding: 0;
196
+ border: 1px solid transparent;
197
+ border-radius: 12px;
198
+ background-color: #f8f9fa;
199
+ color: #262626;
200
+ cursor: pointer;
201
+ transition: all 0.2s ease-in-out;
202
+ flex-shrink: 0;
203
+
204
+ &:hover:not(.pisell-tabstruct-chevron-button--disabled) {
205
+ background-color: #e9ecef;
206
+ color: #495057;
207
+ }
208
+
209
+ &:focus-visible {
210
+ .pisell-tabstruct-focus-ring();
211
+ }
212
+
213
+ &--disabled {
214
+ .pisell-tabstruct-disabled();
215
+ color: #adb5bd;
216
+ background-color: #f2f4f7;
217
+ }
218
+
219
+ svg {
220
+ font-size: 20px;
221
+ font-weight: bold;
222
+ flex-shrink: 0;
223
+ }
224
+ }
@@ -0,0 +1,22 @@
1
+ /// <reference types="react" />
2
+ interface UseSelectionIndicatorReturn {
3
+ selectionIndicatorProps: {
4
+ focusRingClasses: string;
5
+ isFocusVisible: boolean;
6
+ style: React.CSSProperties;
7
+ };
8
+ listContainerProps: {
9
+ onFocus: (event: React.FocusEvent) => void;
10
+ onBlur: () => void;
11
+ onMouseDown: () => void;
12
+ };
13
+ }
14
+ /**
15
+ * Hook for managing selection indicator position with enhanced features
16
+ * @param containerRef - Ref to the tab container
17
+ * @param selectedTabId - ID of the currently selected tab (optional)
18
+ * @param transition - Custom transition string (optional)
19
+ * @returns Selection indicator props and list container props
20
+ */
21
+ export declare function useSelectionIndicator(containerRef: React.RefObject<HTMLElement>, selectedTabId?: string, transition?: string): UseSelectionIndicatorReturn;
22
+ export {};
@@ -0,0 +1,243 @@
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
5
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
6
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
7
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
8
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
9
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
10
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
11
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
12
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
13
+ import { useState, useEffect, useCallback, useMemo } from 'react';
14
+ import { debounce } from "./utils";
15
+ /**
16
+ * Hook for managing selection indicator position with enhanced features
17
+ * @param containerRef - Ref to the tab container
18
+ * @param selectedTabId - ID of the currently selected tab (optional)
19
+ * @param transition - Custom transition string (optional)
20
+ * @returns Selection indicator props and list container props
21
+ */
22
+ export function useSelectionIndicator(containerRef, selectedTabId, transition) {
23
+ var _useState = useState({
24
+ width: 0,
25
+ transform: 'translateX(0)',
26
+ transition: 'none'
27
+ }),
28
+ _useState2 = _slicedToArray(_useState, 2),
29
+ indicatorStyle = _useState2[0],
30
+ setIndicatorStyle = _useState2[1];
31
+ var _useState3 = useState(),
32
+ _useState4 = _slicedToArray(_useState3, 2),
33
+ selectedTabRef = _useState4[0],
34
+ setSelectedTabRef = _useState4[1];
35
+ var _useState5 = useState(false),
36
+ _useState6 = _slicedToArray(_useState5, 2),
37
+ isFocusVisible = _useState6[0],
38
+ setIsFocusVisible = _useState6[1];
39
+ var _useState7 = useState(''),
40
+ _useState8 = _slicedToArray(_useState7, 2),
41
+ focusRingClasses = _useState8[0],
42
+ setFocusRingClasses = _useState8[1];
43
+
44
+ // Create a ref setter for the selected tab
45
+ var setSelectedTab = useCallback(function (element) {
46
+ setSelectedTabRef(function (prevRef) {
47
+ return (prevRef === null || prevRef === void 0 ? void 0 : prevRef.current) === element ? prevRef : {
48
+ current: element
49
+ };
50
+ });
51
+ }, []);
52
+
53
+ // Find selected tab by aria-selected attribute
54
+ var findSelectedTabByAttribute = useCallback(function () {
55
+ if (!containerRef.current) return null;
56
+ var selectedTab = containerRef.current.querySelector('[role="tab"][aria-selected="true"]');
57
+ if (selectedTab) {
58
+ setSelectedTab(selectedTab);
59
+ }
60
+ return selectedTab;
61
+ }, [containerRef, setSelectedTab]);
62
+
63
+ // Find selected tab by ID
64
+ var findSelectedTabById = useCallback(function () {
65
+ if (!selectedTabId || !containerRef.current) return null;
66
+ var selectedTab = containerRef.current.querySelector("[id=\"".concat(selectedTabId, "\"]"));
67
+ return selectedTab;
68
+ }, [containerRef, selectedTabId]);
69
+
70
+ // Get transition string with defaults
71
+ var getTransition = useCallback(function (customTransition) {
72
+ return customTransition || 'transform 300ms, width 100ms';
73
+ }, []);
74
+
75
+ // Detect text direction (RTL/LTR)
76
+ var getDirection = useCallback(function () {
77
+ if (!containerRef.current) return 'ltr';
78
+ return window.getComputedStyle(containerRef.current).direction || 'ltr';
79
+ }, [containerRef]);
80
+
81
+ // Update indicator position with RTL support and improved error handling
82
+ var updateIndicatorPosition = useCallback(function () {
83
+ try {
84
+ var selectedTab = findSelectedTabByAttribute() || findSelectedTabById();
85
+ if (!selectedTab || !containerRef.current) {
86
+ setIndicatorStyle(function (prev) {
87
+ return _objectSpread(_objectSpread({}, prev), {}, {
88
+ width: 0,
89
+ transform: 'translateX(0)'
90
+ });
91
+ });
92
+ return;
93
+ }
94
+ var container = containerRef.current;
95
+ var offsetParent = selectedTab.offsetParent;
96
+ if (!offsetParent) {
97
+ setIndicatorStyle(function (prev) {
98
+ return _objectSpread(_objectSpread({}, prev), {}, {
99
+ width: 0,
100
+ transform: 'translateX(0)'
101
+ });
102
+ });
103
+ return;
104
+ }
105
+
106
+ // 检查元素是否仍然有效
107
+ if (!selectedTab.isConnected) {
108
+ console.warn('useSelectionIndicator: Selected tab is no longer connected to DOM');
109
+ return;
110
+ }
111
+ var direction = getDirection();
112
+ var width = selectedTab.offsetWidth;
113
+ if (width <= 0) {
114
+ setIndicatorStyle(function (prev) {
115
+ return _objectSpread(_objectSpread({}, prev), {}, {
116
+ width: 0,
117
+ transform: 'translateX(0)'
118
+ });
119
+ });
120
+ return;
121
+ }
122
+ var left;
123
+ if (direction === 'rtl') {
124
+ // RTL calculation
125
+ left = -1 * (offsetParent.clientWidth - selectedTab.offsetLeft - selectedTab.offsetWidth);
126
+ } else {
127
+ // LTR calculation
128
+ left = selectedTab.offsetLeft;
129
+ }
130
+ var transitionValue = getTransition(transition);
131
+ setIndicatorStyle({
132
+ width: "".concat(width, "px"),
133
+ transform: "translateX(".concat(left, "px)"),
134
+ transition: transitionValue
135
+ });
136
+ } catch (error) {
137
+ console.warn('useSelectionIndicator: Error updating indicator position:', error);
138
+ // 重置为安全状态
139
+ setIndicatorStyle(function (prev) {
140
+ return _objectSpread(_objectSpread({}, prev), {}, {
141
+ width: 0,
142
+ transform: 'translateX(0)'
143
+ });
144
+ });
145
+ }
146
+ }, [containerRef, selectedTabId, transition, findSelectedTabByAttribute, findSelectedTabById, getDirection, getTransition]);
147
+
148
+ // Debounced update function
149
+ var debouncedUpdate = useMemo(function () {
150
+ return debounce(updateIndicatorPosition, 50);
151
+ }, [updateIndicatorPosition]);
152
+
153
+ // Focus management
154
+ var handleFocusIn = useCallback(function (event) {
155
+ setIsFocusVisible(event.target instanceof HTMLElement && event.target.matches(':focus-visible'));
156
+ setFocusRingClasses(event.target instanceof HTMLElement && event.target.matches(':focus-visible') ? 'focus-visible' : '');
157
+ }, []);
158
+ var handleFocusOut = useCallback(function () {
159
+ setIsFocusVisible(false);
160
+ setFocusRingClasses('');
161
+ }, []);
162
+ var handleMouseDown = useCallback(function () {
163
+ setIsFocusVisible(false);
164
+ setFocusRingClasses('');
165
+ }, []);
166
+
167
+ // Initial update and event listeners
168
+ useEffect(function () {
169
+ debouncedUpdate();
170
+ }, [debouncedUpdate, selectedTabId]);
171
+
172
+ // Resize observers for container and selected tab with improved error handling
173
+ useEffect(function () {
174
+ var container = containerRef.current;
175
+ if (!container) return;
176
+ var resizeObserver = null;
177
+ try {
178
+ resizeObserver = new ResizeObserver(function (entries) {
179
+ try {
180
+ // 检查观察的元素是否仍然有效
181
+ var validEntries = entries.filter(function (entry) {
182
+ return entry.target && entry.target.isConnected;
183
+ });
184
+ if (validEntries.length > 0) {
185
+ debouncedUpdate();
186
+ }
187
+ } catch (error) {
188
+ console.warn('useSelectionIndicator: Error in ResizeObserver callback:', error);
189
+ }
190
+ });
191
+ resizeObserver.observe(container);
192
+ if (selectedTabRef !== null && selectedTabRef !== void 0 && selectedTabRef.current) {
193
+ resizeObserver.observe(selectedTabRef.current);
194
+ }
195
+ } catch (error) {
196
+ console.warn('useSelectionIndicator: Failed to create ResizeObserver:', error);
197
+ }
198
+ return function () {
199
+ if (resizeObserver) {
200
+ try {
201
+ resizeObserver.disconnect();
202
+ } catch (error) {
203
+ console.warn('useSelectionIndicator: Error disconnecting ResizeObserver:', error);
204
+ }
205
+ }
206
+ };
207
+ }, [containerRef, selectedTabRef, debouncedUpdate]);
208
+
209
+ // Focus event listeners
210
+ useEffect(function () {
211
+ var container = containerRef.current;
212
+ if (!container) return;
213
+ var nativeFocusIn = function nativeFocusIn(event) {
214
+ var syntheticEvent = _objectSpread(_objectSpread({}, event), {}, {
215
+ currentTarget: event.currentTarget,
216
+ target: event.target
217
+ });
218
+ handleFocusIn(syntheticEvent);
219
+ };
220
+ container.addEventListener('focusin', nativeFocusIn);
221
+ container.addEventListener('focusout', handleFocusOut);
222
+ container.addEventListener('mousedown', handleMouseDown);
223
+ return function () {
224
+ container.removeEventListener('focusin', nativeFocusIn);
225
+ container.removeEventListener('focusout', handleFocusOut);
226
+ container.removeEventListener('mousedown', handleMouseDown);
227
+ };
228
+ }, [containerRef, handleFocusIn, handleFocusOut, handleMouseDown]);
229
+ return {
230
+ selectionIndicatorProps: {
231
+ focusRingClasses: focusRingClasses,
232
+ isFocusVisible: isFocusVisible,
233
+ style: _objectSpread(_objectSpread({}, indicatorStyle), {}, {
234
+ transition: getTransition(transition)
235
+ })
236
+ },
237
+ listContainerProps: {
238
+ onFocus: handleFocusIn,
239
+ onBlur: handleFocusOut,
240
+ onMouseDown: handleMouseDown
241
+ }
242
+ };
243
+ }
@@ -0,0 +1,5 @@
1
+ export { default as TabsStructure, TabListContainer, TabItem, Rail, SelectionIndicator, ScrollShadow, ChevronControls, ChevronButton } from './TabsStructure';
2
+ export type { TabsStructureProps, TabListContainerProps, TabItemProps, RailProps, SelectionIndicatorProps, ScrollShadowProps, ChevronControlsProps, ChevronButtonProps, TabContextValue, ScrollLocation, TabWrapperClasses, TabListClasses, TabItemClasses, RailClasses, SelectionClasses, ShadowClasses, ChevronClasses, } from './types';
3
+ export { tabWrapperClasses, tabListClasses, tabItemClasses, railClasses, selectionClasses, shadowClasses, chevronClasses, chevronButtonClasses, tabWrapperClassNames, tabListClassNames, tabItemClassNames, railClassNames, selectionClassNames, shadowClassNames, chevronClassNames } from './styles';
4
+ export { debounce, mergeRefs } from './utils';
5
+ export { useSelectionIndicator, } from './hooks';
@@ -0,0 +1,13 @@
1
+ // 主组件导出
2
+ export { default as TabsStructure, TabListContainer, TabItem, Rail, SelectionIndicator, ScrollShadow, ChevronControls, ChevronButton } from "./TabsStructure";
3
+
4
+ // 类型定义导出
5
+
6
+ // 样式类导出
7
+ export { tabWrapperClasses, tabListClasses, tabItemClasses, railClasses, selectionClasses, shadowClasses, chevronClasses, chevronButtonClasses, tabWrapperClassNames, tabListClassNames, tabItemClassNames, railClassNames, selectionClassNames, shadowClassNames, chevronClassNames } from "./styles";
8
+
9
+ // 工具函数导出
10
+ export { debounce, mergeRefs } from "./utils";
11
+
12
+ // 自定义Hooks导出
13
+ export { useSelectionIndicator } from "./hooks";
@@ -0,0 +1,47 @@
1
+ /**
2
+ * CSS Classes mapping for TabComponent
3
+ */
4
+ import { TabWrapperClasses, TabListClasses, TabItemClasses, RailClasses, SelectionClasses, ShadowClasses, ChevronClasses } from './types';
5
+ export declare const tabWrapperClasses: TabWrapperClasses;
6
+ export declare const tabListClasses: TabListClasses;
7
+ export declare const tabItemClasses: TabItemClasses;
8
+ export declare const railClasses: RailClasses;
9
+ export declare const selectionClasses: SelectionClasses;
10
+ export declare const shadowClasses: ShadowClasses;
11
+ export declare const chevronClasses: ChevronClasses;
12
+ export declare const chevronButtonClasses: {
13
+ button: string;
14
+ disabled: string;
15
+ prev: string;
16
+ next: string;
17
+ };
18
+ export declare const tabWrapperClassNames: {
19
+ wrapper: string;
20
+ };
21
+ export declare const tabListClassNames: {
22
+ list: string;
23
+ };
24
+ export declare const tabItemClassNames: {
25
+ item: string;
26
+ selected: string;
27
+ disabled: string;
28
+ };
29
+ export declare const railClassNames: {
30
+ rail: string;
31
+ };
32
+ export declare const selectionClassNames: {
33
+ selection: string;
34
+ position: string;
35
+ focused: string;
36
+ };
37
+ export declare const shadowClassNames: {
38
+ shadow: string;
39
+ isVisible: string;
40
+ locationStart: string;
41
+ locationEnd: string;
42
+ };
43
+ export declare const chevronClassNames: {
44
+ controls: string;
45
+ button: string;
46
+ disabled: string;
47
+ };
@@ -0,0 +1,87 @@
1
+ /**
2
+ * CSS Classes mapping for TabComponent
3
+ */
4
+
5
+ // Tab Wrapper Classes
6
+ export var tabWrapperClasses = {
7
+ wrapper: 'pisell-tabstruct-wrapper'
8
+ };
9
+
10
+ // Tab List Classes
11
+ export var tabListClasses = {
12
+ list: 'pisell-tabstruct-list'
13
+ };
14
+
15
+ // Tab Item Classes
16
+ export var tabItemClasses = {
17
+ item: 'pisell-tabstruct-item',
18
+ selected: 'pisell-tabstruct-item--selected',
19
+ disabled: 'pisell-tabstruct-item--disabled'
20
+ };
21
+
22
+ // Rail Classes
23
+ export var railClasses = {
24
+ rail: 'pisell-tabstruct-rail'
25
+ };
26
+
27
+ // Selection Indicator Classes
28
+ export var selectionClasses = {
29
+ selection: 'pisell-tabstruct-selection',
30
+ position: 'pisell-tabstruct-selection--positioned',
31
+ focused: 'pisell-tabstruct-selection--focused'
32
+ };
33
+
34
+ // Scroll Shadow Classes
35
+ export var shadowClasses = {
36
+ shadow: 'pisell-tabstruct-shadow',
37
+ isVisible: 'pisell-tabstruct-shadow--visible',
38
+ locationStart: 'pisell-tabstruct-shadow--start',
39
+ locationEnd: 'pisell-tabstruct-shadow--end'
40
+ };
41
+
42
+ // Chevron Controls Classes
43
+ export var chevronClasses = {
44
+ controls: 'pisell-tabstruct-chevron-controls',
45
+ button: 'pisell-tabstruct-chevron-button',
46
+ disabled: 'pisell-tabstruct-chevron-button--disabled'
47
+ };
48
+
49
+ // Individual Chevron Button Classes
50
+ export var chevronButtonClasses = {
51
+ button: 'pisell-tabstruct-chevron-button',
52
+ disabled: 'pisell-tabstruct-chevron-button--disabled',
53
+ prev: 'pisell-tabstruct-chevron-button--prev',
54
+ next: 'pisell-tabstruct-chevron-button--next'
55
+ };
56
+
57
+ // Export class names for external use
58
+ export var tabWrapperClassNames = {
59
+ wrapper: tabWrapperClasses.wrapper
60
+ };
61
+ export var tabListClassNames = {
62
+ list: tabListClasses.list
63
+ };
64
+ export var tabItemClassNames = {
65
+ item: tabItemClasses.item,
66
+ selected: tabItemClasses.selected,
67
+ disabled: tabItemClasses.disabled
68
+ };
69
+ export var railClassNames = {
70
+ rail: railClasses.rail
71
+ };
72
+ export var selectionClassNames = {
73
+ selection: selectionClasses.selection,
74
+ position: selectionClasses.position,
75
+ focused: selectionClasses.focused
76
+ };
77
+ export var shadowClassNames = {
78
+ shadow: shadowClasses.shadow,
79
+ isVisible: shadowClasses.isVisible,
80
+ locationStart: shadowClasses.locationStart,
81
+ locationEnd: shadowClasses.locationEnd
82
+ };
83
+ export var chevronClassNames = {
84
+ controls: chevronClasses.controls,
85
+ button: chevronClasses.button,
86
+ disabled: chevronClasses.disabled
87
+ };